Astor issues and compiling Astor with openJDK
|
|
---|---|
Hi all, Did any of you compiled Astor with openJDK? Astor in our labs have stop working since a week ago and we want to share this issue with the community to get feedback and some advice. It happens with all astor versions between tango 7 and 9 while trying to access our Tango8 database. Astor startup is crashing at getTangoHostList() call. We didn't found anything wrong in the tables of the database; so we are going to add additional traces in Astor to identify which host is triggering the exception.
And now comes our request for help. Did any of you compiled Astor with openJDK? We've seen that the source package of tango comes with already compiled .jar files; and building Astor using makefiles from repository is not being straight-forward. I've also seen references to a host_info.jar file that is not included with the Tango distribution. Thanks for your help, Sergi Rubio ALBA |
|
|
---|---|
Hola Sergi I did not compiled Astor with openJDK. I don't know your Astor source release to check error stack. Is it the last release in SVN trunk ? About host_info.jar, it is a ERSF specific jar file. It is used to compiled but not necessary to run Astor. Just remove the host_info reference in source code to compile. Regards Pascal |
|
|
---|---|
Hi Pascal, The error appeared with any Astor > 6; but not with Astr 5.2. To compile I'll use the last sources from SVN. I'll post more info when tested, Sergi |
|
|
---|---|
Hi I had a look in Astor code and it seems really strange. It fails with a NullPointerException on line 662. But I cannot imagine anything null at this line 660 if (found = last.equals(list.get(j))) { 661 String s = list.get(j); 662 list.remove(j); 663 list.add(s); 664 } list cannot be null (does not fails in 660 and 661) j is an int and cannot be null May be the list.get(j) is null. BUT that means something is really corrupted in your TANGO database. Could you have a look of the free property: Astor/LastCollections. Pascal It must be an array of strings. Is it the case ? |
|
|
---|---|
Hi Pascal, This property does not exist in our system … it is created by Astor or should be created manually? Sergi |
|
|
---|---|
Hi It could be created by Astor. But if not, you cannot execute this part of code. This part is used to manage this property only if found in database…. I tried on my test CS. I removed this property, and there was no problem. This code is not executed. May be OpenJDK is not fully compatible. I will test to use it when I will have time. Pascal |
|
|
---|---|
Hi!, I finally reproduced it! The problem is caused by two different issues: - Depending on how a device is started from Astor (with controlled flag or not, runlevel assigned or None) the server.host column in the database will contain hostname with domain or without it. - Then, somewhere (maybe in suse-leap package installers) we are creating starters with the domain in the device name (tango/admin/host.cells.es). - Finally, the crash occurs when '.' appears in the device name or for any reason tango/admin/$(server.host) and DevInfo.host doesn't match (this is why we have traces with crashes in two different points). The curious thing is that it happens only with Astor 6.6; and not with Astor 5.*. We may protect Tango/Astor/Jive againts this problems; maybe simply not allowing anymore to put dots in device names (as it gave problems before to Max IV). Hope it helps, Sergi Rubio |