Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pix_share_read crashes on render() #9

Closed
avilleret opened this issue Jan 21, 2014 · 2 comments
Closed

pix_share_read crashes on render() #9

avilleret opened this issue Jan 21, 2014 · 2 comments
Labels

Comments

@avilleret
Copy link
Contributor

here is a gdb backtrace :

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3a6b164 in pix_share_read::render (this=0xb9d4d0, state=0x7fffffffb840) at pix_share_read.cpp:38
38        int csize=pix.image.setCsizeByFormat(h->format);
bt
#0  0x00007ffff3a6b164 in pix_share_read::render (this=0xb9d4d0, state=0x7fffffffb840) at pix_share_read.cpp:38
#1  0x00007ffff38b1dfa in GemBase::gem_renderMess (this=0xb9d4d0, cache=<optimized out>, state=0x7fffffffb840) at GemBase.cpp:154
#2  0x0000000000465c29 in pd_typedmess ()
#3  0x000000000046767a in outlet_anything ()
#4  0x00000000004af713 in trigger_anything ()
#5  0x0000000000465b5b in pd_typedmess ()
#6  0x000000000046767a in outlet_anything ()
#7  0x0000000000465b5b in pd_typedmess ()
#8  0x000000000046767a in outlet_anything ()
#9  0x0000000000465b5b in pd_typedmess ()
#10 0x0000000000465b5b in pd_typedmess ()
#11 0x000000000046767a in outlet_anything ()
#12 0x0000000000465b5b in pd_typedmess ()
#13 0x0000000000465b5b in pd_typedmess ()
#14 0x000000000046767a in outlet_anything ()
#15 0x00007ffff38b1d35 in GemBase::continueRender (this=0xb9b5d0, state=<optimized out>) at GemBase.cpp:167
#16 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0xb9b5d0, cache=<optimized out>, state=0x7fffffffb840) at GemBase.cpp:155
#17 0x0000000000465c29 in pd_typedmess ()
#18 0x000000000046767a in outlet_anything ()
#19 0x00007ffff38b1d35 in GemBase::continueRender (this=0xb5ee90, state=<optimized out>) at GemBase.cpp:167
#20 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0xb5ee90, cache=<optimized out>, state=0x7fffffffb840) at GemBase.cpp:155
#21 0x0000000000465c29 in pd_typedmess ()
#22 0x000000000046767a in outlet_anything ()
#23 0x00007ffff38b1d35 in GemBase::continueRender (this=0xb5ebe0, state=<optimized out>) at GemBase.cpp:167
#24 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0xb5ebe0, cache=<optimized out>, state=0x7fffffffb840) at GemBase.cpp:155
#25 0x0000000000465c29 in pd_typedmess ()
#26 0x000000000046767a in outlet_anything ()
#27 0x0000000000465b5b in pd_typedmess ()
#28 0x000000000046767a in outlet_anything ()
#29 0x0000000000465b5b in pd_typedmess ()
#30 0x0000000000465b5b in pd_typedmess ()
#31 0x000000000046767a in outlet_anything ()
#32 0x00007ffff3916936 in gemhead::renderGL (this=0xb9c220, state=0x7fffffffb840) at gemhead.cpp:160
#33 0x00007ffff3916c79 in gemhead::bangMess (this=0xb9c220) at gemhead.cpp:185
#34 0x0000000000467399 in outlet_bang ()
#35 0x0000000000467399 in outlet_bang ()
#36 0x0000000000463e39 in bindlist_bang ()
#37 0x0000000000467399 in outlet_bang ()
#38 0x00000000004af6c8 in trigger_anything ()
#39 0x0000000000465b5b in pd_typedmess ()
#40 0x000000000046767a in outlet_anything ()
#41 0x00007ffff38b1d35 in GemBase::continueRender (this=0x7012cb0, state=<optimized out>) at GemBase.cpp:167
#42 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x7012cb0, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#43 0x0000000000465c29 in pd_typedmess ()
#44 0x000000000046767a in outlet_anything ()
#45 0x00007ffff38b1d35 in GemBase::continueRender (this=0x7013aa0, state=<optimized out>) at GemBase.cpp:167
#46 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x7013aa0, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#47 0x0000000000465c29 in pd_typedmess ()
#48 0x000000000046767a in outlet_anything ()
#49 0x00007ffff38b1d35 in GemBase::continueRender (this=0x7013c20, state=<optimized out>) at GemBase.cpp:167
#50 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x7013c20, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#51 0x0000000000465c29 in pd_typedmess ()
#52 0x000000000046767a in outlet_anything ()
#53 0x00007ffff38b1d35 in GemBase::continueRender (this=0x7013e70, state=<optimized out>) at GemBase.cpp:167
#54 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x7013e70, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#55 0x0000000000465c29 in pd_typedmess ()
#56 0x000000000046767a in outlet_anything ()
#57 0x00007ffff38b1d35 in GemBase::continueRender (this=0x70140c0, state=<optimized out>) at GemBase.cpp:167
#58 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x70140c0, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#59 0x0000000000465c29 in pd_typedmess ()
#60 0x000000000046767a in outlet_anything ()
#61 0x00007ffff38b1d35 in GemBase::continueRender (this=0x7012470, state=<optimized out>) at GemBase.cpp:167
#62 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x7012470, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#63 0x0000000000465c29 in pd_typedmess ()
#64 0x000000000046767a in outlet_anything ()
#65 0x00007ffff38b1d35 in GemBase::continueRender (this=0x7012fd0, state=<optimized out>) at GemBase.cpp:167
#66 0x00007ffff38b1e05 in GemBase::gem_renderMess (this=0x7012fd0, cache=<optimized out>, state=0x7fffffffc200) at GemBase.cpp:155
#67 0x0000000000465c29 in pd_typedmess ()
#68 0x000000000046767a in outlet_anything ()
#69 0x00007ffff3916936 in gemhead::renderGL (this=0x70120d0, state=0x7fffffffc200) at gemhead.cpp:160
#70 0x00007ffff3916c79 in gemhead::bangMess (this=0x70120d0) at gemhead.cpp:185
#71 0x0000000000467399 in outlet_bang ()
#72 0x0000000000467399 in outlet_bang ()
#73 0x0000000000467399 in outlet_bang ()
#74 0x00000000004af6c8 in trigger_anything ()
#75 0x0000000000465b5b in pd_typedmess ()
#76 0x000000000046767a in outlet_anything ()
#77 0x0000000000465b5b in pd_typedmess ()
#78 0x0000000000465b5b in pd_typedmess ()
#79 0x000000000046767a in outlet_anything ()
#80 0x00000000004af713 in trigger_anything ()
#81 0x0000000000465b5b in pd_typedmess ()
#82 0x000000000046767a in outlet_anything ()
#83 0x0000000000465b5b in pd_typedmess ()
#84 0x000000000046767a in outlet_anything ()
#85 0x00000000004af713 in trigger_anything ()
#86 0x0000000000465b5b in pd_typedmess ()
#87 0x000000000046767a in outlet_anything ()
#88 0x0000000000465b5b in pd_typedmess ()
#89 0x0000000000465b5b in pd_typedmess ()
#90 0x000000000046767a in outlet_anything ()
#91 0x00007fffdd8301ad in routeOSC_doanything (x=0x7998670, s=0xca5bd0, argc=0, argv=0x7887980) at routeOSC.c:380
#92 0x0000000000465b5b in pd_typedmess ()
#93 0x000000000046767a in outlet_anything ()
#94 0x00007fffda735d2f in unpackOSC_list (x=0x7887930, s=<optimized out>, argc=<optimized out>, argv=<optimized out>) at unpackOSC.c:277
#95 0x00000000004675ea in outlet_list ()
#96 0x00007fffd9d212aa in iemnet__receiver_tick (x=0x7875fd0) at iemnet_receiver.c:148
#97 0x00007fffd9d21c7d in pollfun (z=<optimized out>, fd=<optimized out>) at iemnet_notify.c:126
#98 0x00000000004792ea in sys_domicrosleep.constprop.3 ()
#99 0x000000000047b0ea in sys_pollgui ()
#100 0x000000000047477a in m_mainloop ()
#101 0x00007ffff6e0476d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#102 0x00000000004114d1 in _start ()
(gdb) 

is it possible that shm_addr is invalid but not NULL ?
Could a call of shmat(shm_id,NULL,0666); at each render cycle fix this ?
Does it make sense ? Is it efficienet ?
I'll give it a try (but double check this time before sending a pull request :-) )

A

@avilleret
Copy link
Contributor Author

a call to shmat(shm_id,NULL,0666) on each render cycle doesn't seem to solve this issue
see my commit [1] in my branch fix_pix_share_read

[1} : https://github.com/avilleret/Gem/commit/e5821dab3f2a1127678d8d1cd8abdae8a29570ae

@umlaeute
Copy link
Owner

calling shmat() in each render cycle is almost certainly a bad idea esp if you don't call shmdt() as well: as i understand it shmat() will increment the reference counter, thus leaving you with un-freeable chunks of shared memory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants