Closed sonphambk closed 3 months ago
@sonphambk Hm, probably issue with system libs... run your app with valgrind verbose options and send me output to analyze.
sudo apt install valgrind
Change the start script of your installed distribution
"$BASE_DIR/bin/yourAppExecutable" "$@"
to
valgrind --verbose --log-file="$BASE_DIR/valgrindVetbose.log" "$BASE_DIR/bin/yourAppExecutable" "$@"
Thank you for quick response This is my log file valgrindVetbose.log
My wonder is that when I built source and make deploy in docker container ubuntu 22 and then installed run file, it worked fine
Not sure, but probably you have a deficient version of the boost libraries.
==16820== Process terminating with default action of signal 4 (SIGILL): dumping core
==16820== Illegal opcode at address 0x1ABA98
==16820== at 0x1ABA98: boost::io::basic_altstringbuf<char, std::char_traits<char>, std::allocator<char> >::overflow(int) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x9B1788A: std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==16820== by 0x9B09B64: std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30)
==16820== by 0x1B7E6F: void boost::io::detail::put<char, std::char_traits<char>, std::allocator<char>, boost::io::detail::put_holder<char, std::char_traits<char> > const&>(boost::io::detail::put_holder<char, std::char_traits<char> > const&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::string_type&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::internal_streambuf_t&, std::locale*) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x1B8ACF: void boost::io::detail::distribute<char, std::char_traits<char>, std::allocator<char>, boost::io::detail::put_holder<char, std::char_traits<char> > const&>(boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&, boost::io::detail::put_holder<char, std::char_traits<char> > const&) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x23B71A: boost::basic_format<char, std::char_traits<char>, std::allocator<char> >& boost::io::detail::feed_impl<char, std::char_traits<char>, std::allocator<char>, boost::io::detail::put_holder<char, std::char_traits<char> > const&>(boost::basic_format<char, std::char_traits<char>, std::allocator<char> >&, boost::io::detail::put_holder<char, std::char_traits<char> > const&) [clone .constprop.0] (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x23C0A5: hdl_graph_slam::InteractiveGraph::load_keyframes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ProgressDialog*) (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x24310A: QtConcurrent::RunFunctionTaskBase<bool>::run() (in /root/robomap_desktop/bin/robomap_desktop)
==16820== by 0x606320B: ??? (in /opt/Qt/6.5.2/gcc_64/lib/libQt6Core.so.6.5.2)
==16820== by 0x605E28E: ??? (in /opt/Qt/6.5.2/gcc_64/lib/libQt6Core.so.6.5.2)
==16820== by 0x9DE0AC2: start_thread (pthread_create.c:442)
==16820== by 0x9E71BF3: clone (clone.S:100)
Try to deploy your "boosts" libs with your distribution
use the -extraLibs option
cqteployer ... -extraLibs boost
This is my command:
cqtdeployer qif -bin ./robomap_desktop -targetDir /home/user/deploy -verbose 3 -libDir /usr/local/lib,/opt/Qt/6.5.2/gcc_64/lib,/usr/lib/x86_64-linux-gnu,/usr/lib/x86_64-linux-gnu/lapack,/usr/lib/ -platform linux_x86_64 -qmake /opt/Qt/6.5.2/gcc_64/bin/qmake -icon ./appIcon.png -extraLibs boost
but it doesn't work
You are added to deploy all libs of your usr/lib dir. This Dir contains all libraries of your OS Distribution. But not all libraries has computability with another OS systems. So, just remove the /usr/local/lib, /usr/lib/x86_64-linux-gnu, /usr/lib from your libDir option.
If some libs do not add into your distribution after remove these paths, just add mask of name these libs into extraLib option.
cqtdeployer qif -bin ./robomap_desktop -targetDir /home/user/deploy -verbose 3 -libDir /usr/lib/x86_64-linux-gnu/lapack -platform linux_x86_64 -qmake /opt/Qt/6.5.2/gcc_64/bin/qmake -icon ./appIcon.png -extraLibs boost
Thank you for your info I tried but it still failed. I tried to deploy in docker container and copied from container to another host (ubuntu 22) and it worked fine. However, the deployed file from bitbucket pipeline didn't work. The deployed file from pipeline saved in Download of repo
@sonphambk please attach verbose deploy log to this issue. (from bitbucket pipeline)
Hi @EndrII This is my log pipelineLog-{98068883-b28c-4144-a8f3-a014cbe52f03}.txt
And this is the log file from docker container: deploy.log I didn't see any different thing from both.
@sonphambk I check your log, I see that you use the libDir option, please disable it,
Verbose log: Option[libDir]: /usr/local/lib,/opt/Qt/6.5.2/gcc_64/lib,/usr/lib/x86_64-linux-gnu,/usr/lib/
Because cqtdeployer deploy unwanted libraries like :
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/librt.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libdbus-1.so.3
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libsystemd.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libcap.so.2
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libzstd.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/liblz4.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/liblzma.so.5
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libgcrypt.so.20
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libgpg-error.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libGL.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libGLX.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libX11.so.6
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libxcb.so.1
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libXau.so.6
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libbsd.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libmd.so.0
Verbose log: Get the recursive dependencies of /usr/lib/x86_64-linux-gnu/libEGL.so.1
All these libs are system, and should distribute in your OS only. If you need some libraries, use the ExtraLibs option.
@EndrII After removing libDir option, it still doesn't work
I used gdb to debug and seem the error from Qt lib
This is cpu on bitbucket pipeline
And this is my cpu
@EndrII After removing libDir option, it still doesn't work I used gdb to debug and seem the error from Qt lib
What is Pose Graph Editor ? Looks as you forget to add this library into distribution
cqtdeploy deploy all known dependencies except system libs. Because system libs more likely are not backward compatible between major versions
Using libDir option you are forced to deploy all system libs into your Distribution kit, more likely it was broken your app.
@EndrII
What is Pose Graph Editor ?
This is my own class inherited from QOpenGLWidget.
You mean I should add Qt's lib to extraLibs option instead of add them to libDir
@sonphambk sorry to delay answer, but your case looks as too complicated to fix it remotely. So I can help solve it personal for you, but this option available only on extended support plan, You may buy personal support of this tool on our Patreon. So, I close this issue. And leave unsolved ... It may be reopened if somebody can reproduce this issue.
Hi, I have an issue on ubuntu 22.04 When I deployed my qt app to run file and install it in container, it works fine. But when I integrate ddeploy app into bitbucket pipeline with the same image I used in my local, then I installed it in another pc with ubuntu 22.04, it cause this error:
with ubuntu 20, it works fine.