Noob with obscure problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Noob with obscure problem

Larry Gadallah
Hi all:

I'm running GNU Smalltalk 3.2.2_1 on a FreeBSD 8.1-STABLE box, with a
view to getting Seaside running with it.

I'm following the very basic steps of getting a remotely accessible
image running (see
http://smalltalk.gnu.org/blog/bonzinip/seaside-development-gnu-smalltalk):

gst-remote -I seaside.im --daemon
gst-remote --eval '100 factorial'

The problem is that I get a segfault for every invocation of the
second command, regardless of what the expression to be evaluated is.

I'm thinking this might be obscure because I've searched for known
bugs/problems with GNU Smalltalk on FreeBSD and found none, then I
checked for bugs with 64-bit FreeBSD and found none, but in my case,
we are dealing with GNU Smalltalk running on a 64-bit FreeBSD machine
hosted on KVM/QEMU.

Am I missing something blatantly obvious here?

Thanks,

--
Larry Gadallah, VE6VQ/W7                          lgadallah AT gmail DOT com
PGP Sig: 917E DDB7 C911 9EC1 0CD9  C06B 06C4 835F 0BB8 7336

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Holger Freyther
On 09/29/2010 11:01 PM, Larry Gadallah wrote:


> Am I missing something blatantly obvious here?

If you type make check, does it find any issue?

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Dmitry Matveev
In reply to this post by Larry Gadallah
Actually you dont need

> gst-remote --eval '100 factorial'

to make Seaside running :)

I use GNU Smalltalk with Seaside on an external hosting (however there
is GNU/Linux, not FreeBSD) and it works there quite well.

2010/9/29, Larry Gadallah <[hidden email]>:

