[Glass] GsDevKit for Docker

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Thu Sep 20 16:22:24 PDT 2018



On 09/11/2018 02:51 PM, Jupiter Jones via Glass wrote:
> Hi,
>
> I’m working on getting a kit together to easily setup and run GsDevKit 
> stones on Kubernets and have an issue I need some help with.
>
> To start with I’m simply making a docker image with the entire 
> GsDevKit and a seaside stone installed to make sure it’s all working. 
> I’ll create more usable components once I know I can get it installed :)
>
> Starting with creating the docker image, there’s a slightly weird (but 
> I guess not unexpected considering the environment) error calculating 
> the memory sizes:
>
> [Info] Setting up shared memory
>   Total memory available is 7972 MB
>   Max shared memory segment size is -16 MB
>   Max shared memory allowed is -65536 MB
> /opt/GsDevKit_home/bin/utils/installOsPrereqs: line 244: [: 
> 18446744073692774399: integer expression expected
> /opt/GsDevKit_home/bin/utils/installOsPrereqs: line 248: [: 
> 18446744073692774399: integer expression expected
> [Info] No need to increase max shared memory segment size
> /opt/GsDevKit_home/bin/utils/installOsPrereqs: line 260: [: 
> 18446744073692774399: integer expression expected
> [Info] No need to increase max shared memory allowed
It looks like you are getting negative numbers for the segment size and 
max shared memory which doesn't seem right ... these numbers are coming 
out of the /proc files how does docker deal with shared memory and the 
like ... it is built into the docker image itself or is it getting the 
values from the underlying os, or ???
>
> Regardless, since it’s not updating anything, it’s not really an issue 
> - just thought I’d point it out.
>
> I also noticed:
>
> =================
>    GsDevKit script: clone_gs_client_dev -o GsDevKit
>               path: /opt/GsDevKit_home/bin/private/clone_gs_client_dev
> =================
> =================
>    GsDevKit script: cloneGitHubProject GsDevKit GsDevKit_gs_client_dev dev
>               path: /opt/GsDevKit_home/bin/private/cloneGitHubProject
> =================
> Cloning into 'dev'...
> ...finished :: cloneGitHubProject GsDevKit GsDevKit_gs_client_dev dev
> >>>>>>
> basename: missing operand
> Try 'basename --help' for more information.
>    Checkout
> >>>>>>
> fatal: not a git repository: '/.git'
are you getting any script line numbers for this error? I try to list 
the name of the script as it starts andif there are errors provide a 
stack of the line number where the error occurs for each of the nested 
scripts ... this additional information (if it is available) would help 
me understand which `basename` is causing trouble ... but it would seem 
that this is a bash error or some sort??
>
> Haven’t looked into this one yet.
>
> The main thing I encountered was while running:
>
> installServerSeaside -c https -z 8383 gsdevkit342 3.4.2
>
> The error appears just before the tODE server install, while starting 
> netldi:
>
> Restarting stone and netldi
> =================
>    GsDevKit script: startStone -b -N gsdevkit342
>               path: /opt/GsDevKit_home/bin/startStone
> =================
> /opt/GsDevKit_home/server/stones/gsdevkit342/product/bin/waitstone[Info]: 
> GemStone version '3.4.2'
> waitstone[Error]: Network service 
> !#dir:/opt/GsDevKit_home/server/stones/gsdevkit342/logs#log:%N%P.log#server!gsdevkit342 
> was not found.
> Network lookup failure; could not find server 'gsdevkit342' on host 
> '5521dafaa573' because file not found: 
> /opt/gemstone/locks/gsdevkit342..LCK; service gsdevkit342 not found ; 
> NetLDI service 'gs64ldi' not found on node 'localhost6' port 50377 :
>
>
> Starting stone: gsdevkit342
> --- 09/11/2018 07:51:55.246 UTC ---
> stopstone[Info]: GemStone version '3.4.2'
> stopstone[Info]: Server 'gsdevkit342' is not running.
> startstone[Info]: GemStone version '3.4.2'
> startstone[Info]: Starting Stone repository monitor gsdevkit342.
> startstone[Info]: GEMSTONE is: 
> '/opt/GsDevKit_home/server/stones/gsdevkit342/product'.
> startstone[Info]: GEMSTONE_NRS_ALL is: 
> '#dir:$GEMSTONE_LOGDIR#log:%N%P.log'.
> startstone[Info]:  Ignoring GEMSTONE_NRS_ALL for stone
> startstone[Info]:
> GEMSTONE_SYS_CONF=/opt/GsDevKit_home/server/stones/gsdevkit342/extents/system.conf
> GEMSTONE_EXE_CONF=/opt/GsDevKit_home/server/stones/gsdevkit342/gsdevkit342.conf
> stoned[Info]: Log file is 
> '/opt/GsDevKit_home/server/stones/gsdevkit342/logs/gsdevkit342.log'.
> startstone[Info]: GemStone server gsdevkit342 has been started, 
> process 2327
>
> =================
>    GsDevKit script: startNetldi gsdevkit342
>               path: /opt/GsDevKit_home/bin/startNetldi
> =================
> starting netldi gsdevkit342
>
> MessageNotUnderstood: receiver of "," is nil
> UndefinedObject(Object)>>doesNotUnderstand: #,
> UnixProcess>>processProxy:forkAndExec:arguments:environment:descriptors: 
> in Block: [ :e | e , nullString ]
> Array(SequenceableCollection)>>collect:
> UnixProcess>>processProxy:forkAndExec:arguments:environment:descriptors:
> ExternalUnixOSProcess>>forkChild
> ExternalUnixOSProcess 
> class>>forkAndExec:arguments:environment:descriptors:
> UnixProcess>>forkAndExec:arguments:environment:descriptors:
> UnixProcess>>forkJob:arguments:environment:descriptors:
> GsDevKitStartnetldiCommandLineHandler 
> class(GsDevKitAbstractCommandLineHandler 
> class)>>runShellCommand:args:noError:
> GsDevKitStartnetldiCommandLineHandler(GsDevKitAbstractCommandLineHandler)>>runShellCommand:args:
> GsDevKitStartnetldiCommandLineHandler>>activate
> GsDevKitStartnetldiCommandLineHandler class(CommandLineHandler 
> class)>>activateWith:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: 
> in Block: [ aCommandLinehandler activateWith: commandLine ]
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
> PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activate in Block: [ 
> self handleArgument: (self arguments ifEmpty: [ ...etc...
> BlockClosure>>on:do:
> PharoCommandLineHandler(BasicCommandLineHandler)>>activate
> PharoCommandLineHandler>>activate
> PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
> PharoCommandLineHandler class>>activateWith: in Block: [ super 
> activateWith: aCommandLine ]
> WorldState>>runStepMethodsIn:
> WorldMorph>>runStepMethods
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> WorldMorph>>doOneCycle
> MorphicUIManager>>spawnNewProcess in Block: [ ...
> BlockClosure>>newProcess in Block: [ ...
> Error on or near line 99 :: devKitCommandLine startnetldi gsdevkit342 
> :: devKitCommandLine startnetldi gsdevkit342
> Error on or near line 72 :: startNetldi gsdevkit342 :: startNetldi 
> gsdevkit342
> Error on or near line 139 :: startStone -b -N gsdevkit342 :: 
> startStone -b -N gsdevkit342
> Error on or near line 169 :: newExtent -s 
> /opt/GsDevKit_home/server/stones/gsdevkit342/product/bin/extent0.seaside.dbf 
> gsdevkit342 :: newExtent -s 
> /opt/GsDevKit_home/server/stones/gsdevkit342/product/bin/extent0.seaside.dbf 
> gsdevkit342
> Error on or near line 209 :: createStone gsdevkit342 3.4.2 :: 
> createStone gsdevkit342 3.4.2
>
> Not sure about this one. It looks like startNetldi is being called 
> with the right argument (just one string ‘gsdevkit342’) but maybe 
> Pharo didn’t get it from the command line? Not sure how nil got into 
> the arrayOfStrings that ended up at UnixProcess. Since this is all 
> happening during the creation of a docker image, it makes it even 
> harder to debug. Has anyone seen this error before, or know what could 
> cause it?
This looks like an environment variable or two is not set correctly ... 
the error rings a bell but I'm drawing a blank as to what was causing 
the problem ... If you go into the startNetldi script (line 72) and add 
a -D option to the defKitCommandLine call, Pharo will start with the GUI 
(instead of headless) and if you hit an error you will get a debugger, 
so you can get more details about about the smalltalk code that is 
executing ... could it be that the PWD env var is messed up?

Are you running the docker instance inside a MAC ... I know that Macs 
can get the PWD env var messed up depending upon how you start the 
processes ...

Dale
>
> I remember problems with netldi and hostnames, could that be the case 
> here? Is there some confusion between “host” and “node” names:
>
> Network lookup failure; could not find server 'gsdevkit342' on host 
> '5521dafaa573' because file not found: 
> /opt/gemstone/locks/gsdevkit342..LCK;service gsdevkit342 not found ; 
> NetLDI service 'gs64ldi' not found on node 'localhost6' port 50377 :
Are the expected processes (stoned and netldi) running ... you can use 
topaz to login linked (-l) to see if the stone is healthy , then try 
without the -l (can uncomment the netldi mumbo jumbo in the .topazini 
file so you can use topaz as an RPC client ...

Dale
>
> Any advice would be greatly appreciated.
>
> Thanks.
>
> J
>
> PS. I’m running my own fork of GsDevKit, but I made sure it was up to 
> date. Pretty much the only change for now is in installOSPreReqs to 
> include ubuntu 18.04. I’ve checked this whole process with 16.04 and I 
> get the same error so I’m pretty sure it’s not some weird OS related 
> bug… still, ya never know :)
>
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20180920/8d41375e/attachment-0001.html>


More information about the Glass mailing list