Since few days some useful KDE apps hung when they are started. Okular is in this case, which is quite painful as I use this app many times a day. I used to reboot my workstation in order to resolve the issue until now. But, I got fed up with reboots. So, I started dig in order to resolve the issu.

The first move was to strace okular, by strace okular. After few seconds, the last line on the terminal was connect(10, {sa_family=AF_FILE, path=@"/tmp/fam-glennie"}, 110). This line is quite clear : fam stands for File Alteration Monitor. I switched to gamin few years ago beacause it uses inotify/dnotify under linux.

My first try was to kill gamin_server, and okular started instantaneously. So my issue was linked to gamin process. And now, I've a solution to resolve my issue without rebooting.

FYI, a bug is filled in debian bug tracker.

  • We are moving from Tomcat 5.5 (under Debian Etch) to Tomcat 7 (Debian Wheezy). Most of the migration was quite easy, but we had 2 blocking issues.

    One of them was raised when asking JDK to use proxies when contacting external web sites(CAS ticket validation, in our case). Setting proxies in tomcat is done by passing -Dhttp.proxy* parameters to the JDK (in /etc/default/tomcat7i file). When these paremeters are set, tomcat dies quickly. In catalina.out, one can find GLib-GIO-ERROR **: Settings schema 'org.gnome.system.proxy' is not installed. This errors seems to linked with Open JDK 7, provided by Debian. Swiching to JDK 7 from Oracle resolves the issue. We didn't fill a bug report yet, but I'm going to take some time to fill a bug report in order to switch back to Open JDK as soon as possible.

    The second one concerned JSP. In fact, a change was made in the way the JSP syntax was checked. In tomcat 5.5, by default, the syntax checking was less strict and didn't lead an exception when JSP didn't conform to the Java Language Specification for Java identifiers. When this exception occurs, one can notice javax.el.ELException: Failed to parse the expression followed by the expression causing the exception and the log file shows the exact jsp file which triggered the exception. After few research, We found to 2 ways to correct the issue:

    • Setting org.apache.el.parser.SKIP_IDENTIFIER_CHECK to True (i.d. adding -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true to /etc/default/tomcat7 file).

    • Correcting JSP pages in order to conform Java Language Specification for Java identifiers.
    • Using the first solution is quite easy: add the parameter to /etc/default/tomcat7 and restart tomcat. But it's messy: using reserved keywords as indentifiers may lead to unkown issues. But, as the application is developped and maintained in our company, we decided to correct all the JSP pages, which took few minutes.

    At the moment, our test server is running under Tomcat 7 and doing quite well. We will move our pre production server and then, the production server to Tomcat 7 in few days.

  • When adding a disk to LVM by pvcreate one gets the message Can't open /dev/sdXy exclusively. Mounted filesystem or when creating a new filesystem one gets Permission denied while trying to determine filesystem size, this means that disk is locked. That is:

    • The device is locked because it's already mounted. Double check, if it's not the case.
    • The device is locked by multipathd. This was my case. This can be checked by sudo multipath -l. If your device is listed, then double check, if you aren't trying to use a wrong device.

    If the device is locked by *multipath* and if this is an error, then to remove the device from multipath's control, issue sudo multipath -f /dev/sdX to remove the device.

    After this, the device can use for LVM or a partition on it can formated.

  • At the moment, I'm trying to use vmware vSphere CLI tools under Debain SID and getting Server version unavailable at 'https://SERVER:443/sdk/vimService.wsdl' at /usr/local/share/perl/5.12.3/VMware/ line 545, <STDIN> line 1. This error is du to the LWP::UserAgent class which tries to validate the server certificate and fails if the certifcate CA is unknown(or self signed).

    In order to bypass the server certificate validation, set PERL_LWP_SSL_VERIFY_HOSTNAME environnement variable to 0 by export PERL_LWP_SSL_VERIFY_HOSTNAME=0.