last socket change breaks gst-remote on recent linux kernels

Project:GNU Smalltalk
Component:Bindings: Sockets
Category:bug
Priority:critical
Assigned:Unassigned
Status:fixed
Description

I have seen this issue on a 2.6.29 and a 2.6.30 kernel:

test $ gst -v
GNU Smalltalk version 3.1-27b1aa3
...
test $ gst-load -ivI test.im Iliad
...
test $ gst-remote -I test.im --server &
[1] 27607

test $ gst-remote server started.

test $ gst-remote --eval="Iliad.SwazooIliad startOn: 4080"

test $ netstat -lpn | grep 4080
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:4080            0.0.0.0:*               LISTEN     27607/gst-remote    

So with 27b1aa3 "everything works". Now let's do the update:

test $ cd /home/stefan/git/smalltalk/

smalltalk $ git pull
Updating 27b1aa3..482e75a
...

smalltalk $ make ; sudo make install
...

smalltalk $ cd ~/test

test $ pkill gst-remote

test $ gst -v
GNU Smalltalk version 3.1-482e75a

test $ gst-remote --daemon

test $ Object: File error: Bad file descriptor
SystemExceptions.FileError(Exception)>>signal (AnsiExcept.st:216)
SystemExceptions.FileError class(Exception class)>>signal: (AnsiExcept.st:79)
File class>>checkError: (File.st:85)
File class>>checkError (File.st:74)
[] in Sockets.TCPSocketImpl(Sockets.AbstractSocketImpl)>>bindTo:port: (Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:115)
[] in BlockClosure>>ifCurtailed: (BlkClosure.st:287)
BlockClosure>>ensure: (BlkClosure.st:269)
BlockClosure>>ifCurtailed: (BlkClosure.st:289)
Sockets.TCPSocketImpl(Sockets.AbstractSocketImpl)>>bindTo:port: (Sockets.star#VFS.ZipFile/AbstractSocketImpl.st:117)
Sockets.ServerSocket>>port:queueSize:bindTo: (Sockets.star#VFS.ZipFile/Sockets.st:1015)
Sockets.ServerSocket class>>port:queueSize:bindTo: (Sockets.star#VFS.ZipFile/Sockets.st:952)
Sockets.ServerSocket class>>port:bindTo: (Sockets.star#VFS.ZipFile/Sockets.st:934)
optimized [] in UndefinedObject>>executeStatements (/usr/local/share/smalltalk/scripts/Remote.st:203)
[] in Process>>onBlock:at:suspend: (Process.st:384)
BlockClosure>>on:do: (BlkClosure.st:192)
[] in Process>>onBlock:at:suspend: (Process.st:387)
BlockClosure>>ensure: (BlkClosure.st:269)
[] in Process>>onBlock:at:suspend: (Process.st:393)
[] in BlockClosure>>asContext: (BlkClosure.st:178)
BlockContext class>>fromClosure:parent: (BlkContext.st:68)
gst-remote server started.

test $ pgrep gst-remote
11973

test $ netstat -lpn | grep 11973
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

test $ 

Updates

#1 submitted by Paolo Bonzini on Thu, 08/13/2009 - 07:30
Status:active» fixed

Embarrassing. Fixed in 3d0983.

#2 submitted by Stefan Schmiedl on Thu, 08/13/2009 - 09:31

In that case, I apologize for not sending a private message :-)

Thanks for fixing it so quickly.
s.

User login