The difficult to find bug

After upgrading from 3.4 to 3.6 my JGroups code stopped working. On a 2 nodes setup when the second node tried to join I got the following errors:

2015-04-22 21:38:12,510 INFO  [ViewHandler,monalisa,tux-7762|fr.mcc.test.TestJGroups] Detected a change in cluster members: [tux-7762, tux-9846]
2015-04-22 21:38:14,460 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 1
2015-04-22 21:38:16,463 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 2
2015-04-22 21:38:18,466 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 3
2015-04-22 21:38:20,468 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 4
2015-04-22 21:38:22,471 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 5
2015-04-22 21:38:24,473 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 6
2015-04-22 21:38:26,475 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 7
2015-04-22 21:38:28,479 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 8
2015-04-22 21:38:30,482 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 9
2015-04-22 21:38:32,485 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: JOIN(tux-9846) sent to tux-7762 timed out (after 2000 ms), on try 10
2015-04-22 21:38:32,485 WARN  [main|org.jgroups.protocols.pbcast.GMS] tux-9846: too many JOIN attempts (10): becoming singleton
2015-04-22 21:38:32,493 WARN  [Incoming-2,monalisa,tux-9846|org.jgroups.protocols.pbcast.NAKACK2] JGRP000011: tux-9846: dropped message 1 from non-member tux-7762 (view=[tux-9846|0] (1) [tux-9846])

It took some time but finally I managed to write a “simple” (quick and ugly) test to replicate the problem.

ojdbc14.jar to ojdbc6.jar migration

Migrating from ojdbc14.jar to ojdbc6.jar is not, as one might think, completely seamless. Here are at least 3 points which required code change:

Changes in class hierarchy

error: OracleTypes is not public in oracle.jdbc.driver; cannot be accessed from outside package
 [javac] private static Integer OracleRefCursorType = new Integer(oracle.jdbc.driver.OracleTypes.CURSOR);


Create a database of exif data

Create a database of exif data from photos using pyexiv2 and save it in a sqlite database for futher query:

Recover your lost apk

#Find the device
adb devices
#Find the package
adb shell pm list packages | grep ro.len
#Find the apk path
adb shell pm path ro.len.test
#Pull the package
adb pull /data/app/ro.len.test-3.apk

Webex on linux 64 bit

After installing java there are still a lot of issues:

