Showing posts from November, 2006

Java 5 crashes on Linux 2.6, too

Two and a half weeks ago I published a post about problems with random VM crashes using Java 5 on Linux with a 2.4 kernel. Most of the feedback I got suggested upgrading to a more recent kernel version. Because this represents a major undertaking for our application (several thousand clients deployed with Java 1.4.2 on RH9) we needed to be sure this would work. Because all the crash reports - see the original post - seemed to hint into the GC's direction I wrote a little test application to stress the garbage collector. What it does is to create a configurable number of threads, each of which just allocates a byte[] of variable size. In case an OutOfMemoryError occurs, the thread gets replaced with a new one. You can find the code at the bottom of this post. I started 4 instances of this tool under Ubuntu 6.06, each configured with 20 threads (first parameter) and up to 40MB of memory per thread (second parameter, in bytes). After 4 days of continuous running - we had just s

Amazingly simple - Collection Initialization

On Todd Huss ' blog I just came about a very simple way of initializing a collection with a set of predefined values. It is so simple that it is amazing people do not use it way more often. For my part, I have seen this use of instance initializers for the first time, although they are nothing sooo special...

MySQL/InnoDB slowness with Blobs

Reading about Peter Zaitsev 's feature idea about Finding columns which a query needs to access - which I would really like to see implemented - reminded me of a bug report I filed in 2004 and which bit me again only a few days ago. You can find it under Bug #7074 in the MySQL bug tracking tool. Although it is filed as a feature request, I think one should be aware of this, as it may cause problems in your applications (it did in ours). Basically it is about explicitly specifying which columns you need in a result set, instead of just using SELECT * . This is generally a good idea, however if the table contains BLOB columns, it becomes even more important, as it may affect performance heavily in an unexpected manner. From the bug report: MySQL first reads all the selected columns, and only after that checks the WHERE. This may lead to long running queries, even if you do not use the BLOB column in the WHERE clause and even if there is no data to retrieve based on the query c

System Lockup: F-Secure AV 2007 and Kerio Firewall

Recently I received a notification about F-Secure Anti-Virus 2007 being available. As an F-Secure customer you are entitled to upgrade from the 2006 version if your subscription is valid. So I downloaded the installation package and performed the upgrade. After the obligatory reboot things started to fall apart. My computer would not respond for more than about 30 seconds after I had logged in. Opening the Start menu would work, maybe even opening e. g. the Control Panel sub menu. However nothing else would work after this point. Using Ctrl-Alt-Del to get the Task Manager just allowed me to "wipe" the start menu from the screen, no more action would be possible. What made me suspicious was a little dialog I had to dismiss right after logging in that informed me about my Kerio Personal Firewall not being found by the system-tray GUI. Because conflicting firewalls are known to cause lockup problems like this, I originally bought F-Secure Anti-Virus instead of the whole Inte

JavaPosse podcast on Java GPL'ing

They guys of the JavaPosse have just released a special issue of their podcast in which they interview Mark Reinhold (chief engineer for Java SE), Rich Sands (community marketing manager for Java SE) and Eric Chu (senior director of the Client Systems Group and head of its Java ME initiatives). Dick wall posted a story on called Questions about Open Source Java? This Podcast may have the answers! which leads to the podcast. Very interesting stuff, especially concerning the famous question "Will my app have to become Open Source, too, if I use Sun's Java?". Be sure to cast your vote for the item on :)

Vista Aero and QuickTime

Very cool behaviour of QuickTime on Vista (ok, RC1, but I do not think this will become better): This is shown when you start the QuickTime control panel applet. Notice that the publisher information is displayed as "Microsoft Windows Publisher", so you have no idea that this was really the QuickTime applet. It could have been any other process in the background, too.

Java 5 random VM crashes

We are currently evaluating the consequences of migrating our application from Java 1.4 to Java 5. While initial tests revealed only simple issues (like variables called enum etc.) we are now seeing a much more severe problem: Random VM crashes. Currently we only see this on Linux (Kernel 2.4) only, however even there we cannot reliably reproduce the problem. On a single machine we have seen two crashes in a week. Notably the application was not being used, it was just started and waiting for user input. Some background threads are running in this situation, however they do not do any work, either. They just poll some database tables for external changes, but there were none. All of a sudden a VM would crash, leaving a hs_err_pid1234.txt behind. This is what they look like (shortened): # # An unexpected error has been detected by HotSpot Virtual Machine: # # SIGSEGV (0xb) at pc=0x402989b9, pid=8736, tid=1094691632 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_09-b03 mixed mode,

Beryl on Edgy Eft

As announced previously I spent some time to get Beryl to work on my newly upgraded Edgy Eft installation. Although it did not went as smoothly as I would have hoped, it was not too troublesome either. Dual head still seems to be a major problem in many areas in Linux. This definitely something the Windows people do not have to worry about just as much, but ok, this may partly be related to the hardware vendors not providing some sort of unified and/or open drivers. Nevertheless it is now working, after some changes to my xorg.conf . Before those I always got an error message from Beryl, complaining about a missing RandR extension. The effects are really nice, some of them are however too slow for my taste in the default settings. After speeding them up a little (I do not like to wait for a context-menu to wobble into view, if it wobbles for more than a fraction of a second) I really liked it. There are some issues left, but I assume this is because of the ongoing development. E.