<?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>Alexander Leidinger</title>
	<atom:link href="http://www.leidinger.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leidinger.net/blog</link>
	<description>Just another weblog</description>
	<lastBuildDate>Tue, 16 Mar 2010 10:17:36 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ideas page updated</title>
		<link>http://www.leidinger.net/blog/2010/03/16/ideas-page-updated/</link>
		<comments>http://www.leidinger.net/blog/2010/03/16/ideas-page-updated/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 10:17:36 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[DIY]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=584</guid>
		<description><![CDATA[I updated my ideas page. I added an entry about using compressed air to automatically remove snow (or similar) from solar cells, and an entry about maybe using heat from thermal solar cells to generate electricity at home. I also updated the entry for non-optimal weather optimized solar cells with a link to a company [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I updated my <a title="ideas" href="http://www.leidinger.net/blog/ideas/">ideas</a> page. I added an entry about using compressed air to automatically remove snow (or similar) from solar cells, and an entry about maybe using heat from thermal solar cells to generate electricity at home. I also updated the entry for non-optimal weather optimized solar cells with a link to a company which seems to do something similar (using a lens) to reduce the cost of solar panels. To cool down the photovoltaic cells, the company is using a heat exchanger to make a combined photovoltaic/thermal panel. Unfortunately they are making an unfair comparison of the combined output of this panel (the thermal power output is much higher than the electric power output) with a normal photovoltaic cell. A normal household needs more electricity than heat so you do not want to use a lot of such panels, but depending on the feasibility of my idea about using heat to produce electricity, such a panel could be interesting.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2009/09/16/photovoltaic-from-the-bank-no-real-benefit-for-me/" rel="bookmark" class="crp_title">Photovoltaic from the bank (no real benefit for me)</a></li><li><a href="http://www.leidinger.net/blog/2009/09/23/ideas-list-page-created/" rel="bookmark" class="crp_title">Ideas list page created</a></li><li><a href="http://www.leidinger.net/blog/2009/12/02/car-related-items-on-my-ideas-page/" rel="bookmark" class="crp_title">Car related items on my ideas page</a></li><li><a href="http://www.leidinger.net/blog/2009/08/24/doxygen-stuff-updated-in-9-current/" rel="bookmark" class="crp_title">Doxygen stuff updated in 9-current</a></li><li><a href="http://www.leidinger.net/blog/2009/10/01/new-food-related-idea-added/" rel="bookmark" class="crp_title">New food related idea added</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F03%2F16%2Fideas-page-updated%2F&amp;linkname=Ideas%20page%20updated"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/03/16/ideas-page-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google’s new RE engine</title>
		<link>http://www.leidinger.net/blog/2010/03/12/googles-new-re-engine/</link>
		<comments>http://www.leidinger.net/blog/2010/03/12/googles-new-re-engine/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 13:01:44 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Userland]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=578</guid>
		<description><![CDATA[I stumbled over Google’s new RE engine. Unfortunately it is not handling backreferences, so it is not a drop-in replacement for the regular expressions code in FreeBSD. It has a POSIX mode, but this only seems to be enough for the egrep syntax. For people which need backreferences, they refer to the Google Chrome’s RE [...]]]></description>
			<content:encoded><![CDATA[<p>I stumbled over <a href="http://code.google.com/p/re2/">Google’s new RE engine</a>. Unfortunately it is not handling backreferences, so it is not a drop-in replacement for the regular expressions code in <a href="http://www.FreeBSD.org/"  class="alinks_links" onclick="return alinks_click(this);" title="The FreeBSD Project"  style="padding-right: 13px; background: url(http://www.leidinger.net/blog/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">FreeBSD</a>. It has a POSIX mode, but this only seems to be enough for the egrep syntax. For people which need backreferences, they refer to the Google Chrome’s RE engine <a rel="nofollow" href="http://blog.chromium.org/2009/02/irregexp-google-chromes-new-regexp.html">irregexp</a> which in turn references a paper from 2007 which is titled <a href="http://swtch.com/~rsc/regexp/regexp1.html"><em>Regular Expression Matching Can Be Simple And Fast</em></a>.</p>
<p>The techniques in the paper can not be applied to the irregexp engine, but maybe could help to speed up awk, egrep and similar programs.</p>
<p>I think it would be interesting to compare those recent developments to what we have in <a title="FreeBSD" href="http://www.leidinger.net/blog/category/freebsd/">FreeBSD</a>, and if they are faster, to see if it is possible to improve the FreeBSD implementation based upon them (either by writing new code, or by importing existing code, depending on the corresponding license and the language the code is written in).</p>
<p>Maybe a candidate for the GSoC?</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2006/05/25/interesting-summer-for-freebsd/" rel="bookmark" class="crp_title">Interesting Summer for FreeBSD</a></li><li><a href="http://www.leidinger.net/blog/2009/12/06/freenas-sensors-for-freebsd/" rel="bookmark" class="crp_title">FreeNAS &amp; Sensors for FreeBSD</a></li><li><a href="http://www.leidinger.net/blog/2006/05/26/the-kernel-subsystem-api-documentation-generation-framework/" rel="bookmark" class="crp_title">The kernel subsystem API documentation generation framework.</a></li><li><a href="http://www.leidinger.net/blog/2009/09/23/some-more-wp-plugins/" rel="bookmark" class="crp_title">Some more WP plugins</a></li><li><a href="http://www.leidinger.net/blog/2007/04/07/catching-up-gsoc-2007/" rel="bookmark" class="crp_title">Catching up… GSoC 2007</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F03%2F12%2Fgoogles-new-re-engine%2F&amp;linkname=Google%E2%80%99s%20new%20RE%20engine"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/03/12/googles-new-re-engine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Contacted by a lawyer regarding MP3</title>
		<link>http://www.leidinger.net/blog/2010/02/22/contacted-by-a-lawyer-regarding-mp3/</link>
		<comments>http://www.leidinger.net/blog/2010/02/22/contacted-by-a-lawyer-regarding-mp3/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 15:20:40 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[MP3]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=176</guid>
		<description><![CDATA[A while ago (end of August 2009) I was contacted by a lawyer because of my participation in the LAME-project. It was about the MP3-patents. They searched an expert witness for a case.
I had the impression that it is about the invalidation of at least parts of one of the patents. Maybe they have a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">A while ago (end of August 2009) I was contacted by a lawyer because of my participation in the <a title="LAME MP3 Encoder" href="http://lame.sourceforge.net/">LAME-project</a>. It was about the <a title="MP3 - Wikipedia" href="http://en.wikipedia.org/wiki/MP3">MP3-patents</a>. They searched an expert witness for a case.</p>
<p style="text-align: justify;">I had the impression that it is about the invalidation of at least parts of one of the patents. Maybe they have a client which was sued for infringement. Unfortunately for them I have absolutely no clue what is inside the MP3-patents (I am/was taking care about the “glue” in LAME) and the phone call we had was just some hours before I went into holiday. I referred him to two other developers of the LAME-project which not only should have better knowledge about the parts the lawyer is interested in, but also where probably not  in holiday.</p>
<p style="text-align: justify;">We also had a little chat about patents in general, and my opinion was that <a title="software" href="http://www.leidinger.net/blog/category/software/">software</a> patents are not that useful. In the IT world 3 years is a lot of time, technology is already overtaken by new developments most of the time after this time. When assuming that developing something new depending on some technology seen at another place takes at least about 1 year (do not hit me because of this rough estimation without specifying the size of the project or the quality requirements), a software patent which is valid longer than 5 years is more than enough in my opinion. Any company which was not able to make some <a title="money" href="http://www.leidinger.net/blog/category/money/">money</a> with it during this time made something wrong, and blocking the competition because of this is not really a good idea from my point of an user of technology. As an user I want advancements. And as an <a title="open source" href="http://www.leidinger.net/blog/category/software/oss/">open source</a> developer I try to produce my own advancements when I can not get them from somewhere else. In this light software patents are not doing good for the “advancement of the human race”.</p>
<p style="text-align: justify;">The lawyer did not try to convince me to the opposite. Either has was too polite, did not care about it, or he silently agrees. He  told me he wants to stay in touch with me in some way regarding Open <a title="Source" href="http://www.leidinger.net/blog/category/freebsd/freebsd-src/">Source</a> and patents. I did not object to this.</p>
<p style="text-align: justify;">As I was curious about the state of this, I contacted the lawyer about it, and the current outcome is not bad. Previously a lot of tries (by other lawyers in the same German court) failed to fight against the particular patent. This time the court did not follow his previous rulings but told that this issue needs to be investigated again (at least this is how I understand this — beware, I am not a lawyer). Maybe we can see a result this year.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2009/09/16/photovoltaic-from-the-bank-no-real-benefit-for-me/" rel="bookmark" class="crp_title">Photovoltaic from the bank (no real benefit for me)</a></li><li><a href="http://www.leidinger.net/blog/2009/11/19/sun-openstorage-presentation/" rel="bookmark" class="crp_title">SUN OpenStorage presentation</a></li><li><a href="http://www.leidinger.net/blog/2006/07/08/some-days-of-mentoring/" rel="bookmark" class="crp_title">Some days of mentoring…</a></li><li><a href="http://www.leidinger.net/blog/2009/08/10/emc2legato-networker-7-5-1-problems/" rel="bookmark" class="crp_title">EMC^2/Legato Networker 7.5.1 problems</a></li><li><a href="http://www.leidinger.net/blog/2009/10/12/more-problems-with-cups-passing-env-variables/" rel="bookmark" class="crp_title">More problems with CUPS (passing env variables)</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F02%2F22%2Fcontacted-by-a-lawyer-regarding-mp3%2F&amp;linkname=Contacted%20by%20a%20lawyer%20regarding%20MP3"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/02/22/contacted-by-a-lawyer-regarding-mp3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making ZFS faster…</title>
		<link>http://www.leidinger.net/blog/2010/02/10/making-zfs-faster/</link>
		<comments>http://www.leidinger.net/blog/2010/02/10/making-zfs-faster/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 10:21:53 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=563</guid>
		<description><![CDATA[Currently I play a little bit around with my ZFS setup. I want to make it faster, but I do not want to spend a lot of money.
The disks are connected to an ICH 5 controller, so an obvious improvement would be to either buy a controller for the PCI slot which is able to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Currently I play a little bit around with my ZFS setup. I want to make it faster, but I do not want to spend a lot of <a title="money" href="http://www.leidinger.net/blog/category/money/">money</a>.</p>
<p style="text-align: justify;">The disks are connected to an ICH 5 controller, so an obvious improvement would be to either buy a controller for the PCI slot which is able to do <a title="Native Command Queuing" href="http://en.wikipedia.org/wiki/Native_Command_Queuing">NCQ</a> with the SATA disks (a <a href="http://man.freebsd.org/siis">siis(4)</a> based one is not cheap), or to buy a new system which comes with a chipset which knows how to do NCQ (this would mean new RAM, new CPU, new MB and maybe even a new PSU). A new controller is a little bit expensive for the old system which I want to tune. A new system would be nice, and reading about the specs of new systems lets me want to get a Core i5 system. The problem is that I think the current offers of mainboards for this are far from good. The system should be a little bit future proof, as I would like to use it for about 5 years or more (the current system is somewhere between 5–6 years old). This means it should have <a href="http://en.wikipedia.org/wiki/Serial_ATA#SATA_Revision_3.0_.28SATA_6Gb.2Fs.29">SATA-3</a> and <a href="http://en.wikipedia.org/wiki/Universal_Serial_Bus#USB_3.0">USB 3</a>, but when I look at what is offered currently it looks like there are only beta-versions of hardware with SATA-3 and USB 3 support available on the marked (according to tests there is a lot of variance of the max speed the controllers are able to achieve, bugs in the BIOS, or the  controllers are attached to a slow bus which prevents to use the full bandwidth). So it will not be a new system soon.</p>
<p style="text-align: justify;">As I had a 1GB USB-stick around, I decided to attach it to the one of the EHCI USB ports and use it as a cache device for ZFS. If someone wants to try this too, be careful with the USB ports. My mainboard has only 2 USB ports connected to an EHCI, the rest are UHCI ones. This means that only 2 USB ports are fast (sort of… 40 MBit/s), the rest is only usable for slow things like a mouse, keyboard or a serial line.</p>
<p style="text-align: justify;">Be warned, this will not give you a lot of bandwidth (if you have a fast USB stick, the 40MBit/s of the EHCI are the limit which prevent a big streaming bandwidth), but the latency of the cache device is great when doing small random IO. When I do a <a href="http://man.freebsd.org/gstat">gstat</a> and have a look how long a read operation takes for each involved device, I see something between 3 msec and 20 msec for the harddisks (depending if they are reading something at the current head position, or if the harddisk needs to seek around a lot). For the cache device (the USB stick) I see something between around 1 mssec and 5 msec. That is 1/3th to 1/4th of the latency of the harddisks.</p>
<p style="text-align: justify;">With a “zfs send” I see about 300 IOops per harddisk (3 disks in a RAIDZ). Obviously this is an optimum streaming case where the disks do not need to seek around a lot. You see this in the low latency, it is about 2 msec in this case. In the random-read case, like for example when you run a find, the disks can not keep this amount of IOops, as they need to seek around. And here the USB-stick shines. I’ve seen upto 1600 IOops on it during running a find (if the corresponding data is in the cache, off course). This was with something between 0.5 and 0.8 msec of latency.</p>
<p style="text-align: justify;">This is the machine at home which is taking care about my mails (incoming and outgoing SMTP, IMAP and Webmail), has a squid proxy and acts as a file server. There are not many users (just me and my wife) and there is no regular usage pattern for all those services. Because of this I did not do any benchmark to see how much time I can gain with various  workloads (and I am not interested in some artificial performance numbers of my webmail session, as the browsing experience is highly subjective in this case). For this system a 1 GB USB stick (which was just collecting dust before) seems to be a cheap way to improve the response time for often used small data. When I use the webmail interface now, my subjective impression is, that it is faster. I am talking about listing emails (subject, date, sender, size) and displaying the content of some emails. FYI, my maildir storage has 849 MB with 35000 files in 91 folders.</p>
<p style="text-align: justify;">Bottom line is: do not expect a lot of bandwidth increase with this, but if you have a workload which generates random read requests and you want to decrease the read latency, it could be a cheap solution to add a (big) USB stick as a cache device.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2009/11/24/zfs-power-failure-stable/" rel="bookmark" class="crp_title">ZFS &amp; power-failure: stable</a></li><li><a href="http://www.leidinger.net/blog/2009/10/30/local-backup-vs-tarsnap/" rel="bookmark" class="crp_title">Local backup vs. tarsnap</a></li><li><a href="http://www.leidinger.net/blog/2009/12/15/stability-problems-with-7-stable/" rel="bookmark" class="crp_title">Stability problems with 7-stable</a></li><li><a href="http://www.leidinger.net/blog/2010/01/13/stability-problems-solved-hardware-problem/" rel="bookmark" class="crp_title">Stability problems solved (hardware problem)</a></li><li><a href="http://www.leidinger.net/blog/2009/11/19/sun-openstorage-presentation/" rel="bookmark" class="crp_title">SUN OpenStorage presentation</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F02%2F10%2Fmaking-zfs-faster%2F&amp;linkname=Making%20ZFS%20faster%E2%80%A6"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/02/10/making-zfs-faster/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Showing off some numbers…</title>
		<link>http://www.leidinger.net/blog/2010/02/05/showing-off-some-numbers/</link>
		<comments>http://www.leidinger.net/blog/2010/02/05/showing-off-some-numbers/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 16:17:51 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[@Work]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Solaris]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=561</guid>
		<description><![CDATA[At work we have some performance problems.
One application (not off-the-shelf software) is not performing good. The problem is that the design of the application is far from good (auto-commit is used, and the Oracle DB is doing too much writes for what the application is supposed to do because of this). During helping our DBAs [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">At work we have some performance problems.</p>
<p style="text-align: justify;">One application (not off-the-shelf <a title="software" href="http://www.leidinger.net/blog/category/software/">software</a>) is not performing good. The problem is that the design of the application is far from good (auto-commit is used, and the Oracle DB is doing too much writes for what the application is supposed to do because of this). During helping our DBAs in their performance analysis (the vendor of the application is telling our hardware is not fast enough and I had to provide some numbers to show that this is not the case and they need to improve the software as it does not comply to the performance requirements they got before developing the application) I noticed that the filesystem where the DB and the application are located (a ZFS if someone is interested) is doing sometimes 1.200 IO (write) operations per second (to write about 100 MB). Yeah, that is a lot of IOops our SAN is able to do! Unfortunately too expensive to buy for use at home. <img src='http://www.leidinger.net/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p style="text-align: justify;">Another application (nagios 3.0) was generating a lot of major faults (caused by a lot of fork()s for the checks). It is a SunFire V890, and the highest number of MF per second I have seen on this machine was about 27.000. It never went below 10.000. On average maybe somewhere between 15.000 and 20.000. My <a title="Solaris" href="http://www.leidinger.net/blog/category/solaris/">Solaris</a>–Desktop (an Ultra 20) is generating maybe several hundred MF if a lot is going on (most of the time is does not generate much). Nobody can say the V890 is not used… <img src='http://www.leidinger.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Oh, yes, I suggested to enable the nagios config setting for large sites, now the major faults are around 0–10.000 and the machine is not that stressed anymore. The next step is probably to have a look at the ancient probes (migrated from the big brother setup which was there several years before) and reduce the number of forks they do.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2009/11/19/fighting-with-the-sun-ldap-server/" rel="bookmark" class="crp_title">Fighting with the SUN LDAP server</a></li><li><a href="http://www.leidinger.net/blog/2007/01/20/a-way-to-encourage-hardware-companies-to-support-bsd/" rel="bookmark" class="crp_title">A way to encourage hardware companies to support *BSD</a></li><li><a href="http://www.leidinger.net/blog/2009/10/07/the-documentation-of-cups-is-not-very-good-cups-client-setup/" rel="bookmark" class="crp_title">The documentation of CUPS is not very good (CUPS client setup)</a></li><li><a href="http://www.leidinger.net/blog/2007/03/17/text-why-proprietary-or-no-hardware-docs-hurt-the-manufacturer/" rel="bookmark" class="crp_title">Text why proprietary or no hardware docs hurt the manufacturer</a></li><li><a href="http://www.leidinger.net/blog/2009/11/24/emc2legato-networker-7-5-1-6-status/" rel="bookmark" class="crp_title">EMC^2/Legato Networker 7.5.1.6 status</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F02%2F05%2Fshowing-off-some-numbers%2F&amp;linkname=Showing%20off%20some%20numbers%E2%80%A6"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/02/05/showing-off-some-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging lang/mono — 2nd round</title>
		<link>http://www.leidinger.net/blog/2010/01/29/debugging-langmono-2nd-round/</link>
		<comments>http://www.leidinger.net/blog/2010/01/29/debugging-langmono-2nd-round/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 11:25:48 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ports Collection]]></category>
		<category><![CDATA[Problem(s)]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=551</guid>
		<description><![CDATA[Today I had again some energy to look at why mono fails to build on FreeBSD–current.
I decided to do a debug-build of mono. This did not work initially, I had to produce some patches.  
Does this mean nobody is doing debug builds of mono on FreeBSD?
I have to say, this experience with lang/mono is [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Today I had again some energy to look at why mono fails to build on <a href="http://www.FreeBSD.org/"  class="alinks_links" onclick="return alinks_click(this);" title="The FreeBSD Project"  style="padding-right: 13px; background: url(http://www.leidinger.net/blog/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">FreeBSD</a>–current.</p>
<p style="text-align: justify;">I decided to do a debug-build of mono. This did not work initially, I had to produce some patches. <img src='http://www.leidinger.net/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p style="text-align: justify;">Does this mean nobody is doing debug builds of mono on <a title="FreeBSD" href="http://www.leidinger.net/blog/category/freebsd/">FreeBSD</a>?</p>
<p style="text-align: justify;">I have to say, this experience with lang/mono is completely unsatisfying.</p>
<p style="text-align: justify;">Ok, bottom line, either the debug build seems to prevent a race condition in most cases (I had a lot less lockups for each of the two builds I did).</p>
<p style="text-align: justify;">Whatever it is, I do not care ATM (if the configure stuff is looking at the architecture of the system, it may be the case that the i386-portbld-freebsdX does not enable some important stuff which would be enabled when run with i486-portbld-freebsdX or better). Here are the patches I used in case someone is interested (warning, copy&amp;paste converted tabs to spaces, you also have to apply the map.c (a generated file… maybe a touch of the right file would allow to apply this patch in the normal patch stage) related stuff when the build fails, else there is some parser error in mono):</p>
<pre>--- mcs/class/Mono.Posix/Mono.Unix/UnixProcess.cs.orig       2010-01-29 11:34:00.592323482 +0100
+++ mcs/class/Mono.Posix/Mono.Unix/UnixProcess.cs    2010-01-29 11:34:18.540607357 +0100
@@ -57,7 +57,7 @@ namespace Mono.Unix {
 int r = Native.Syscall.waitpid (pid, out status,
 Native.WaitOptions.WNOHANG | Native.WaitOptions.WUNTRACED);
 UnixMarshal.ThrowExceptionForLastErrorIf (r);
-                       return r;
+                       return status;
 }

 public int ExitCode {

--- mono/io-layer/processes.c.orig    2010-01-29 11:36:08.904331535 +0100
+++ mono/io-layer/processes.c 2010-01-29 11:42:21.819159544 +0100
@@ -160,7 +160,7 @@ static gboolean waitfor_pid (gpointer te
 ret = waitpid (process-&gt;id, &amp;status, WNOHANG);
 } while (errno == EINTR);

-       if (ret &lt;= 0) {
+       if (ret == 0 || (ret &lt; 0 &amp;&amp; errno != ECHILD)) {
 /* Process not ready for wait */
 #ifdef DEBUG
 g_message ("%s: Process %d not ready for waiting for: %s",
@@ -169,6 +169,17 @@ static gboolean waitfor_pid (gpointer te

 return (FALSE);
 }
+
+       if (ret &lt; 0 &amp;&amp; errno == ECHILD) {
+#ifdef DEBUG
+               g_message ("%s: Process %d does not exist (anymore)", __func__,
+                          process-&gt;id);
+#endif
+               /* Faking the return status. I do not know if it is correct
+                * to assume a successful exit.
+                */
+               status = 0;
+       }

 #ifdef DEBUG
 g_message ("%s: Process %d finished", __func__, ret);

--- mono/metadata/mempool.c.orig      2010-01-29 11:58:16.871052861 +0100
+++ mono/metadata/mempool.c   2010-01-29 12:30:45.143367454 +0100
@@ -212,12 +212,14 @@ mono_backtrace (int size)

         EnterCriticalSection (&amp;mempool_tracing_lock);
         g_print ("Allocating %d bytesn", size);
+#if defined(HAVE_BACKTRACE_SYMBOLS)
         symbols = backtrace (array, BACKTRACE_DEPTH);
         names = backtrace_symbols (array, symbols);
         for (i = 1; i &lt; symbols; ++i) {
                 g_print ("t%sn", names [i]);
         }
         free (names);
+#endif
         LeaveCriticalSection (&amp;mempool_tracing_lock);
 }

--- mono/metadata/metadata.c.orig     2010-01-29 11:59:38.552316989 +0100
+++ mono/metadata/metadata.c  2010-01-29 12:00:43.957337476 +0100
@@ -3673,12 +3673,16 @@ mono_backtrace (int limit)
         void *array[limit];
         char **names;
         int i;
+#if defined(HAVE_BACKTRACE_SYMBOLS)
         backtrace (array, limit);
         names = backtrace_symbols (array, limit);
         for (i =0; i &lt; limit; ++i) {
                 g_print ("t%sn", names [i]);
         }
         g_free (names);
+#else
+       g_print ("No backtrace available.n");
+#endif
 }
 #endif

--- support/map.c.orig        2010-01-29 12:05:22.374653708 +0100
+++ support/map.c 2010-01-29 12:10:29.024412452 +0100
@@ -216,7 +216,7 @@
 #define _cnm_dump(to_t, from) do {} while (0)
 #endif /* def _CNM_DUMP */

-#ifdef DEBUG
+#if defined(DEBUG) &amp;&amp; !defined(__FreeBSD__)
 #define _cnm_return_val_if_overflow(to_t,from,val)  G_STMT_START {   
         int     uns = _cnm_integral_type_is_unsigned (to_t);             
         gint64  min = (gint64)  _cnm_integral_type_min (to_t);           </pre>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2010/01/28/mono-build-problems-on-freebsd-current/" rel="bookmark" class="crp_title">Mono build problems on FreeBSD-current</a></li><li><a href="http://www.leidinger.net/blog/2009/12/16/stabilizing-7-stable/" rel="bookmark" class="crp_title">Stabilizing 7-stable…</a></li><li><a href="http://www.leidinger.net/blog/2009/12/01/video-for-linux-v4l-emulation-coming-to-the-linuxulator/" rel="bookmark" class="crp_title">Video for linux (v4l) emulation coming to the linuxulator</a></li><li><a href="http://www.leidinger.net/blog/2007/06/24/round-up-of-recent-freebsd-work/" rel="bookmark" class="crp_title">Round-up of recent FreeBSD work</a></li><li><a href="http://www.leidinger.net/blog/2006/11/12/short-status-realplayer-sound-linux/" rel="bookmark" class="crp_title">Short status: RealPlayer, Sound, Linux, …</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F01%2F29%2Fdebugging-langmono-2nd-round%2F&amp;linkname=Debugging%20lang%2Fmono%20%E2%80%94%202nd%20round"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/01/29/debugging-langmono-2nd-round/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mono build problems on FreeBSD-current</title>
		<link>http://www.leidinger.net/blog/2010/01/28/mono-build-problems-on-freebsd-current/</link>
		<comments>http://www.leidinger.net/blog/2010/01/28/mono-build-problems-on-freebsd-current/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 15:03:02 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Ports Collection]]></category>
		<category><![CDATA[Problem(s)]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=546</guid>
		<description><![CDATA[I try to build mono on FreeBSD–current (it is a dependency of some GNOME program). Unfortunately this does not work correctly.
What I see are hangs of the build. If I stop the build when it hangs and restart it, it will continue and succeed to process the build steps a little bit further, but then [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I try to build mono on <a href="http://www.FreeBSD.org/"  class="alinks_links" onclick="return alinks_click(this);" title="The FreeBSD Project"  style="padding-right: 13px; background: url(http://www.leidinger.net/blog/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">FreeBSD</a>–current (it is a dependency of some GNOME program). Unfortunately this does not work correctly.</p>
<p style="text-align: justify;">What I see are hangs of the build. If I stop the build when it hangs and restart it, it will continue and succeed to process the build steps a little bit further, but then it hangs again.</p>
<p style="text-align: justify;">If I ktrace the hanging process, I see that there is a call to <a title="FreeBSD man-page of wait(2)" href="http://man.FreeBSD.org/query=wait&amp;sektion=2">wait</a> returning with the error message that the child does not exist. Then there is a call to <a title="FreeBSD man-page of nanosleep(2)" href="http://man.FreeBSD.org/query=nanosleep&amp;sektion=2">nanosleep</a>.</p>
<p style="text-align: justify;">It looks to me like this process missed some SIGCLD (or is waiting for something which did not exist at all), and a loop is waiting for a child to exit. This loop probably has no proper condition for the fact that there is no such child (anymore). As such it will stay forever in this loop.</p>
<p style="text-align: justify;">So I grepped a litte bit around in mono and found the following code in &lt;mono-src-dir&gt;/mcs/class/Mono.Posix/Mono.Unix/UnixProcess.cs:</p>
<pre>public void WaitForExit ()
{
    int status;
    int r;
    do {
        r = Native.Syscall.waitpid (pid, out status, (Native.WaitOptions) 0);
    } while (UnixMarshal.ShouldRetrySyscall (r));
    UnixMarshal.ThrowExceptionForLastErrorIf (r);
}</pre>
<p style="text-align: justify;">This does look a little bit as it could be related to the problem I see, but ShouldRetrySyscall only returns true if the errno is EINTR. So this looks correct. <img src='http://www.leidinger.net/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p style="text-align: justify;">I looked a little bit more at this file and it looks like either I do not understand the semantic of this language, or GetProcessStatus does return the returnvalue of the waitpid call instead of the status (which is not what it shall return to my understanding). If I am correct, it can not really detect the status of a process. It would be very bad if such a fundamental thing went unnoticed in mono…  which does not put a good light on the unit-tests (if any) or the general testing of mono. For this reason I hope I am wrong.</p>
<p style="text-align: justify;">I did not stop there, as this part does not look like it is the problem. I found the following in mono/io-layer/processes.c:</p>
<pre>static gboolean waitfor_pid (gpointer test, gpointer user_data)
{
...
    do {
        ret = waitpid (process-&gt;id, &amp;status, WNOHANG);
    } while (errno == EINTR);

    if (ret &lt;= 0) {
        /* Process not ready for wait */
#ifdef DEBUG
        g_message ("%s: Process %d not ready for waiting for: %s",
                   __func__, process-&gt;id, g_strerror (errno));
#endif

        return (FALSE);
    }

#ifdef DEBUG
    g_message ("%s: Process %d finished", __func__, ret);
#endif

    process-&gt;waited = TRUE;
...
}
</pre>
<p style="text-align: justify;">And here we have the problem, I think. I changed the (ret &lt;= 0) to  (ret == 0 || (ret &lt; 0 &amp;&amp; errno != ECHILD)). This will not really give the correct status, but at least it should not block anymore and I should be able to see the difference during the build.</p>
<p style="text-align: justify;">And now after testing, I see a difference, but the problem is still there. The wait with ECHILD is gone in the loop, but there is still some loop with a semaphore operation:</p>
<p>62960 mono     CALL  clock_gettime(0xd,0xbf9feef8)<br />
62960 mono     RET   clock_gettime 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  nanosleep(0xbf9fef84,0)<br />
62960 mono     RET   nanosleep 0<br />
62960 mono     CALL  clock_gettime(0xd,0xbf9feef8)<br />
62960 mono     RET   clock_gettime 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  semop(0x20c0000,0xbf9feef6,0x1)<br />
62960 mono     RET   semop 0<br />
62960 mono     CALL  nanosleep(0xbf9fef84,0)</p>
<p>OK, there is more going on. I think someone with more knowledge about mono should have a look at this (do not only look at this semop thing, but also look why it loses a child).</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2010/01/29/debugging-langmono-2nd-round/" rel="bookmark" class="crp_title">Debugging lang/mono — 2nd round</a></li><li><a href="http://www.leidinger.net/blog/2006/08/26/linuxolator-bug-hunting/" rel="bookmark" class="crp_title">Linuxolator bug hunting</a></li><li><a href="http://www.leidinger.net/blog/2009/08/14/emc2legato-networker-7-5-1-4-status/" rel="bookmark" class="crp_title">EMC^2/Legato Networker 7.5.1.4 status</a></li><li><a href="http://www.leidinger.net/blog/2006/11/12/short-status-realplayer-sound-linux/" rel="bookmark" class="crp_title">Short status: RealPlayer, Sound, Linux, …</a></li><li><a href="http://www.leidinger.net/blog/2006/06/05/bikesheds-fc4-and-soc/" rel="bookmark" class="crp_title">Bikesheds, FC4 and SoC</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F01%2F28%2Fmono-build-problems-on-freebsd-current%2F&amp;linkname=Mono%20build%20problems%20on%20FreeBSD-current"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/01/28/mono-build-problems-on-freebsd-current/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Firefox 3.6, finally delivering a sane proxy handling</title>
		<link>http://www.leidinger.net/blog/2010/01/25/firefox-3-6-finally-delivering-a-sane-proxy-handling/</link>
		<comments>http://www.leidinger.net/blog/2010/01/25/firefox-3-6-finally-delivering-a-sane-proxy-handling/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 11:31:39 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[@Work]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=539</guid>
		<description><![CDATA[At work we have to use a proxy which requires authorization. With previous versions (firefox 3.0.x and 3.5.y for each valid x and y) I had the problem that each tab requested to enter the master password when starting firefox, to be able to fill in the proxy-auth data (shortcut: fill in only the first [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">At work we have to use a proxy which requires authorization. With previous versions (firefox 3.0.x and 3.5.y for each valid x and y) I had the problem that each tab requested to enter the master password when starting firefox, to be able to fill in the proxy-auth data (shortcut: fill in only the first request, and for all others just hit return/OK). So for each tab I had to do something for the master-password, and after that for each tab I also had to confirm the proxy-auth stuff.</p>
<p style="text-align: justify;">Very annoying! Oh, I should maybe mention that as of this writing I have 31 tabs open.  Sometimes there are more, sometimes there are less.</p>
<p style="text-align: justify;">Now with firefox 3.6 this is not the case anymore. Yeah! Great! Finally only one time the master password stuff, and then one time the proxy-auth stuff, and then all tabs proceed.</p>
<p style="text-align: justify;">It took a long time since my first report about this, but now it is finally there. This is the best improvement in 3.6 for me.</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2007/04/07/a-desktop-environment-in-a-jail/" rel="bookmark" class="crp_title">A desktop environment in a jail.</a></li><li><a href="http://www.leidinger.net/blog/2007/02/24/linuxulator-news/" rel="bookmark" class="crp_title">Linuxulator news</a></li><li><a href="http://www.leidinger.net/blog/2007/01/27/progress-in-the-linux-26x-compatibility/" rel="bookmark" class="crp_title">Progress in the linux 2.6.x compatibility</a></li><li><a href="http://www.leidinger.net/blog/2007/01/20/linuxulator-in-current-ready-for-testing-the-2616-emulation/" rel="bookmark" class="crp_title">Linuxulator in –current ready for testing the 2.6.16 emulation</a></li><li><a href="http://www.leidinger.net/blog/2007/01/13/fix-for-the-showstopper-bug-in-the-linuxulator/" rel="bookmark" class="crp_title">Fix for the showstopper bug in the linuxulator</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F01%2F25%2Ffirefox-3-6-finally-delivering-a-sane-proxy-handling%2F&amp;linkname=Firefox%203.6%2C%20finally%20delivering%20a%20sane%20proxy%20handling"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/01/25/firefox-3-6-finally-delivering-a-sane-proxy-handling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving the order of directories to backup in tarsnap</title>
		<link>http://www.leidinger.net/blog/2010/01/19/improving-the-order-of-directories-to-backup-in-tarsnap/</link>
		<comments>http://www.leidinger.net/blog/2010/01/19/improving-the-order-of-directories-to-backup-in-tarsnap/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 11:05:01 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=532</guid>
		<description><![CDATA[I experimented a little bit with the order of directories to backup in tarsnap.
Currently I use the following sorting algorithm:

least frequently changed directory-trees first
Every change — even in meta-data — will affect the following data, as tarsnap is doing the de-duplication in fixed-width blocks (AFAIR 64k).
for those directory-trees which change with the same frequency: list [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I experimented a little bit with the order of directories to backup in tarsnap.</p>
<p style="text-align: justify;">Currently I use the following sorting algorithm:</p>
<ol>
<li style="text-align: justify;"><em>least frequently changed directory-trees first</em><br />
Every change — even in meta-data — will affect the following data, as tarsnap is doing the de-duplication in fixed-width blocks (AFAIR 64k).</li>
<li style="text-align: justify;"><em>for those directory-trees which change with the same frequency: list the bigger ones first</em><br />
Implicitly I assume that the smaller ones are much smaller than the bigger ones so that the smaller part which will be backed up will not be noticed because of the bigger change. For my use cases of tarsnap this is true.</li>
<li style="text-align: justify;"><em>if changes in a directory-tree are much much bigger than anything else, but the directory-tree has a medium change-frequency, put it even before less-frequently changing stuff</em><br />
I do not want that a small change triggers a big backup, but a big backup can contain the remaining small part.</li>
<li style="text-align: justify;"><em>if you backup home directories (even root’s one) and they do not contain much data, put them before directory-trees which change a lot daily</em><br />
I do not want that a login triggers the transfer of data in other directory-trees which have not changed.</li>
</ol>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2009/11/18/testing-tarsnap/" rel="bookmark" class="crp_title">Testing tarsnap</a></li><li><a href="http://www.leidinger.net/blog/2009/10/30/local-backup-vs-tarsnap/" rel="bookmark" class="crp_title">Local backup vs. tarsnap</a></li><li><a href="http://www.leidinger.net/blog/2009/11/25/tarsnap-usage-statistics/" rel="bookmark" class="crp_title">Tarsnap usage statistics</a></li><li><a href="http://www.leidinger.net/blog/2007/05/17/speeding-up-the-package-dependency-list-creation/" rel="bookmark" class="crp_title">Speeding up the package dependency list creation</a></li><li><a href="http://www.leidinger.net/blog/2009/08/10/emc2legato-networker-7-5-1-problems/" rel="bookmark" class="crp_title">EMC^2/Legato Networker 7.5.1 problems</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F01%2F19%2Fimproving-the-order-of-directories-to-backup-in-tarsnap%2F&amp;linkname=Improving%20the%20order%20of%20directories%20to%20backup%20in%20tarsnap"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/01/19/improving-the-order-of-directories-to-backup-in-tarsnap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stability problems solved (hardware problem)</title>
		<link>http://www.leidinger.net/blog/2010/01/13/stability-problems-solved-hardware-problem/</link>
		<comments>http://www.leidinger.net/blog/2010/01/13/stability-problems-solved-hardware-problem/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 12:08:04 +0000</pubDate>
		<dc:creator>netchild</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Problem(s)]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.leidinger.net/blog/?p=528</guid>
		<description><![CDATA[After putting the disks of the 7-stable system which exhibited stability problems into a completely different system (it is a rented root-server, not our own hardware), the system now survived more than a day (and still no trace of problems) with the UFS setup. Previously it would crash after some minutes.
The ZFS setup with the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">After putting the disks of the 7-stable system which exhibited stability problems into a completely different system (it is a rented root-server, not our own hardware), the system now survived more than a day (and still no trace of problems) with the UFS setup. Previously it would crash after some minutes.</p>
<p style="text-align: justify;">The ZFS setup with the changed hardware had a problem during the night before (like always after all my ZFS related changes on this machine), but on this machine I changed all locks in ZFS from shared locks to exclusive locks (this extended the uptime from 4–6 hours to “until I rebooted the morning after because of hanging processes”), so this may be because of this. I do not know yet if we will test the ZFS setup with the pure 7-stable <a title="source" href="http://www.leidinger.net/blog/category/freebsd/freebsd-src/">source</a> we use now or not (the goal was to get back a stable system, instead of playing around with unrelated stuff).</p>
<p style="text-align: justify;">It looks like some kind of hardware problem was uncovered by updating from 7.1 to 7.2 (and 7-stable subsequently). This new machine has a completely different chipset, a new CPU and RAM and PSU and … so I do not really know what caused this (but the fact that the previous system did not recognize the CPU after replacing it with a bigger one and the observation that only shared locks with a specific usage pattern where affected lets me point towards missing microcode updates…).</p>
<div id="crp_related"><h3>Related Posts:</h3><ul><li><a href="http://www.leidinger.net/blog/2010/01/07/i-merged-a-lot-of-zfs-patches-to-7-stable/" rel="bookmark" class="crp_title">I merged a lot of ZFS patches to 7-stable</a></li><li><a href="http://www.leidinger.net/blog/2009/12/15/stability-problems-with-7-stable/" rel="bookmark" class="crp_title">Stability problems with 7-stable</a></li><li><a href="http://www.leidinger.net/blog/2009/12/16/stabilizing-7-stable/" rel="bookmark" class="crp_title">Stabilizing 7-stable…</a></li><li><a href="http://www.leidinger.net/blog/2009/08/10/wp-problems-solved/" rel="bookmark" class="crp_title">WP problems solved</a></li><li><a href="http://www.leidinger.net/blog/2009/08/14/emc2legato-networker-7-5-1-4-status/" rel="bookmark" class="crp_title">EMC^2/Legato Networker 7.5.1.4 status</a></li></ul></div><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.leidinger.net%2Fblog%2F2010%2F01%2F13%2Fstability-problems-solved-hardware-problem%2F&amp;linkname=Stability%20problems%20solved%20%28hardware%20problem%29"><img src="http://www.leidinger.net/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.leidinger.net/blog/2010/01/13/stability-problems-solved-hardware-problem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