> Hi all:
>
> I'm running GNU Smalltalk 3.2.2_1 on a FreeBSD 8.1-STABLE box, with a
> view to getting Seaside running with it.
>
> I'm following the very basic steps of getting a remotely accessible
> image running (see
> http://smalltalk.gnu.org/blog/bonzinip/seaside-development-gnu-smalltalk):
>
> gst-remote -I seaside.im --daemon
> gst-remote --eval '100 factorial'
>
> The problem is that I get a segfault for every invocation of the
> second command, regardless of what the expression to be evaluated is.
>
> I'm thinking this might be obscure because I've searched for known
> bugs/problems with GNU Smalltalk on FreeBSD and found none, then I
> checked for bugs with 64-bit FreeBSD and found none, but in my case,
> we are dealing with GNU Smalltalk running on a 64-bit FreeBSD machine
> hosted on KVM/QEMU.
>
> Am I missing something blatantly obvious here?
>
> Thanks,
>
> --
> Larry Gadallah, VE6VQ/W7                          lgadallah AT gmail DOT com
> PGP Sig: 917E DDB7 C911 9EC1 0CD9  C06B 06C4 835F 0BB8 7336
>
> _______________________________________________
> help-smalltalk mailing list
> [hidden email]
> http://lists.gnu.org/mailman/listinfo/help-smalltalk
>

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Paolo Bonzini-2
On 09/29/2010 05:20 PM, Dmitry Matveev wrote:
>>  gst-remote --eval '100 factorial'

As Larry wrote,

>>  The problem is that I get a segfault for every invocation of the
>>  second command, regardless of what the expression to be evaluated is.

Larry, can you try configuring with "--disable-generational-gc"?

Thanks,

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Larry Gadallah
In reply to this post by Larry Gadallah
On 29 September 2010 09:02,  <[hidden email]> wrote:

>
> As Larry wrote,
>
>>>  The problem is that I get a segfault for every invocation of the
>>>  second command, regardless of what the expression to be evaluated is.
>
> Larry, can you try configuring with "--disable-generational-gc"?
>
> Thanks,
>
> Paolo

Hi Paolo:

I tried rebuilding after reconfiguring as you suggested, but the
results are the same. I'll try to get a backtrace.

Thanks,
--
Larry Gadallah, VE6VQ/W7                          lgadallah AT gmail DOT com
PGP Sig: 917E DDB7 C911 9EC1 0CD9  C06B 06C4 835F 0BB8 7336

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Larry Gadallah
In reply to this post by Larry Gadallah
Hi Paolo:

On 29 September 2010 09:02,  <[hidden email]> wrote:

> Message: 7
> Date: Wed, 29 Sep 2010 17:33:39 +0200
> From: Paolo Bonzini <[hidden email]>
> Subject: Re: [Help-smalltalk] Noob with obscure problem
> To: Dmitry Matveev <[hidden email]>
> Cc: help-smalltalk <[hidden email]>
> Message-ID: <[hidden email]>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 09/29/2010 05:20 PM, Dmitry Matveev wrote:
>>>  gst-remote --eval '100 factorial'
>
> As Larry wrote,
>
>>>  The problem is that I get a segfault for every invocation of the
>>>  second command, regardless of what the expression to be evaluated is.
>
> Larry, can you try configuring with "--disable-generational-gc"?
>
> Thanks,
>
> Paolo

As I mentioned earlier, I see no difference in behavior after
configuring with '--disable-generational-gc', and here is a stack
trace from gdb:

[larry@owrlakh] 159% sudo gdb /usr/local/bin/gst-remote gst-remote.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Core was generated by `gst-remote'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/local/lib/libgst.so.8...done.
Loaded symbols for /usr/local/lib/libgst.so.8
Reading symbols from /lib/libreadline.so.8...done.
Loaded symbols for /lib/libreadline.so.8
Reading symbols from /lib/libm.so.5...done.
Loaded symbols for /lib/libm.so.5
Reading symbols from /usr/local/lib/libgobject-2.0.so.0...done.
Loaded symbols for /usr/local/lib/libgobject-2.0.so.0
Reading symbols from /usr/local/lib/libgthread-2.0.so.0...done.
Loaded symbols for /usr/local/lib/libgthread-2.0.so.0
Reading symbols from /usr/local/lib/libglib-2.0.so.0...done.
Loaded symbols for /usr/local/lib/libglib-2.0.so.0
Reading symbols from /usr/local/lib/libintl.so.9...done.
Loaded symbols for /usr/local/lib/libintl.so.9
Reading symbols from /usr/local/lib/libiconv.so.3...done.
Loaded symbols for /usr/local/lib/libiconv.so.3
Reading symbols from /usr/local/lib/libpcre.so.0...done.
Loaded symbols for /usr/local/lib/libpcre.so.0
Reading symbols from /lib/libthr.so.3...done.
Loaded symbols for /lib/libthr.so.3
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /lib/libncurses.so.8...done.
Loaded symbols for /lib/libncurses.so.8
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0  0x00000000814ac48a in atoi () from /lib/libc.so.7
[New Thread 818021c0 (LWP 100103)]
(gdb) bt
#0  0x00000000814ac48a in atoi () from /lib/libc.so.7
#1  0x00000000806c1658 in qsort (base_ptr=0x81ae2300 "\020\002Þÿ®\210kâ",
    total_elems=3, size=176, cmp=0x814ac3a0 <atoi+32>) at qsort.c:243
#2  0x00000000814afa77 in getaddrinfo () from /lib/libc.so.7
#3  0x00000000806d44e8 in gst_smalltalk_args () at src/x86/unix64.S:75
#4  0x00000000806d4446 in ffi_call (cif=0x818f4e88,
    fn=0x814ae5e0 <getaddrinfo>, rvalue=0x7fffffffe350, avalue=0x7fffffffe2c0)
    at src/x86/ffi64.c:430
#5  0x00000000806921eb in _gst_invoke_croutine (cFuncOOP=0x82033300,
    receiver=0x8200cca0, args=0x81b1b3b8) at cint.c:879
#6  0x00000000806a487d in VMpr_CFuncDescriptor_call (id=Variable "id"
is not available.
) at prims.def:5952
#7  0x00000000806a6fff in _gst_send_message_internal
(sendSelector=Variable "sendSelector" is not available.
)
    at interp.c:2699
#8  0x00000000806b4d24 in _gst_interpret (processOOP=0x8208c6a0) at vm.def:693
#9  0x00000000806b87c5 in _gst_nvmsg_send (receiver=0x82002000,
    sendSelector=0x8208c040, args=0x0, sendArgs=0) at interp.c:2271
#10 0x0000000080671f5e in _gst_execute_statements (temps=0x0,
statements=Variable "statements" is not available.
)
    at comp.c:691
#11 0x00000000806658ac in parse_doit (p=0x7fffffffe970, fail_at_eof=false)
    at gst-parse.c:472
#12 0x0000000080665c63 in parse_chunks (p=0x7fffffffe970) at gst-parse.c:364
#13 0x000000008066603f in _gst_parse_chunks () at gst-parse.c:341
#14 0x000000008066643a in _gst_parse_stream (method=false) at lex.c:1186
#15 0x0000000080693b15 in _gst_process_file (fileName=Variable
"fileName" is not available.
) at input.c:846
#16 0x000000008065dd99 in gst_process_file (fileName=Variable
"fileName" is not available.
) at gstpub.c:161
#17 0x0000000000401de6 in main (argc=3, argv=0x7fffffffebf0) at gst-tool.c:545

I notice that the remote instance continues to run after this, it
seems to be the client instance that crashes. Issuing the command
'gst-remote --kill' also results in a segfault.

Thanks,
--
Larry Gadallah, VE6VQ/W7                          lgadallah AT gmail DOT com
PGP Sig: 917E DDB7 C911 9EC1 0CD9  C06B 06C4 835F 0BB8 7336

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Paolo Bonzini-2
> I notice that the remote instance continues to run after this, it
> seems to be the client instance that crashes. Issuing the command
> 'gst-remote --kill' also results in a segfault.

Yes, --kill is a shortcut for "--eval 'ObjectMemory quit'".

Can you try downloading debug info for libc and getting another backtrace?

Also, you can try removing all mentions of qsort.c from
lib-src/Makefile.am (or, if you don't have automake,
lib-src/Makefile.in).

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Larry Gadallah
On 1 October 2010 00:31, Paolo Bonzini <[hidden email]> wrote:

>> I notice that the remote instance continues to run after this, it
>> seems to be the client instance that crashes. Issuing the command
>> 'gst-remote --kill' also results in a segfault.
>
> Yes, --kill is a shortcut for "--eval 'ObjectMemory quit'".
>
> Can you try downloading debug info for libc and getting another backtrace?
>
> Also, you can try removing all mentions of qsort.c from
> lib-src/Makefile.am (or, if you don't have automake,
> lib-src/Makefile.in).
>
> Paolo
>

I haven't been able to confirm debug info for libc yet, but I did try removing
qsort.c (and configuring with --disable-generational-gc) from the build and it
now seems to function properly:

[larry@owrlakh] 268% sudo gst-remote --daemon
[larry@owrlakh] 269% gst-remote server started.

[larry@owrlakh] 269% sudo gst-remote --pid
9022
[larry@owrlakh] 270% ps auxww | grep gst
root       9022  1.0  1.4 813692 14448  ??  Ss    8:03AM   0:00.40
gst-remote --daemon
[larry@owrlakh] 271% sudo gst-remote --kill
Object: File error: Bad file descriptor
SystemExceptions.FileError(Exception)>>pass (ExcHandling.st:385)
optimized [] in UndefinedObject>>executeStatements (scripts/Remote.st:244)
SystemExceptions.FileError(Exception)>>activateHandler: (ExcHandling.st:516)
SystemExceptions.FileError(Exception)>>signal (ExcHandling.st:254)
SystemExceptions.FileError class(Exception class)>>signal: (ExcHandling.st:161)
File class>>checkError: (File.st:84)
optimized [] in Sockets.AbstractSocketImpl>>ensureReadable
(Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:442)
BlockClosure>>ensure: (BlkClosure.st:269)
optimized [] in Sockets.AbstractSocketImpl>>ensureReadable
(Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:428)
Sockets.TCPSocketImpl(Sockets.AbstractSocketImpl)>>fileOp:with:ifFail:
(Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:151)
Sockets.TCPSocketImpl(Sockets.AbstractSocketImpl)>>ensureReadable
(Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:441)
Sockets.ServerSocket>>waitForConnection
(Sockets.star#VFS.ZipFile/Sockets.st:980)
optimized [] in UndefinedObject>>executeStatements (scripts/Remote.st:214)
BlockClosure>>repeat (BlkClosure.st:318)
optimized [] in UndefinedObject>>executeStatements (scripts/Remote.st:203)
BlockClosure>>on:do: (BlkClosure.st:193)
optimized [] in UndefinedObject>>executeStatements (scripts/Remote.st:239)
[] in Process>>onBlock:at:suspend: (Process.st:392)
BlockClosure>>on:do: (BlkClosure.st:193)
[] in Process>>onBlock:at:suspend: (Process.st:393)
BlockClosure>>ensure: (BlkClosure.st:269)
[] in Process>>onBlock:at:suspend: (Process.st:370)
[] in BlockClosure>>asContext: (BlkClosure.st:179)
BlockContext class>>fromClosure:parent: (BlkContext.st:68)

Cheers,
--
Larry Gadallah, VE6VQ/W7                          lgadallah AT gmail DOT com
PGP Sig: 917E DDB7 C911 9EC1 0CD9  C06B 06C4 835F 0BB8 7336

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Paolo Bonzini-2
On Sun, Oct 3, 2010 at 17:07, Larry Gadallah <[hidden email]> wrote:
> I haven't been able to confirm debug info for libc yet, but I did try removing
> qsort.c (and configuring with --disable-generational-gc) from the build and it
> now seems to function properly:

Weird, but easily fixed at least.

Can you try without --disable-generational-gc too?

> [larry@owrlakh] 271% sudo gst-remote --kill
> Object: File error: Bad file descriptor

This can still be improved, too. :)

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Larry Gadallah
Hi Paolo:

On 3 October 2010 08:34, Paolo Bonzini <[hidden email]> wrote:

> On Sun, Oct 3, 2010 at 17:07, Larry Gadallah <[hidden email]> wrote:
>> I haven't been able to confirm debug info for libc yet, but I did try removing
>> qsort.c (and configuring with --disable-generational-gc) from the build and it
>> now seems to function properly:
>
> Weird, but easily fixed at least.
>
> Can you try without --disable-generational-gc too?
>
>> [larry@owrlakh] 271% sudo gst-remote --kill
>> Object: File error: Bad file descriptor
>
> This can still be improved, too. :)
>
> Paolo
>

I did try it, and it also works without the --disable-generational-gc
configuration. The problem seems to be related to something in
qsort.c?

Cheers,
--
Larry Gadallah, VE6VQ/W7                          lgadallah AT gmail DOT com
PGP Sig: 917E DDB7 C911 9EC1 0CD9  C06B 06C4 835F 0BB8 7336

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Paolo Bonzini-2
> I did try it, and it also works without the --disable-generational-gc
> configuration. The problem seems to be related to something in
> qsort.c?

Yes, I'll just remove the file. It's obsolete.

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Noob with obscure problem

Paolo Bonzini-2
On 03/19/2011 08:14 AM, Larry Gadallah wrote:
>
> [larry@owrlakh] 236% gst-remote --daemon
> gst-remote server started.
>
> [larry@owrlakh] 237% gst-remote --eval '100 factorial'

Perhaps you wanted to eval '100 factorial printNl'?

> [larry@owrlakh] 238% gst-remote --kill
> Object: File error: Bad file descriptor
> SystemExceptions.FileError(Exception)>>pass (ExcHandling.st:385)
> optimized [] in UndefinedObject>>executeStatements
> (/usr/local/share/smalltalk/scripts/Remote.st:244)
> SystemExceptions.FileError(Exception)>>activateHandler: (ExcHandling.st:516)
> SystemExceptions.FileError(Exception)>>signal (ExcHandling.st:254)
> SystemExceptions.FileError class(Exception class)>>signal:
> (ExcHandling.st:161)
> File class>>checkError: (File.st:84)
> optimized [] in Sockets.AbstractSocketImpl>>ensureReadable
> (Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:442)
> BlockClosure>>ensure: (BlkClosure.st:269)
> optimized [] in Sockets.AbstractSocketImpl>>ensureReadable
> (Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:428)
> Sockets.TCPSocketImpl(Sockets.AbstractSocketImpl)>>fileOp:with:ifFail:
> (Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:151)
> Sockets.TCPSocketImpl(Sockets.AbstractSocketImpl)>>ensureReadable
> (Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:441)
> Sockets.ServerSocket>>waitForConnection
> (Sockets.star#VFS.ZipFile/Sockets.st:980)
> optimized [] in UndefinedObject>>executeStatements
> (/usr/local/share/smalltalk/scripts/Remote.st:214)
> BlockClosure>>repeat (BlkClosure.st:318)
> optimized [] in UndefinedObject>>executeStatements
> (/usr/local/share/smalltalk/scripts/Remote.st:203)
> BlockClosure>>on:do: (BlkClosure.st:193)
> optimized [] in UndefinedObject>>executeStatements
> (/usr/local/share/smalltalk/scripts/Remote.st:239)
> [] in Process>>onBlock:at:suspend: (Process.st:389)
> BlockClosure>>on:do: (BlkClosure.st:193)
> [] in Process>>onBlock:at:suspend: (Process.st:390)
> BlockClosure>>ensure: (BlkClosure.st:269)
> [] in Process>>onBlock:at:suspend: (Process.st:368)
> [] in BlockClosure>>asContext: (BlkClosure.st:179)
> BlockContext class>>fromClosure:parent: (BlkContext.st:68)

This is http://smalltalk.gnu.org/project/issue/497

I think this is just a race due to the socket being closed on the other
side.

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk