<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Off you go... into the purple yonder! &#187; Sysadmin</title>
	<atom:link href="http://ward.vandewege.net/blog/category/sysadmin/feed/" rel="self" type="application/rss+xml" />
	<link>http://ward.vandewege.net/blog</link>
	<description></description>
	<lastBuildDate>Tue, 29 Jun 2010 19:11:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>nagios, mdadm and snmp</title>
		<link>http://ward.vandewege.net/blog/2009/11/nagios-mdadm-and-snmp/</link>
		<comments>http://ward.vandewege.net/blog/2009/11/nagios-mdadm-and-snmp/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 20:47:22 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=510</guid>
		<description><![CDATA[I found this script while looking for a simple script to monitor mdadm arrays. The script is fine, but it has a subtle bug &#8211; it will never report an error because the &#8211;detail parameter is missing in the call to mdadm. I modified the script a bit, like so:

#!/bin/sh
# (c) 2008 Jasper Spaans 

worst=0
msg=""

for [...]]]></description>
			<content:encoded><![CDATA[<p>I found <a href="http://blog.jasper.es/index.php?url=archives/4-nagios-and-swraid.html">this script</a> while looking for a simple script to monitor mdadm arrays. The script is fine, but it has a subtle bug &#8211; it will never report an error because the &#8211;detail parameter is missing in the call to mdadm. I modified the script a bit, like so:</p>
<pre>
#!/bin/sh
# (c) 2008 Jasper Spaans <j @jasper.es>

worst=0
msg=""

for dev in /dev/md?* ; do \
  mdadm --misc -t --detail $dev >/dev/null
  status=$?
  if [ $status == 0 ]; then
    msg="${msg} ${dev}: ok"
  elif [ $status == 1 ] ; then
    if [ worst != 2 ] ; then
      worst=1
    fi
    msg="${msg} ${dev}: degraded"
  elif [ $status == 2 ] ; then
    worst=2
    msg="${msg} ${dev}: degraded - unusable"
  fi
done

echo "mdadm:$msg"
exit $worst
</j></pre>
<p>which I saved as /usr/local/bin/check-mdadm.sh.</p>
<p>Add in a bit of snmpd.conf config (and set up sudo accordingly, of course):</p>
<pre>
...
exec   mdadm /usr/bin/sudo /usr/local/bin/check-mdadm.sh
</pre>
<p>and a small script on the nagios side (/usr/local/bin/nagios-check-mdadm):</p>
<pre>
#!/bin/sh

SNMP=`snmpwalk -v1 -c YOUR-PUBLIC $1 extOutput |grep mdadm`
TMP1=`echo $SNMP |grep degraded`
TMP2=`echo $SNMP |sed -e 's/^.*mdadm: //'`

if [ "$TMP1" = "" ]; then
  echo "OK: $TMP2"
  return 0
else
  echo "ERROR: $TMP2"
  return 2
fi
</pre>
<p>add a bit of nagios config:</p>
<pre>
define command {
       command_name check_mdadm
       command_line /usr/local/bin/nagios-check-mdadm $HOSTADDRESS$
}
</pre>
<pre>
define service {
       use      defaults
       name     check_mdadm
       description   MDADM
       check_command check_mdadm
}
</pre>
<p>And voila, nagios notifications when disks fall out of the array.</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/11/nagios-mdadm-and-snmp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>a new home server</title>
		<link>http://ward.vandewege.net/blog/2009/09/a-new-home-server/</link>
		<comments>http://ward.vandewege.net/blog/2009/09/a-new-home-server/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 03:01:59 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[Add new tag]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=480</guid>
		<description><![CDATA[I&#8217;ve been running an old Shuttle with a 2.4GHz celeron CPU, 512MB of ram and two 500GB disks in raid-1 as home server for the past 5 years or so. Well, I upgraded the disks in February 2008, before that it had 2x 200GB in raid-1. The thing has no UPS and runs in the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been running an old Shuttle with a 2.4GHz celeron CPU, 512MB of ram and two 500GB disks in raid-1 as home server for the past 5 years or so. Well, I upgraded the disks in February 2008, before that it had 2x 200GB in raid-1. The thing has no UPS and runs in the closet here at home. And yet:</p>
<pre>
13:40:34 up 569 days, 17:04,  2 users,  load average: 1.26, 0.94, 0.45
</pre>
<p>Yeah, home power is pretty reliable around here.</p>
<p>This machine serves as the central network storage for our home, and I also use it to back up a bunch of servers that live at a nearby colo facility, with the rather fantastic <a href="http://backuppc.sf.net">BackupPC</a>. The Shuttle has served well over the years but it is getting a bit old &#8211; I was starting to expect it to fail. Its power draw is rather high: 78W while idle (that&#8217;s after applying all of powertop&#8217;s suggestions), and a whopping 100W while doing heavy disk activity. </p>
<p>I was running out of disk space again, so I bought two 1TB &#8216;green&#8217; WD drives (WD10EADS-00L) that are rated at 5.4W active, 2.8W idle, and 0.4W standby/sleep.</p>
<p>Next &#8211; a replacement for the Shuttle. First I looked at a <a href="http://www.qnap.com/pro_detail_feature.asp?p_id=122">QNAP TS-219p</a> which is a rather awesome little NAS device. It&#8217;s based on Marvell&#8217;s Kirkwood ARM core, which is the same as the one used in the <a href="http://www.marvell.com/products/embedded_processors/developer/kirkwood/sheevaplug.jsp">Sheevaplug</a>, clocked at 1.2GHz. This thing is pretty fast. Its power specs are also impressive: </p>
<pre>
Sleep mode: 5W
In operation: 21W (with 2 x 500GB HDD installed)
</pre>
<p>I was of course looking to <a href="http://www.cyrius.com/debian/kirkwood/qnap/ts-219/">run Debian on it</a>, which is perfectly possible. People like the firmware that the thing comes with, but it&#8217;s proprietary so I&#8217;d rather not use that. Plus, I need to be able to run BackupPC.</p>
<p>The major downside is price &#8211; the TS-219P costs about $400, without disks. Since the Sheevaplug costs about $100, I would have thought a price in the $200-250 range for the TS-219P would have been reasonable.</p>
<p>Meanwhile I came across some really good NAS reviews over at <a href="http://www.smallnetbuilder.com/content/view/85/93/">SmallNetBuilder</a>, and in particular their <a href="http://www.smallnetbuilder.com/component/option,com_nas/Itemid,190/task,guide/chart,13/">price/performance NAS chart</a>.</p>
<p>Looking at that chart, the <a href="http://en.wikipedia.org/wiki/MSI_Wind_PC">MSI Wind PC</a> performance is pretty much on par with the TS-219P, for a fraction of the price. Extra bonus: it does not come with proprietary software preinstalled, because the Wind is really a bare-bones PC. The Wind has one 3.5&#8243; bay, and one 5.15&#8243; bay. It also has an on-board CF adapter. It has a dual-core Intel Atom 230 (1.6GHz).</p>
<p>I purchased </p>
<pre>
$134.99    MSI Wind PC
 $26.99    G.SKILL 2GB 200-Pin DDR2 SO-DIMM DDR2 533
 $43.99    Transcend 16GB Compact Flash (CF) Flash Card Model TS16GCF133
  $9.99    StarTech BRACKET Metal 3.5" to 5.25" Drive Adapter Bracket

Total: $215.96 + shipping
</pre>
<p>The drive bay adaptor turned out to be not only severely overpriced, but also not practical for the Wind &#8211; I had to drill a few holes in the damn thing to make the second hard drive fit in the Wind. Don&#8217;t buy this kind, or don&#8217;t pay $10 for it!</p>
<p>I installed Debian on the CF card (leaving it read-only during normal operation) and use the two disks purely for data &#8211; in raid-1 of course. If I did this again I&#8217;d buy a smaller CF card &#8211; 8GB would be plenty, even 4GB would be enough for the non-volatile bits of /.</p>
<p>Power use, as tested: idle 27W, with heavy disk activity 33W. In other words, this will take 50-70W off our household power budget, which should work out to a savings of $7 to $10/month.</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/09/a-new-home-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>capistrano, svn and webserver timeouts</title>
		<link>http://ward.vandewege.net/blog/2009/07/capistrano-svn-and-webserver-timeouts/</link>
		<comments>http://ward.vandewege.net/blog/2009/07/capistrano-svn-and-webserver-timeouts/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 15:54:34 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[chunk delimiter was invalid]]></category>
		<category><![CDATA[mod_dave]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[timeouts]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=475</guid>
		<description><![CDATA[A customer reported problems with capistrany deploys that would just die like this:

 ** [XXX.XXX.XXX :: err] svn: REPORT request failed on '/!svn/vcc/default'
 ** svn: REPORT of '/!svn/vcc/default': Chunk delimiter was invalid (http://XXX.XXX.XXX)
    command finished

After disabling gzip compression on the server for text/xml documents, the error became

 ** [XXX.XXX.XXX :: err] svn: [...]]]></description>
			<content:encoded><![CDATA[<p>A customer reported problems with capistrany deploys that would just die like this:</p>
<pre>
 ** [XXX.XXX.XXX :: err] svn: REPORT request failed on '/!svn/vcc/default'
 ** svn: REPORT of '/!svn/vcc/default': Chunk delimiter was invalid (http://XXX.XXX.XXX)
    command finished
</pre>
<p>After disabling gzip compression on the server for text/xml documents, the error became</p>
<pre>
 ** [XXX.XXX.XXX :: err] svn: REPORT request failed on '/!svn/vcc/default'
 ** svn: REPORT of '/!svn/vcc/default': Could not read response body: connection was closed by server (http://XXX.XXX.XXX)
</pre>
<p>The server side logs said:</p>
<pre>
[Fri Jul 03 10:53:57 2009] [error] [client XX.XX.XX.XX] Provider encountered an error while streaming a REPORT response.  [500, #0]
[Fri Jul 03 10:53:57 2009] [error] [client XX.XX.XX.XX] A failure occurred while driving the update report editor  [500, #190004]
</pre>
<p>Googling was not very helpful &#8211; there are many reports of these errors going back years, and many different solutions, none of which applied to my setup. In general, these errors seem to mean that there was some sort of network problem.</p>
<p>I tried to reproduce the problem by running the offending svn command manually. Out of hundreds of tries, I only managed to make it fail like that just once. And yet running cap deploy, which in turn calls the svn command, it would happen much more often.</p>
<p>I finally tracked this down to an agressive send/receive timeout in Apache&#8217;s config. It was set to 3 seconds to prevent too many inactive connections from taking up server resources. Apparently the subversion client sometimes takes a while to get back to the http server its talking to &#8211; in this particular situation when run via capistrano, more than 3 seconds. So the server would disconnect the svn client, which would then just fall over with that obscure error message.</p>
<p>In other words, check your server timeouts if you see this kind of intermittent error&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/07/capistrano-svn-and-webserver-timeouts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>df and zettabytes</title>
		<link>http://ward.vandewege.net/blog/2009/06/df-and-zettabytes/</link>
		<comments>http://ward.vandewege.net/blog/2009/06/df-and-zettabytes/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:35:19 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[/]]></category>
		<category><![CDATA[df]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[slash]]></category>
		<category><![CDATA[zettabyte]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=458</guid>
		<description><![CDATA[This is a very confused filesystem. But check it out &#8211; df supports zettabytes!

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0               19G  -64Z   22G 101% [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very confused filesystem. But check it out &#8211; df supports zettabytes!</p>
<pre>
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0               19G  -64Z   22G 101% /
</pre>
<p>Surprisingly, the machine is up and runs just fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/06/df-and-zettabytes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>on the importance of gem cleanup</title>
		<link>http://ward.vandewege.net/blog/2009/06/on-the-importance-of-gem-cleanup/</link>
		<comments>http://ward.vandewege.net/blog/2009/06/on-the-importance-of-gem-cleanup/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 16:35:01 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Rails]]></category>
		<category><![CDATA[Sysadmin]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=448</guid>
		<description><![CDATA[I have a monit config that tries to stop/start mongrel instances like this:

  start program = "/usr/bin/mongrel_rails cluster::start -C path-to-mongrel_cluster.yml --clean --only PORT"
  stop program = "/usr/bin/mongrel_rails cluster::stop -C path-to-mongrel_cluster.yml --clean --only PORT"

I have the latest mongrel_cluster gem installed (1.0.5), and yet mongrel_rails kept throwing errors about &#8211;clean and &#8211;only:

invalid option: --clean for [...]]]></description>
			<content:encoded><![CDATA[<p>I have a monit config that tries to stop/start mongrel instances like this:</p>
<pre>
  start program = "/usr/bin/mongrel_rails cluster::start -C path-to-mongrel_cluster.yml --clean --only PORT"
  stop program = "/usr/bin/mongrel_rails cluster::stop -C path-to-mongrel_cluster.yml --clean --only PORT"
</pre>
<p>I have the latest mongrel_cluster gem installed (1.0.5), and yet mongrel_rails kept throwing errors about &#8211;clean and &#8211;only:</p>
<pre>
invalid option: --clean for command 'cluster::start'
invalid option: --only for command 'cluster::start'
</pre>
<p>Turns out I had an older mongrel_cluster gem installed as well:</p>
<pre>
$ sudo gem cleanup mongrel_cluster
Cleaning up installed gems...
:0:Warning: Gem::SourceIndex#search support for Regexp patterns is deprecated
Attempting to uninstall mongrel_cluster-0.2.1
Successfully uninstalled mongrel_cluster-0.2.1
Clean Up Complete
</pre>
<p>After running gem cleanup, the mongrel_rails commands above started working.</p>
<p>This kind of code behaviour irks me &#8211; it&#8217;s not intuitive. It does not help that &#8216;gem list&#8217; suggests that having multiple versions of a gem installed is not a problem &#8211; and it usually is not. I guess the mongrel_cluster gem is an exception. File this one under &#8216;good to know&#8217;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/06/on-the-importance-of-gem-cleanup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>checking dns glue records</title>
		<link>http://ward.vandewege.net/blog/2009/06/checking-dns-glue-records/</link>
		<comments>http://ward.vandewege.net/blog/2009/06/checking-dns-glue-records/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 19:54:33 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[glue]]></category>
		<category><![CDATA[glue records]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=446</guid>
		<description><![CDATA[This is mostly a reminder to myself. Here&#8217;s a way to check a domain&#8217;s DNS glue records. For example, for google:

 dig +trace +nosearch +all +norecurse google.com

]]></description>
			<content:encoded><![CDATA[<p>This is mostly a reminder to myself. Here&#8217;s a way to check a domain&#8217;s <a href="http://en.wikipedia.org/w/index.php?title=Glue_records">DNS glue records</a>. For example, for google:</p>
<pre>
 dig +trace +nosearch +all +norecurse google.com
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/06/checking-dns-glue-records/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>counting known_hosts</title>
		<link>http://ward.vandewege.net/blog/2009/05/counting-known_hosts/</link>
		<comments>http://ward.vandewege.net/blog/2009/05/counting-known_hosts/#comments</comments>
		<pubDate>Thu, 14 May 2009 00:46:40 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=432</guid>
		<description><![CDATA[All right folks, time to fess up. What&#8217;s your count?

$ wc ~/.ssh/known_hosts -l
1470

Obviously there are some old machines in there &#8211; this file goes back at least five years. There are some duplicates as well as there is one line per host/port/user combination. It&#8217;s annoying that I can&#8217;t weed out old entries easily, as ssh [...]]]></description>
			<content:encoded><![CDATA[<p>All right folks, time to fess up. What&#8217;s your count?</p>
<pre>
$ wc ~/.ssh/known_hosts -l
1470
</pre>
<p>Obviously there are some old machines in there &#8211; this file goes back at least five years. There are some duplicates as well as there is one line per host/port/user combination. It&#8217;s annoying that I can&#8217;t weed out old entries easily, as ssh now encrypts the entries in known_hosts by default. Of course that is a very sensible thing to do from a security perspective, but it&#8217;s a shame from a statistics point of view.</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/05/counting-known_hosts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>recycling a ton of old computing gear</title>
		<link>http://ward.vandewege.net/blog/2009/03/recycling-a-ton-of-old-computing-gear/</link>
		<comments>http://ward.vandewege.net/blog/2009/03/recycling-a-ton-of-old-computing-gear/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 03:22:29 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Environment]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Sysadmin]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=390</guid>
		<description><![CDATA[We recycled at work this week &#8211; literally over a metric ton (estimated) of old servers. This is what about two thirds of that amount looked liked:

Apologies for the low quality picture &#8211; I only had a crappy cell phone camera on hand&#8230;
]]></description>
			<content:encoded><![CDATA[<p>We recycled at work this week &#8211; literally over a metric ton (estimated) of old servers. This is what about two thirds of that amount looked liked:</p>
<p><a href='https://ward.vandewege.net/blog/wp-content/photos/20090311_001_800x600.jpg' title='old_computers'><img src='https://ward.vandewege.net/blog/wp-content/photos/20090311_001_800x600.jpg' alt='old_computers' class='pp_empty' /></a></p>
<p>Apologies for the low quality picture &#8211; I only had a crappy cell phone camera on hand&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/03/recycling-a-ton-of-old-computing-gear/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ff3 sets downloaded files as readonly when using the &#8216;open with&#8217; feature</title>
		<link>http://ward.vandewege.net/blog/2009/02/ff3-sets-downloaded-files-as-readonly-when-using-the-open-with-feature/</link>
		<comments>http://ward.vandewege.net/blog/2009/02/ff3-sets-downloaded-files-as-readonly-when-using-the-open-with-feature/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:25:09 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=361</guid>
		<description><![CDATA[Firefox 3 has a new &#8216;feature&#8217; where downloaded files are marked readonly when they are opened on the fly with the &#8216;open with&#8217; feature.
The reasoning behind this is that there were many people who lost information because they didn&#8217;t realize Firefox deletes those temporary downloaded files when it closes. So Firefox 3 was patched to [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 3 has a new &#8216;feature&#8217; where <a href="https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/90378">downloaded files are marked readonly when they are opened on the fly with the &#8216;open with&#8217; feature</a>.</p>
<p>The reasoning behind this is that there were many people who lost information because they didn&#8217;t realize Firefox deletes those temporary downloaded files when it closes. So Firefox 3 was patched to save the temporary files as readonly, thus forcing the applications to prompt the user to store the document somewhere permanent if any changes are attempted.</p>
<p>Of course this causes all sorts of unexpected breakage. I have an application where users download an Openoffice document that&#8217;s generated on the fly, and need to make some local edits. They now get the document in read-only, and need to hit &#8217;save&#8217; before they can start editing it. That&#8217;s annoying in their workflow.</p>
<p>The <a href="http://forums.mozillazine.org/viewtopic.php?f=38&#038;t=671055">workaround</a> is to create a new boolean attribute called </p>
<pre>
browser.helperApps.deleteTempFileOnExit
</pre>
<p>in about:config, and set it to false. Obviously this will lead to information leakage, but if you are on a GNU/Linux system it won&#8217;t be too bad. The files will end up in /tmp/, which will be wiped on your next boot.</p>
<p>All in all I think this change in behavior makes sense, but it is annoying for people who know what they are doing. Maybe Openoffice could be modified to deal with readonly files in a smarter way when it is called from Firefox. In that case, perhaps Openoffice could move the file elsewhere and mark it read-write while opening the document, without user intervention. Seems like that would be a nice (optional?) feature. No local changes would be lost ever, and power users would not be inconvenienced.</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/02/ff3-sets-downloaded-files-as-readonly-when-using-the-open-with-feature/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>what&#8217;s going on with the .org nameservers?</title>
		<link>http://ward.vandewege.net/blog/2009/01/whats-going-on-with-the-org-nameservers/</link>
		<comments>http://ward.vandewege.net/blog/2009/01/whats-going-on-with-the-org-nameservers/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 02:00:40 +0000</pubDate>
		<dc:creator>ward</dc:creator>
				<category><![CDATA[Sysadmin]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://ward.vandewege.net/blog/?p=321</guid>
		<description><![CDATA[I got rather strange error messages from two servers this evening, one at 18:00:21 EST, and another one at 18:34:01 EST. One server lives in Brussels, the other in Boston. On both servers a (totally different) script executed via cron complained it could not resolve a hostname. Both hostnames exist, and both are in .org [...]]]></description>
			<content:encoded><![CDATA[<p>I got rather strange error messages from two servers this evening, one at 18:00:21 EST, and another one at 18:34:01 EST. One server lives in Brussels, the other in Boston. On both servers a (totally different) script executed via cron complained it could not resolve a hostname. Both hostnames exist, and both are in .org domains (in different domains).</p>
<p>Both machines run <a href="http://cr.yp.to/djbdns/dnscache.html">dnscache</a> locally for resolving. Sadly, the logs had already rotated on the first server, but the other one still had the relevant entry. This is what I found:</p>
<pre>
2009-01-20 18:34:01.729172500 query #1221279 127.0.0.1:45933 (id 50134) a REDACTED.iofc.org.
2009-01-20 18:34:01.729221500 cached ns org. b2.org.afilias-nst.org.
2009-01-20 18:34:01.729223500 cached ns org. a2.org.afilias-nst.info.
2009-01-20 18:34:01.729225500 cached ns org. b0.org.afilias-nst.org.
2009-01-20 18:34:01.729277500 cached ns org. d0.org.afilias-nst.org.
2009-01-20 18:34:01.729279500 cached ns org. c0.org.afilias-nst.info.
2009-01-20 18:34:01.731611500 cached ns org. a0.org.afilias-nst.info.
2009-01-20 18:34:01.731654500 cached a b2.org.afilias-nst.org.
2009-01-20 18:34:01.731657500 cached a a2.org.afilias-nst.info.
2009-01-20 18:34:01.731674500 cached a b0.org.afilias-nst.org.
2009-01-20 18:34:01.731676500 cached a d0.org.afilias-nst.org.
2009-01-20 18:34:01.731678500 cached a c0.org.afilias-nst.info.
2009-01-20 18:34:01.731694500 cached a a0.org.afilias-nst.info.
2009-01-20 18:34:01.731696500 tx g=0 a REDACTED.iofc.org. org. 199.19.53.1 199.249.112.1 199.249.120.1 199.19.57.1 199.19.54.1 199.19.56.1
2009-01-20 18:34:01.814058500 nxdomain 199.19.53.1 TTL=0 REDACTED.iofc.org.
</pre>
<p>What happens here is that the <a href="http://afilias.org/">Afilias</a> (the organization that runs the .org registry) nameserver at 199.19.53.1 returned NXDOMAIN (no such domain) when asked about the host REDACTED.iofc.org, rather than returning the nameservers that are authoritative for the iofc.org domain.</p>
<p>A bit later, things were fine again when another Afilias nameserver replied properly:</p>
<pre>
2009-01-20 19:04:01.715579500 query #1221422 127.0.0.1:45936 (id 46625) a prometheus.iofc.org.
2009-01-20 19:04:01.715627500 cached ns org. b2.org.afilias-nst.org.
2009-01-20 19:04:01.715629500 cached ns org. a2.org.afilias-nst.info.
2009-01-20 19:04:01.715631500 cached ns org. b0.org.afilias-nst.org.
2009-01-20 19:04:01.715634500 cached ns org. d0.org.afilias-nst.org.
2009-01-20 19:04:01.715635500 cached ns org. c0.org.afilias-nst.info.
2009-01-20 19:04:01.715637500 cached ns org. a0.org.afilias-nst.info.
2009-01-20 19:04:01.715639500 cached a b2.org.afilias-nst.org.
2009-01-20 19:04:01.715641500 cached a a2.org.afilias-nst.info.
2009-01-20 19:04:01.715660500 cached a b0.org.afilias-nst.org.
2009-01-20 19:04:01.715662500 cached a d0.org.afilias-nst.org.
2009-01-20 19:04:01.715664500 cached a c0.org.afilias-nst.info.
2009-01-20 19:04:01.715666500 cached a a0.org.afilias-nst.info.
2009-01-20 19:04:01.715683500 tx g=0 a REDACTED.iofc.org. org. 199.19.54.1 199.249.112.1 199.19.56.1 199.19.53.1 199.19.57.1 199.249.120.1
2009-01-20 19:04:01.754217500 rr 199.19.54.1 TTL=172800 a ns1.iofc.org. 62.49.196.44
2009-01-20 19:04:01.754224500 rr 199.19.54.1 TTL=86400 a ns4.iofc.org. 208.94.48.44
2009-01-20 19:04:01.754266500 rr 199.19.54.1 TTL=86400 ns iofc.org. ns1.iofc.org.
2009-01-20 19:04:01.754269500 rr 199.19.54.1 TTL=86400 ns iofc.org. ns4.iofc.org.
2009-01-20 19:04:01.754271500 stats count=1221422 motion=98951375 udp-active=1 tcp-active=0
2009-01-20 19:04:01.754273500 cached a ns1.iofc.org.
2009-01-20 19:04:01.754274500 cached a ns4.iofc.org.
...
</pre>
<p>This kind of thing is not supposed to happen. What&#8217;s going on, Afilias?</p>
<p>Update: <a href="http://isc.sans.org/diary.html?storyid=5713">This sans.org report</a> might be related. And there were a <a href="http://www.merit.edu/mail.archives/nanog/msg14428.html">few</a> <a href="http://www.merit.edu/mail.archives/nanog/msg14429.html">threads</a> on the nanog mailing list about a DDOS amplification attack using DNS servers.</p>
]]></content:encoded>
			<wfw:commentRss>http://ward.vandewege.net/blog/2009/01/whats-going-on-with-the-org-nameservers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
