| Summary: | Agent Controller v4.1 fails to start (on Ubuntu Dapper Drake) | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Krzysztof Kaczmarski <kaczmars> |
| Component: | TPTP | Assignee: | Bing Xu <xubing> |
| Status: | CLOSED WONTFIX | QA Contact: | |
| Severity: | major | ||
| Priority: | P3 | CC: | karla.callaghan, michael.johnson, tristan_schmelcher |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Linux-GTK | ||
| Whiteboard: | housecleaned460 closed471 | ||
|
Description
Krzysztof Kaczmarski
Assigning to Samson for follow-up. FYI - we once received a report of a file too short error like this when launching the agent controller that was caused by the accidental use of WinZip to unzip their Linux pkg (they'd cross mounted the file-system). WinZip doesn't handle symbolic links and I believe that libxerces-c.so.24 is just that. I was not using anything like WinZip but only native linux dearchiver. Hi. Here are some questions: 1. What type of file system are you using to install the Agent Controller? ext2? FAT? 2. What command did you use to unzip the Agent Controller? Is it just "unzip <Agent Controller zip file>"? 3. Can you show me the output of "ldd -r libxerces-c.so" under the Agent Controller's "lib" directory? Thanks. 1. ext3
2. unzip (I had never any problems with that)
3. /usr/share/RAService/lib$ ldd -r libxerces-c.so
not a dynamic executable
Maybe I should just compile it in my environment ? Hi. Recompiling the Xerces-C code will be a good start. We use the pre-built Xerces-C 2.6 binary downloaded from Apache. That binary is compiled by Apache using RedHat 8 with gcc 3.2. Please also run "ldd -r" on the Agent Controller executable "RAServer" to see if this can be recognized as well. We haven't run our test using Ubuntu. There might be a compatibility problem between these distributions of linux. Retarget to 4.3 pending more information - this is occuring on untested platform, added platform to the bug title. Need response to comment #6 as to whether recompiling resoved the issue. Hmmm, yes, I need some clues how to recompile it, please. As far as I understand the only problem is in libxerces. Where can I get the source code and make files from? The Xerces-C++ XML Parser v2.6 is located at the Apache website: http://xml.apache.org/xerces-c. We are not using the latest release, so goto Downloads then "archive download site", then select Xerces-C_2_6_0 beneath which you'll find the src tar file. After downloading the tar file, click on Build Instructions (located on left side bar, below Downloads) and find those for "Building Xerces-C++ on UNIX platforms". Read them, then follow them exactly as they suggest. I downloaded xerces-c-src_2_6_0.tar.gz I followed Build Instructions and libraries were built ok. I copied libxerces-c.so, libxerces-c.so.26, libxerces-c.so.26.0 then: @rafael:/usr/share/RAService/bin#./RAStart.sh Starting Agent Controller RAServer: error while loading shared libraries: libxerces-c.so.24: cannot open shared object file: No such file or directory RAServer failed to start so I dowloaded xerces-c-src2_4_0.tar.gz I followed Build Instructions but it does not build correctly! The first error was: /include/xercesc/util/RefArrayOf.c:134: error: invalid use of undefined type ‘struct xercesc_2_4::MemoryManager’ followed by others and the result was: make[2]: *** [DOMAttrImpl.o] Error 1 make[2]: Leaving directory `/home/krzysztof/installs/xerces-c-src2_4_0/src/xercesc/dom/impl' make[1]: *** [impl] Error 2 make[1]: Leaving directory `/home/krzysztof/installs/xerces-c-src2_4_0/src/xercesc/dom' make: *** [Dom] Error 2 So I used version 2.6 again but renaming libraries to 24 (just a try) and also failed: @rafael:/usr/share/RAService/bin#./RAStart.sh Starting Agent Controller RAServer: symbol lookup error: ../lib/libhcclserc.so: undefined symbol: getColumnNumber__CQ211xercesc_2_417SAXParseException RAServer failed to start I'm sorry. When I told you to build Xerces 2.6 I forgot you were trying to use Agent Controller 4.1 - which did use Xerces 2.4. You have already done all that I would have suggested and I don't have any ideas on why the Xerces 2.4 build failed. The error looks like a header file mismatch. Do you have a specific reason for using the 4.1 Agent Controller? We released the 4.2 Agent Controller at the end of June and that version uses the Xerces 2.6 libraries. Since 4.2 is basicly the same as 4.1, but with many bugs fixed, I suggest you move forward to the newer version, saving the Xerces 2.6 libs you just built in case those provided with the newer pkg don't work on your system. I downloaded version 4.2 First tired it as it is... not success: Starting Agent Controller RAServer: error while loading shared libraries: ../lib/libxerces-c.so.26: file t oo short RAServer failed to start So I took already prepared newly compiled libxerces, copied to lib directory and: krzysztof@rafael:~/installs/AgentControler/bin$ ./RAStart.sh Starting Agent Controller RAServer: symbol lookup error: ../lib/libhcclserc.so: undefined symbol: _Q211xercesc_2_66XMLUni.fgXercescDefaultLocale RAServer failed to start The Agent Controller is linked with the Xerces-C library during compilation time (not dynamically loaded through dlopen) so I cannot tell for sure whether the Agent Controller libraries and the newly compiled Xerces-C libraries are binary compatible. I will check around to see if someone has the Ubuntu Dapper Drake to try recompiling the Agent Controller. That will possibly show that binaries compiled on ReaHat are not necessarily binary-compatible with Ubuntu. Hi. I am installing Ubuntu 6.06 desktop to give that a try. Are you using the "i386" or the "amd64" distribution? i686-- you may install i386 and then download i686 kernel. Krzysztof, I have ubuntu installed and can reproduce the same problem as you "RAServer: symbol lookup error: ../lib/libhcclserc.so: undefined symbol: _Q211xercesc_2_66XMLUni.fgXercescDefaultLocale". I will continue to investigate the problem and try to recompile the Agent Controller next. It turns out that the "RAServer" executable is also compiled/linked with the "libstdc++-libc6.2-2.so.3" library which is not available on ubuntu. We will need to find out whether this C++ library is actually required by the Agent Controller or just a dependency carried over by Xerces-C. If the latter is true, what we can do is to load the Xerces-C library dynamically at runtime instead of compile/link with it during build time. Samson, I solved the problem in another way. I wanted to start Agent Controller due to the fact that TPTP was not able to work correctlly with its built-in controller. I got some strange errors when trying to profile an application. Thus, I decided to use external Agent Controller. However, now I tried Callisto and TPTP works now perfectly as it is. So the problem is no longer critical for me, but of course remains open. I will try to help you as much as I can using my system. (I am glad that compilation errors were not just my fault :)) I hope that we shall find an answer to this probem. So it looks like you are using the Integrated Agent Controller inside Callisto. That does not have all those libstdc++ dependencies. Glad to hear that it works for you. In the meantime, I will keep this open and lower the severity to "major". Not containable in 4.3 and retarget to 4.4. Please let me know if you have any concern. Retarget to future due to resource limitation. Hi Bing. I have transferred my bugs to you for triage. Thanks. The build completely borked on Linux. This is my first time trying to use the project. I installed from europa discovery site and was directed to run ACStartup.sh manually by some posts on the internet to no avail. The message the original poster got was indeed caused by bad packaging of symbolic links.
Some more related things I found while trying to work around this:
- bad symbolic links. Most of the files included are one liners containing the name of the file. I did something like:
mkdir bad
find . -size 1k -exec mv {} bad \;
for file in `ls -1 *.4.4.0`; do
linked="${file%4.4.0}4"
echo ln -s $file $linked
ln -s $file $linked
done
- no libstdc++-libc6.2-2.so.3 (on ubuntu)
ln -s /usr/lib/libstdc++.so.6 libstdc++-libc6.2-2.so.3
- linked to wrong xerces lib
cp libxerces-c.so.26.0 libxerces-c.so.26
- found missing links to mozilla using ldd. fixed by adding /usr/lib/firefox to LD_LIBRARY_PATH in ACStart
- ACStart uses [ == ]. they meant '='
Still left with:
$ ./ACStart.sh
Starting Agent Controller.
ACServer: symbol lookup error: ../lib/libtptpUtils.so.4: undefined symbol: __ti3ios
ACServer failed to start.
$ nm * | grep ti3ios
U __ti3ios
U __ti3ios
U __ti3ios
U __ti3ios
$ ldd libtptpUtils.so.4
linux-gate.so.1 => (0xffffe000)
libuuid.so.1 => /lib/libuuid.so.1 (0xb7eff000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7efa000)
libxerces-c.so.26 => /home/johnsm89/eclipse/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.1.v200709261752/agent_controller/lib/../lib/libxerces-c.so.26 (0xb7af3000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7adb000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7991000)
/lib/ld-linux.so.2 (0x80000000)
libstdc++-libc6.2-2.so.3 => /home/johnsm89/eclipse/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.1.v200709261752/agent_controller/lib/../lib/libstdc++-libc6.2-2.so.3 (0xb789e000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7878000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb786d000)
(set the path to what the ACStartup.sh uses)
$ echo $LD_LIBRARY_PATH
/home/johnsm89/eclipse/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.1.v200709261752/agent_controller/lib/../lib:/usr/java/jdk1.5.0_14/jre/lib/i386/server:/usr/java/jdk1.5.0_14/jre/lib/i386:/usr/lib:/home/johnsm89/eclipse/plugins/org.eclipse.tptp.platform.ac.linux_ia32_4.4.1.v200709261752/agent_controller/lib:/usr/java/jdk1.5.0_14/jre/lib/i386:/usr/java/jdk1.5.0_14/jre/lib/i386/xawt:/usr/lib/firefox
$ ldd * | grep found
$
Mike: I can confirm all of the problems that you mention are also present in 4.4.1, except the Xerces lib issue. I was finally able to solve the undefined symbol errors when I found out by reading bug 150992 that you need to install that same weird libstdc++ version that they are using. Amazingly, it's still provided on Ubuntu Gutsy as some sort of legacy package: "libstdc++2.10-glibc2.2". After I installed that I was finally able to profile my app. Hope that helps. As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. Since this defect is more than 2 years old, it may be no longer relevant. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this defect is resolved as WONTFIX. If this defect is still relevant and reproducible in the latest TPTP release (http://www.eclipse.org/tptp/home/downloads/), please re-open. No idea, sorry. I switched to Netbeans eventually. As of TPTP 4.6.0, TPTP is in maintenance mode and focusing on improving quality by resolving relevant enhancements/defects and increasing test coverage through test creation, automation, Build Verification Tests (BVTs), and expanded run-time execution. As part of the TPTP Bugzilla housecleaning process (see http://wiki.eclipse.org/Bugzilla_Housecleaning_Processes), this enhancement/defect is verified/closed by the Project Lead since this enhancement/defect has been resolved and unverified for more than 1 year and considered to be fixed. If this enhancement/defect is still unresolved and reproducible in the latest TPTP release (http://www.eclipse.org/tptp/home/downloads/), please re-open. |