java.lang.UnsatisfiedLinkError: /home/gigi/.webex/1324/ /home/gigi/.webex/1324/ wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
 at java.lang.ClassLoader$NativeLibrary.load(Native Method)
 at java.lang.ClassLoader.loadLibrary1(
 at java.lang.ClassLoader.loadLibrary0(
 at java.lang.ClassLoader.loadLibrary(
 at java.lang.Runtime.loadLibrary0(
 at java.lang.System.loadLibrary(
 at DBR.loadNativeDBR(
 at DBR.loadNativeModule(
 at DBR.onDBRMessage(
 at DBR.processMessage(
 at DB.processMessage(
 at java.awt.event.InvocationEvent.dispatch(
 at java.awt.EventQueue.dispatchEventImpl(
 at java.awt.EventQueue.access$200(
 at java.awt.EventQueue$
 at java.awt.EventQueue$
 at Method)
 at java.awt.EventQueue.dispatchEvent(
 at java.awt.EventDispatchThread.pumpOneEventForFilters(
 at java.awt.EventDispatchThread.pumpEventsForFilter(
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(
 at java.awt.EventDispatchThread.pumpEvents(
 at java.awt.EventDispatchThread.pumpEvents(
XXX[DBR]load native library failed Error writing request body to server
 at CWCSHttpBigPost.SendHttpStream(

After running ldd on: .webex/1324/ I identified the following missing libs (xubuntu 14.04):

apt install libpangoxft-1.0-0:i386 libxv1:i386 libpangox-1.0-0:i386 libXmu6:i386

to fix the problem.


A trecut mult timp de cand n-am mai iesit la o tura serioasa. Prins cu alte proiecte, n-am mai apucat sa fac sau sa povestesc mai nimic. Dan insa nu ne-a lasat sa ne ingrasam prea tare. N-am reusit sa-i refuzam ideea de a face un tur pe asfalt, cu roti subtiri sau cursiere unde era cazul.

Planul era simplu: 4 zile, 4 participanti, 400km, >4000mh, 2 traversari serioase si de “palmares”, bagaj minimal, pedalat maximal.

Prima zi: Curtea de Arges – Novaci, pe drumuri secundare asfaltate, drum foarte prost intre Horezu si Polovragi pe DJ660, 116km/1800mh


A doua zi: Novaci – Ranca – Pasul Urdele – Sugag, 110km/2500mh. Am urcat pe soare, de la Ranca a inceput sa se innoreze accelerat si in pasul Urdele ne-a plouat serios, cu grindina, la 5C. Pe coborare ploaia s-a oprit si in Obarsia Lotrului a iesit din nou soarele, pentru sfarsitul zilei reusind sa ne uscam pana la Valea Frumoasei, unde am innoptat.


A treia zi: Susag – Cartisoara, drumul cicloturistic al marginimii Sibiului, 123km/1400mh. Zi frumoasa cu soare, cea mai grea zi pentru mine din cauza unei mese de pranz “prea ca la tara”.


A patra zi: Cartisoara – Curtea de Arges, 118km/2000mh, zi splendida, urcarea usoara, pacat ca era ultima zi, caci parca ne intrasem in forma pentru inca 4 zile.

A fost o tura splendida, la inceput de toamna, cu prieteni buni. Cel mai mult mi-au placut urcarile pe Trans-uri, mult mai motivante si cu rasplata imediata :)



After spending loosing time in vain trying to convert kml files containing the gx:Track format to gpx files for my gps and finally writing my own tool for doing that I realized I have done quite a lot of small scripts for gps data manipulation and decided to push them on github. I started with 2 and as I will clean the others I will push them also.


A set of python scripts to manipulate GPS data

Removes TimeStamp information from .kml files. More precisely, it removes gx:TimeStamp and //kml:Placemark/kml:TimeStamp elements. Modifies the document in place. file.kml

Converts kml gx:Track to old style LineString elements. This is required because not even gpsbabel can convert the gx:Track elements to gpx for instance resulting in data loss. Conversion is done in place. file.kml


(X)Ubuntu microphone mute/unmute script

The goal of this script was to have a simple script, binded with a shortcut which allows to mute/unmute all the microphones and to display a nice notification in the process. This is the simplest version working on xubuntu 14.04 with pulseaudio.

ACTION=1 #1 mute, 0 unmute
SCNT=$(pacmd list-sources | grep muted | wc -l)
MUTED=$(pacmd list-sources | grep muted | grep yes)
if [ $? == 0 ]; then
    notify-send -i microphone-sensitivity-medium "Microphone" "Unmutting $SCNT sources..."
    notify-send -i microphone-sensitivity-muted "Microphone" "Mutting $SCNT sources..."
#SRC=$(seq $SCNT)
SRC=$(pacmd list-sources | grep index | cut -d':' -f2 | tr -d ' ')
for i in $SRC; do
    #let s=$i-1
    pacmd set-source-mute $i $ACTION


xubuntu 14.04 – Trusty Tahr

There is not much to say about the new xubuntu 14.04 trusty tahr and this is a very very good thing. I had quite some work to do when installing 12.04 on my Tuxedo Laptop but with 14.04 I managed to setup almost everything in 2h on a friday night. Here is a list of just a few small hick-ups:

  • non blocking grub error while booting from my LVM root
Error: diskfilter writes are not supported.
Press any key to continue...

This is described and solved in this bug report (requires grub scripts modification)

  • very small trouble with Oracle XE 11
  • some problems with google-earth
len@tux:~$ google-earth 
./googleearth-bin: error while loading shared libraries: cannot open shared object file: No such file or directory

This is related to the missing i386 libraries but is well described in this post.

Update 05.05.2014: Problems with eclipse:

# A fatal error has been detected by the Java Runtime Environment:
# SIGSEGV (0xb) at pc=0x00007fa9a426f2a1, pid=15491, tid=140369401485056
# JRE version: 6.0_27-b07
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.2-b06 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [] short+0x11
# An error report file with more information is saved as:
# /phantom/now/java/eclipse-3.7-classic-64/hs_err_pid15491.log
# If you would like to submit a bug report, please visit:
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
*** NSPlugin Viewer *** ERROR: rpc_end_sync called when not in sync!

This is described here but the fix did not worked for me (I was in 3.7)

Oracle 11g release 2 XE on Ubuntu 14.04

There are many, many links, threads, bugs and discussions related to this since oracle 11g installation is no longer breeze at it was the case with oracle 10g, at least on Ubuntu. This is my short, minimal list of things to do to have oracle running on Ubuntu 14.04 12.04.

Last updated 2014-05-01, install on 14.04
Last updated 2013-12-25, install on 12.04.3.


Related Posts with Thumbnails