<div dir="ltr"><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Mariano Martinez Peck</b> <span dir="ltr">&lt;<a href="mailto:marianopeck@gmail.com">marianopeck@gmail.com</a>&gt;</span><br>Date: Fri, Jan 8, 2016 at 3:04 PM<br>Subject: Help with FFI crash in latest Spur (only in Linux)<br>To: Pharo Development List &lt;<a href="mailto:pharo-dev@lists.pharo.org">pharo-dev@lists.pharo.org</a>&gt;<br><br><br><div dir="ltr">Hi guys,<div><br></div><div>I wonder if someone could give me a hand to find out why a FFI calling I am doing is crashing. In OSX it works correct but I am testing in CentOS and it fails. I wonder if it also crashes in other Linuxes too. </div><div><br></div><div>I am using latest Pharo 5.0 with Spur. To reproduce:</div><div><br></div><div>1) Get latest Pharo 5.0 and Spur via:</div><div>wget -O- <a href="http://get.pharo.org/alpha+vm" target="_blank">get.pharo.org/alpha+vm</a> | bash<br></div><div><br></div><div>2) Inside Pharo, load my prototype tool:</div><div><br></div><div><div>Gofer it</div><div><span style="white-space:pre-wrap">        </span>package: &#39;OSSubprocess&#39;;</div><div><span style="white-space:pre-wrap">        </span>url: &#39;<a href="http://smalltalkhub.com/mc/marianopeck/OSSubprocess/main" target="_blank">http://smalltalkhub.com/mc/marianopeck/OSSubprocess/main</a>&#39;;</div><div>load.</div></div><div><br></div><div>3) This is the code I am executing and it&#39;s crashing:</div><div><br></div><div><div><span style="white-space:pre-wrap">| posixSpawnFileActionsT |
posixSpawnFileActionsT := ExternalAddress allocate: 4.
OSSUnixSubprocess new primitivePosixSpawnFileActionsInit: posixSpawnFileActionsT. 
posixSpawnFileActionsT free. </span>  <br></div><div><span style="white-space:pre-wrap">        </span></div><div><span style="white-space:pre-wrap">4) The primitive is as simple as:</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span><div>primitivePosixSpawnFileActionsInit: aPosixSpawnFileActionsT </div><div><span>        </span></div><div><span>        </span>^ self ffiCall: #( int posix_spawn_file_actions_init(void* aPosixSpawnFileActionsT) ) module: LibC</div><div><span>        </span></div><div style="white-space:pre-wrap"><br></div></span></div><div><span style="white-space:pre-wrap">I have no idea what I am doing wrong. And again, this works on OSX. The function I am calling is:  int posix_spawn_file_actions_init(posix_spawn_file_actions_t *file_actions);  as you can read in [1]</span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Below is the stacktrace I get the Linux terminal.</span></div><div><br></div><div><span style="white-space:pre-wrap">Any hint is greatly appreciated. </span></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">Thanks, </span></div><div><br></div><div><span style="white-space:pre-wrap"><br></span></div><div><span style="white-space:pre-wrap">[1] <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_destroy.html" target="_blank">http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_destroy.html</a></span></div></div><div><br></div><div><br></div><div><b><br></b></div><div><div><b>*** Error in `/home/centos/pharo-vm/pharo&#39;: malloc(): memory corruption (fast): 0x09544268 ***</b></div><div>======= Backtrace: =========</div><div>/lib/libc.so.6(+0x7428c)[0xf758e28c]</div><div>/lib/libc.so.6(+0x76d98)[0xf7590d98]</div><div>/lib/libc.so.6(__libc_calloc+0xa7)[0xf7592df7]</div><div>/home/centos/pharo-vm/pharo[0x80b8f44]</div><div>/home/centos/pharo-vm/pharo[0x80b909c]</div><div>/home/centos/pharo-vm/pharo(ioLoadExternalFunctionOfLengthFromModuleOfLengthAccessorDepthInto+0xc2)[0x80b9402]</div><div>/home/centos/pharo-vm/pharo[0x808de6f]</div><div>/home/centos/pharo-vm/pharo[0x80a0810]</div><div>/home/centos/pharo-vm/pharo(ceSendsupertonumArgs+0x1da)[0x80a1f4a]</div><div>[0x960004c]</div><div>[0x9600b00]</div><div>[0xaec2e9b]</div><div>[0xaec3481]</div><div>[0x9604ff0]</div><div>[0x964ed43]</div><div>[0x9604f5c]</div><div>[0x960424c]</div><div>[0x9602e47]</div><div>[0x9602be7]</div><div>[0x960320c]</div><div>[0x9602277]</div><div>[0x960bec2]</div><div>[0x9600b00]</div><div>[0x9600ad8]</div><div>======= Memory map: ========</div><div>08048000-08151000 r-xp 00000000 fd:01 202178584                          /home/centos/pharo-vm/pharo</div><div>08151000-08152000 r--p 00108000 fd:01 202178584                          /home/centos/pharo-vm/pharo</div><div>08152000-0815c000 rw-p 00109000 fd:01 202178584                          /home/centos/pharo-vm/pharo</div><div>0815c000-08193000 rw-p 00000000 00:00 0 </div><div>09505000-095a5000 rw-p 00000000 00:00 0                                  [heap]</div><div>09600000-09701000 rwxp 00000000 00:00 0 </div><div>09701000-0dbc0000 rw-p 00000000 00:00 0 </div><div>f6de5000-f6dfe000 r-xp 00000000 fd:01 203854803                          /usr/lib/libgcc_s-4.8.5-20150702.so.1</div><div>f6dfe000-f6dff000 r--p 00018000 fd:01 203854803                          /usr/lib/libgcc_s-4.8.5-20150702.so.1</div><div>f6dff000-f6e00000 rw-p 00019000 fd:01 203854803                          /usr/lib/libgcc_s-4.8.5-20150702.so.1</div><div>f6e00000-f6e21000 rw-p 00000000 00:00 0 </div><div>f6e21000-f6f00000 ---p 00000000 00:00 0 </div><div>f6f25000-f6f26000 rw-p 00000000 00:00 0 </div><div>f6f26000-f6f2e000 r-xp 00000000 fd:01 202178580                          /home/centos/pharo-vm/libSqueakFFIPrims.so</div><div>f6f2e000-f6f2f000 r--p 00007000 fd:01 202178580                          /home/centos/pharo-vm/libSqueakFFIPrims.so</div><div>f6f2f000-f6f30000 rw-p 00008000 fd:01 202178580                          /home/centos/pharo-vm/libSqueakFFIPrims.so</div><div>f6f30000-f6f32000 r-xp 00000000 fd:01 203140415                          /usr/lib/libXau.so.6.0.0</div><div>f6f32000-f6f33000 r--p 00001000 fd:01 203140415                          /usr/lib/libXau.so.6.0.0</div><div>f6f33000-f6f34000 rw-p 00002000 fd:01 203140415                          /usr/lib/libXau.so.6.0.0</div><div>f6f34000-f6f5b000 r-xp 00000000 fd:01 201498737                          /usr/lib/liblzma.so.5.0.99</div><div>f6f5b000-f6f5d000 r--p 00026000 fd:01 201498737                          /usr/lib/liblzma.so.5.0.99</div><div>f6f5d000-f6f5e000 rw-p 00028000 fd:01 201498737                          /usr/lib/liblzma.so.5.0.99</div><div>f6f5e000-f6fc0000 r-xp 00000000 fd:01 201348055                          /usr/lib/libpcre.so.1.2.0</div><div>f6fc0000-f6fc2000 r--p 00061000 fd:01 201348055                          /usr/lib/libpcre.so.1.2.0</div><div>f6fc2000-f6fc3000 rw-p 00063000 fd:01 201348055                          /usr/lib/libpcre.so.1.2.0</div><div>f6fc3000-f6fcf000 r-xp 00000000 fd:01 202740809                          /usr/lib/libdrm.so.2.4.0</div><div>f6fcf000-f6fd0000 r--p 0000b000 fd:01 202740809                          /usr/lib/libdrm.so.2.4.0</div><div>f6fd0000-f6fd1000 rw-p 0000c000 fd:01 202740809                          /usr/lib/libdrm.so.2.4.0</div><div>f6fd1000-f6fd5000 r-xp 00000000 fd:01 202740799                          /usr/lib/libXxf86vm.so.1.0.0</div><div>f6fd5000-f6fd6000 r--p 00004000 fd:01 202740799                          /usr/lib/libXxf86vm.so.1.0.0</div><div>f6fd6000-f6fd7000 rw-p 00005000 fd:01 202740799                          /usr/lib/libXxf86vm.so.1.0.0</div><div>f6fd7000-f6fd8000 r-xp 00000000 fd:01 201522922                          /usr/lib/libxshmfence.so.1.0.0</div><div>f6fd8000-f6fd9000 r--p 00000000 fd:01 201522922                          /usr/lib/libxshmfence.so.1.0.0</div><div>f6fd9000-f6fda000 rw-p 00001000 fd:01 201522922                          /usr/lib/libxshmfence.so.1.0.0</div><div>f6fda000-f6ffd000 r-xp 00000000 fd:01 202740769                          /usr/lib/libxcb.so.1.1.0</div><div>f6ffd000-f6ffe000 r--p 00022000 fd:01 202740769                          /usr/lib/libxcb.so.1.1.0</div><div>f6ffe000-f6fff000 rw-p 00023000 fd:01 202740769                          /usr/lib/libxcb.so.1.1.0</div><div>f6fff000-f7004000 r-xp 00000000 fd:01 201522899                          /usr/lib/libxcb-sync.so.1.0.0</div><div>f7004000-f7005000 r--p 00005000 fd:01 201522899                          /usr/lib/libxcb-sync.so.1.0.0</div><div>f7005000-f7006000 rw-p 00006000 fd:01 201522899                          /usr/lib/libxcb-sync.so.1.0.0</div><div>f7006000-f7009000 r-xp 00000000 fd:01 201522895                          /usr/lib/libxcb-shape.so.0.0.0</div><div>f7009000-f700a000 r--p 00002000 fd:01 201522895                          /usr/lib/libxcb-shape.so.0.0.0</div><div>f700a000-f700b000 rw-p 00003000 fd:01 201522895                          /usr/lib/libxcb-shape.so.0.0.0</div><div>f700b000-f7014000 r-xp 00000000 fd:01 201522889                          /usr/lib/libxcb-render.so.0.0.0</div><div>f7014000-f7015000 r--p 00008000 fd:01 201522889                          /usr/lib/libxcb-render.so.0.0.0</div><div>f7015000-f7016000 rw-p 00009000 fd:01 201522889                          /usr/lib/libxcb-render.so.0.0.0</div><div>f7016000-f701d000 r-xp 00000000 fd:01 201522905                          /usr/lib/libxcb-xfixes.so.0.0.0</div><div>f701d000-f701e000 r--p 00006000 fd:01 201522905                          /usr/lib/libxcb-xfixes.so.0.0.0</div><div>f701e000-f701f000 rw-p 00007000 fd:01 201522905                          /usr/lib/libxcb-xfixes.so.0.0.0</div><div>f701f000-f702c000 r-xp 00000000 fd:01 201522885                          /usr/lib/libxcb-randr.so.0.1.0</div><div>f702c000-f702d000 r--p 0000d000 fd:01 201522885                          /usr/lib/libxcb-randr.so.0.1.0</div><div>f702d000-f702e000 rw-p 0000e000 fd:01 201522885                          /usr/lib/libxcb-randr.so.0.1.0</div><div>f702e000-f7030000 r-xp 00000000 fd:01 201522883                          /usr/lib/libxcb-present.so.0.0.0</div><div>f7030000-f7031000 r--p 00001000 fd:01 201522883                          /usr/lib/libxcb-present.so.0.0.0</div><div>f7031000-f7032000 rw-p 00002000 fd:01 201522883                          /usr/lib/libxcb-present.so.0.0.0</div><div>f7032000-f7034000 r-xp 00000000 fd:01 203140423                          /usr/lib/libxcb-dri3.so.0.0.0</div><div>f7034000-f7035000 r--p 00001000 fd:01 203140423                          /usr/lib/libxcb-dri3.so.0.0.0</div><div>f7035000-f7036000 rw-p 00002000 fd:01 203140423                          /usr/lib/libxcb-dri3.so.0.0.0</div><div>f7036000-f703a000 r-xp 00000000 fd:01 203140421                          /usr/lib/libxcb-dri2.so.0.0.0./pharo-ui: line 11:  4019 Aborted                 (core dumped) &quot;$DIR&quot;/&quot;pharo-vm/pharo&quot; &quot;$@&quot;</div></div><span class="HOEnZb"><font color="#888888"><div><br></div><div><br clear="all"><div><br></div>-- <br><div>Mariano<br><a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br></div>
</div></font></span></div>
</div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Mariano<br><a href="http://marianopeck.wordpress.com" target="_blank">http://marianopeck.wordpress.com</a><br></div>
</div>