Open mmurooka opened 10 years ago
gdbしてみるとどうなりますか?
2014年5月8日木曜日、Masaki Murookanotifications@github.comさんは書きました:
以下をroseusで実行し,IRTビューアをクリックして視点変更すると, 以下のようなエラーがでてroseusが終了してしまいます. ビューアをクリックしない限りはエラーは出ません.
(defun tmp () (while t (x::window-main-one))) (sys:make-thread 1) (sys:thread #'tmp)
;; in gl:glclear ;; You are still in a signal handler. ;;Try reset or throw to upper level as soon as possible. ;; code=1164050480 x=4561ff00 addr=6e90ca0 Fatal: irteusgl: ../../intel/intel_bufmgr_gem.c:1112: drm_intel_gem_bo_unreference_locked_timed: Assertion `((&bo_gem->refcount)->atomic) > 0' failed. 中止
— Reply to this email directly or view it on GitHubhttps://github.com/euslisp/jskeus/issues/85 .
from iPhone
以下のようになりました.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffed810700 (LWP 3291)]
0x00007fffee20ac2a in _mesa_reference_program_ ()
from /usr/lib/x86_64-linux-gnu/libdricore9.0.0.so.1
しか出てこないのでeusのコンパイル時に -gオプション を付けたら良さそうでしょうか.
murooka@murooka-ThinkPad-T430:~$ gdb /home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/euslisp/jskeus/eus/Linux64/bin/irteusgl
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/euslisp/jskeus/eus/Linux64/bin/irteusgl...done.
(gdb) run "(pushnew \"/home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/roseus/euslisp/\" *load-path* :test #'equal) roseus.l eustf.l actionlib.l roseus-utils.l"
Starting program: /home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/euslisp/jskeus/eus/Linux64/bin/irteusgl "(pushnew \"/home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/roseus/euslisp/\" *load-path* :test #'equal) roseus.l eustf.l actionlib.l roseus-utils.l"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
set ARCHDIR to Linux64
use the location of executables to set EUSDIR
set EUSDIR to /home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/euslisp/jskeus/eus
configuring by "/home/murooka/catkin_ws/ws_jsk_roseus/src/jsk-ros-pkg/jsk_roseus/euslisp/jskeus/eus/lib/eusrt.l"
;; readmacro ;; object ;; packsym ;; common ;; constants ;; stream ;; string ;; loader ;; pprint ;; process ;; hashtab ;; array ;; mathtran ;; eusdebug ;; eusforeign ;; coordinates ;; tty ;; history ;; toplevel ;; trans ;; comp ;; builtins ;; par ;; intersection ;; geoclasses ;; geopack ;; geobody ;; primt ;; compose ;; polygon ;; viewing ;; viewport ;; viewsurface ;; hid ;; shadow ;; bodyrel ;; dda ;; helpsub ;; eushelp ;; xforeign ;; Xdecl ;; Xgraphics ;; Xcolor ;; Xeus ;; Xevent ;; Xpanel ;; Xitem ;; Xtext ;; Xmenu ;; Xscroll ;; Xcanvas ;; Xtop ;; Xapplwin
connected to Xserver DISPLAY=:0
X events are being asynchronously monitored.
;; pixword ;; RGBHLS ;; convolve ;; piximage ;; pbmfile ;; image_correlation ;; oglforeign ;; gldecl ;; glconst ;; glforeign ;; gluconst ;; gluforeign ;; glxconst ;; glxforeign ;; eglforeign ;; eglfunc ;; glutil ;; gltexture ;; glprim ;; gleus ;; glview ;; toiv-undefined ;; fstringdouble irtmath irtutil irtc irtgeoc irtgraph pgsql irtgeo euspqp pqp irtscene irtmodel irtdyna irtrobot irtsensor irtbvh irtcollada irtpointcloud irtx eusjpeg euspng png irtimage irtglrgb
;; extending gcstack 0x47abde0[16374] --> 0x4c09300[32748] top=3767
irtgl irtviewer
EusLisp 9.00(fcc6e04 0140229) for Linux64 created on murooka-ThinkPad-T430(Sat Apr 12 22:56:23 JST 2014)
1.irteusgl$ make-irtviewer
#<x::irtviewer #X47c7080 IRT viewer>
2.irteusgl$ (defun tmp () (while t (x::window-main-one)))
(sys:make-thread 1)
(sys:thread #'tmp)
tmp
3.irteusgl$ [New Thread 0x7fffed810700 (LWP 3291)]
(#<thread #X47bede8>)
4.irteusgl$ #<thread #X47bede8>
5.irteusgl$
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffed810700 (LWP 3291)]
0x00007fffee20ac2a in _mesa_reference_program_ ()
from /usr/lib/x86_64-linux-gnu/libdricore9.0.0.so.1
(gdb) quit
(gdb) bt するともっと見えないかな? 少なくとも呼び出した関数ぐらいは分かる気がする。
これは、どういう時に必要になってくるかな? 複数スレッドから、描画を変更しようとするような事になってると、排他制御が必要になるかと思います。
(gdb) bt してみました.
#0 0x00007fffee27e816 in _mesa_meta_end ()
from /usr/lib/x86_64-linux-gnu/libdricore9.0.0.so.1
#1 0x00007fffee27fd37 in _mesa_meta_glsl_Clear ()
from /usr/lib/x86_64-linux-gnu/libdricore9.0.0.so.1
#2 0x00007fffee650154 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#3 0x00000000004169dc in exec_function_i ()
#4 0x0000000004dfbcd0 in ?? ()
#5 0x0000000005a84501 in ?? ()
#6 0x0000000005a84501 in ?? ()
#7 0x00007fffee10bd9c in _mesa_update_draw_buffers ()
from /usr/lib/x86_64-linux-gnu/libdricore9.0.0.so.1
#8 0x00007fffee10f83a in _mesa_make_current ()
from /usr/lib/x86_64-linux-gnu/libdricore9.0.0.so.1
#9 0x00007ffff653a104 in _L_unlock_644 ()
from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007ffff653a063 in pthread_mutex_unlock ()
from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00000000c3c8cd9f in ?? ()
#12 0x00000000047a2228 in ?? ()
#13 0x00007ffff7412a40 in glDrawBuffer ()
from /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
#14 0x408061de9f3842bd in ?? ()
#15 0x0000000100000000 in ?? ()
#16 0x40690000bf27f37c in ?? ()
#17 0x0000000000000000 in ?? ()
これは、どういう時に必要になってくるかな? 複数スレッドから、描画を変更しようとするような事になってると、排他制御が必要になるかと思います。
gazeboの物体位置をsubscribeしてeusモデルに反映させるのを mainとは別のスレッドでやりつつ, シミュレーション一時停止,再開,モデルの瞬間移動のようなメタ的な指令を mainスレッドのインタプリタから送りたいと考えています.
eusdynaの実装をみてみてはどうでしょうか?
2014年5月8日木曜日、Masaki Murookanotifications@github.comさんは書きました:
これは、どういう時に必要になってくるかな? 複数スレッドから、描画を変更しようとするような事になってると、排他制御が必要になるかと思います。
gazeboの物体位置をsubscribeしてeusモデルに反映させるのを mainとは別のスレッドでやりつつ, シミュレーション一時停止,再開,モデルの瞬間移動のようなメタ的な指令を mainスレッドのインタプリタから送りたいと考えています.
— Reply to this email directly or view it on GitHubhttps://github.com/euslisp/jskeus/issues/85#issuecomment-42506692 .
from iPhone
この問題そのものは治したいところですが,rosになってから基本はマルチプロセスで対応するというのが方向性に思います. piped-forkして評価させる方法 (/euslib/demo/inaba/robots/test-pipedfork.l ) あるいはirteus/irtx.lのようにtop-selectorをつかって定期的に実行出来たかと思う. が,いいと思います.
2014-05-08 12:45 GMT+09:00 Ryohei Ueda notifications@github.com:
eusdynaの実装をみてみてはどうでしょうか?
2014年5月8日木曜日、Masaki Murookanotifications@github.comさんは書きました:
これは、どういう時に必要になってくるかな? 複数スレッドから、描画を変更しようとするような事になってると、排他制御が必要になるかと思います。
gazeboの物体位置をsubscribeしてeusモデルに反映させるのを mainとは別のスレッドでやりつつ, シミュレーション一時停止,再開,モデルの瞬間移動のようなメタ的な指令を mainスレッドのインタプリタから送りたいと考えています.
— Reply to this email directly or view it on GitHub< https://github.com/euslisp/jskeus/issues/85#issuecomment-42506692> .
from iPhone
— Reply to this email directly or view it on GitHubhttps://github.com/euslisp/jskeus/issues/85#issuecomment-42510741 .
以下をroseusで実行し,IRTビューアをクリックして視点変更すると, 以下のようなエラーがでてroseusが終了してしまいます. ビューアをクリックしない限りはエラーは出ません.