p...@highoctane.be wrote:
Is https://pharo.fogbugz.com/f/cases/19990 showing again?
What is the module being loaded ?
This seems to be the important question. It seems FFI for some reason
struggles with 'lib' and/or '.so.0' things in linux (even if
LD_LIBRARY_PATH is properly set).
I had to do this:
TARGETDIR=`find . -type f -name SqueakSSL.so -print0 | xargs -0 dirname`
ln -s `/sbin/ldconfig -p | sed -e 's|[^/]*||' | grep sqlite3`
${TARGETDIR}/sqlite3.so
(so, link in plugin directory, and the name is plain 'sqlite3.so'). With
that, things work. Maybe, libsqlite.so would do the trick as well, but I
got no nerve to play with it more.
But, frankly, do not tell me this is what ppl need to do to load
external libs in linux. :-/
Herby
Phil
On Sat, Sep 30, 2017 at 1:28 PM, Herby Vojčík <he...@mailbox.sk
<mailto:he...@mailbox.sk>> wrote:
p...@highoctane.be <mailto:p...@highoctane.be> wrote:
What about
LD_LIBRARY_PATH=<sqlite3place>;$LD_LIBRARYPATH ./pharo-ui
some.image
Phil
Thanks for answer, did not help.
In fact it must be something different. As can be seen in the stack,
it fails during finalizers, and as can be seen by looking at
UDBCSQLite3DatabaseExternalObject class>>finalizeResourceData: code,
the method it calls is sqlite close. It is hardly the first method
that is should call...
I suspect something around image save / load. Again. Lots of errors
in those parts. But may be something else, as it kicks in only when
SQLite-using tests starts to run. :-(
Herby
P.S.: I saw there is a similar thread out there, but it has problems
with 32bit loaded by 64bit vm; but here, I have 32bit linux, so the
vm installed should be 32bit.
On Thu, Sep 28, 2017 at 7:40 PM, Herby Vojčík <he...@mailbox.sk
<mailto:he...@mailbox.sk>
<mailto:he...@mailbox.sk <mailto:he...@mailbox.sk>>> wrote:
Hello!
I try to deploy UDBCSQLite-using image in a 32bit ubuntu
16.04.3.
I do have libsqlite3:
root@32bit-agent:~# find / -name '*libsqlite*' -type f
2>>/dev/null
/usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
/var/lib/dpkg/info/libsqlite0.list
/var/lib/dpkg/info/libsqlite3-0:i386.postinst
/var/lib/dpkg/info/libsqlite3-0:i386.md5sums
/var/lib/dpkg/info/libsqlite3-0:i386.shlibs
/var/lib/dpkg/info/libsqlite0.postrm
/var/lib/dpkg/info/libsqlite3-0:i386.symbols
/var/lib/dpkg/info/libsqlite3-0:i386.list
/var/lib/dpkg/info/libsqlite3-0:i386.triggers
/var/cache/apt/archives/libsqlite0_2.8.17-12fakesync1_i386.deb
but I get this in the output of the CI:
17:16:54.233 + ../pharo/pharo ./filmtower.image
conf/run-tests.st <http://run-tests.st>
<http://run-tests.st>
17:16:54.508 pthread_setschedparam failed: Operation not
permitted
17:16:54.509 This VM uses a separate heartbeat thread to
update its
internal clock
17:16:54.509 and handle events. For best operation, this
thread
should run at a
17:16:54.509 higher priority, however the VM was unable to
change
the priority. The
17:16:54.509 effect is that heavily loaded systems may
experience
some latency
17:16:54.509 issues. If this occurs, please create the
appropriate
configuration
17:16:54.509 file in /etc/security/limits.d/ as shown below:
17:16:54.509
17:16:54.509 cat <<END | sudo tee
/etc/security/limits.d/pharo.conf
17:16:54.509 * hard rtprio 2
17:16:54.509 * soft rtprio 2
17:16:54.509 END
17:16:54.509
17:16:54.509 and report to the pharo mailing list whether this
improves behaviour.
17:16:54.512
17:16:54.512 You will need to log out and log back in for
the limits
to take effect.
17:16:54.512 For more information please see
17:16:54.512
https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux
<https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux>
<https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux
<https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux>>
17:16:54.785
17:16:54.786 TowergameSyncTests
17:16:54.831 Error: External module not found
17:16:54.832 ExternalLibraryFunction(Object)>>error:
17:16:54.832
ExternalLibraryFunction(Object)>>externalCallFailed
17:16:54.833
ExternalLibraryFunction(ExternalFunction)>>invokeWithArguments:
17:16:54.833 UDBCSQLite3DatabaseExternalObject
class>>finalizeResourceData:
17:16:54.834 FFICalloutAPI>>function:module:
17:16:54.834 UDBCSQLite3Library(Object)>>ffiCall:module:
17:16:54.835 UDBCSQLite3DatabaseExternalObject
class>>finalizeResourceData:
17:16:54.836 FFIExternalResourceExecutor>>finalize
17:16:54.836 WeakFinalizerItem>>finalizeValues
17:16:54.845 [ each finalizeValues ] in [ :each | [ each
finalizeValues ] on: Exception fork: [ :ex | ex pass ] ] in
WeakRegistry>>finalizeValues in Block: [ each finalizeValues ]
17:16:54.846 BlockClosure>>on:do:
17:16:54.852 [ Processor terminateActive ] in [ :ex |
17:16:54.852 | copy onDoCtx process handler bottom thisCtx |
17:16:54.852 onDoCtx := thisContext.
17:16:54.852 thisCtx := onDoCtx home.
17:16:54.852
17:16:54.852 "find the context on stack for which this
method's is
sender"
17:16:54.852 [ onDoCtx sender == thisCtx ]
17:16:54.852 whileFalse: [ onDoCtx := onDoCtx sender.
17:16:54.852 onDoCtx
17:16:54.852 ifNil: [ "Can't find our home
context. seems like we're already forked
17:16:54.852 and handling another
exception in new thread. In this case, just pass it through
handler." ^ handlerAction cull: ex ] ].
17:16:54.852 bottom := [ Processor terminateActive ] asContext.
17:16:54.853 onDoCtx privSender: bottom.
17:16:54.853 handler := [ handlerAction cull: ex ] asContext.
17:16:54.853 handler privSender: thisContext sender.
17:16:54.853 (Process forContext: handler priority: Processor
activePriority)
17:16:54.853 resume.
17:16:54.853
17:16:54.853 "cut the stack of current process"
17:16:54.853 thisContext privSender: thisCtx.
17:16:54.853 nil ] in BlockClosure>>on:fork: in Block: [
Processor
terminateActive ]
17:16:54.989
Look like pharo was not able to find the sqlite3 lib.
Any help?
Thanks, Herby