• 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.

  • L'année dernière, j'avais fait un post sur les outils permmettant de récupérer l'espace disk libérée sur des lun en thin provisionnnig. Il fallait, pour cela, créer un "un gros" fichier ne contenant que des zéros, par la commande dd, par exemple.

    Mais, cette procédure est un peu plus subtil sur un volume zfs compressé. En effet, lors que le volume est compressé, tous fichiers qui y sont crées sont compressés, de façon transparente, avant leur écriture sur le disk. Donc, le fichier, contenant les zéros, ne dépassera pas une certaine taille (en pratique la taille occuppée par le fichier évolue très très lentement).

    Dans ce cas, l'astuce consiste à  créer un sous volume, le passer en mode nom compressé, puis créer un fichier contenant des zéros et supprimer le sous volume. Suppons que le volume zfs compressé devant subir le zeroing est /testZeroing. La procédure à  suivre est:

    • sudo zfs create testZeroing/4Zeroing : création du sub volume.

    • sudo udo zfs get compression testZeroing/4Zeroing : permet de vérifier que la comoression est bien active.

    • sudo zfs set compression=off testZeroing/4Zeroing : désactivation de la compression sur le nouveau sub volume uniquement.

    • dd if=/dev/zero of=- bs=1G | sudo tee /testZeroing/4Zeroing/zeroFile : création du fichier permettant de lancer thin reclaim.

      • Astuce : echo coucou | sudo tee FileOwnedByRoot permet d'écrire dans un fichier dont un utilisateur n'est pas propriétaire ou ne dispose de pas de droits permettant d'écrire dans ce fichier. Cette syntax est très pratique pour vider des fichiers logs sans àªtre obligé de passer un shell root.

      • sudo zfs destroy testZeroing/4Zeroing : supression du volume temporaire après la création du fichier et récupération de l'espace disk.

  • 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/VICommon.pm 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.

  • I mourn the loss of thousands of precious lives, but I will not rejoice in the death of one, not even an enemy. Returning hate for hate multiplies hate, adding deeper darkness to a night already devoid of stars. Darkness cannot drive out darkness: only light can do that. Hate cannot drive out hate: only love can do that.
    I don't know if it was really said by Martin Luther King. But, it expresses how I feel nowadays. Moreover, I think a democratic country must not get it's revenge by killing, but by taking criminals to court.