<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Ian,<div><br></div><div>I would prefer a more explicit wait of not exiting than running netldi in the foreground. I’ve seen two recommendations:</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>CMD ["tail", "-f", "/dev/null”]</div><div><b><span class="Apple-tab-span" style="white-space:pre">   </span></b>CMD ["sleep", "infinity"]<b><br></b><div><br></div><div>> … the remote page cache becomes stale on system reboot ...</div><div>> Note that the container lives in all the above cases ...</div><div><br></div><div>Could you say more about your architecture? You have the stone in one Docker container and a gem in another Docker container? Which container lives and which one reboots?</div><div><br></div><div>The idea of scaling gems with Docker sounds plausible, but I’ve not heard of anyone doing it.</div><div><br></div><div>James</div><div><br><blockquote type="cite"><div>On May 27, 2025, at 7:34 PM, Ian via GemStone-Smalltalk <gemstone-smalltalk@lists.gemtalksystems.com> wrote:</div><br class="Apple-interchange-newline"><div><div>Hi Norm, James,<br><br>I think this is worth exploring. Please bear with me.<br><br>To answer your question Norm, container entry points, however you run them (docker run, compose entrypoint:, entry point in the dockerfile, whatever) runs as PID 1.<br><br>I want to run a script, call it startup.sh, like this in my dockerfile:<br><br>ENTRYPOINT: ["/some/container/path/startup.sh"]<br><br>The scripts job is to:<br><br>1. startnetldi -s<br>2. topaz -I topazini -S instructions.topaz (simplified)<br><br>Once these two requirements are met, startup.sh exits. Meaning PID 1 also exits and the container shuts down (depending on you compose settings, an endless restart likely ensues).<br><br>Now, when I run step one as 'netldid -s,' netldid runs on the foreground. PID 1 lives on and the container persists. Connections to the stone live, my application runs in the gem running in the container and all is good.<br><br>The issue I am now trying to resolve is the fact that the remote page cache becomes stale on system reboot, system crashes or connection interruptions. <br><br>Note that the container lives in all the above cases, netldid process persists and is happy but a stale page cache is terminal. <br><br>I must bring down the containers by some manual method: docker compose down, or in terms of kubernetes, restart the deployment, to have the cache regenerated from scratch. <br><br>This is fine as everything persists in the stone. However, provisions must be made to handle containers whose connection to the stone is terminated/interrupted for whatever the reason.<br><br>From here: <br><br>My goal is to run all connections to the stone using x509 enabled gems for all connecting entities of whatever type. The above is the beginnings of a POC to test what hurdles had to be overcome; Whether or not it would even be possible. It is doable, I think.<br><br>Having started the full read of the x509 guide, I come to realize that the cache is created at the prompting from the server-side x509 enabled netldi through the host agent. In this case, it seem that it may be possible to build container resilience into what I a trying to do as the remote netldi must be alive, requesting a login from the server by saying "here I am, here is my port." What I don't know is that if the remote netldi sees a local cache will it still fail or will it say, you silly cache, you're busted, let's clean up and make a new one.<br><br>If this can be made to work Gemstone/S remote gems could sit behind some kind of load balancer and run HA in docker, docker swarm or any kubernetes variety fully and robustly containerized and talk to a stone that sits as they do now, on a dedicated server managing connections, transactions and persisting data to extents until the cows come home.<br><br>I feel like this has probably already been done but can't find a trailblazer on the web to guide me.<br><br>I do know that I can run netldi on many nodes, bare metal or VM fronted by some form of load balancer for HA, scalability is simply much easier using containers and a container management system of some kind. <br><br>Seems to me that remote gems are the perfect, secure and safe and scalable way to run Smalltalk based microservices in remote containerize gems with persistent object storage to boot!<br><br>Long store short, to my question: Am I approaching this in the correct way? Is what I am trying to do even possible?<br><br>Ian<br><br>Sent with Proton Mail secure email.<br><br>On Tuesday, May 27th, 2025 at 4:00 PM, gemstone-smalltalk-request@lists.gemtalksystems.com <gemstone-smalltalk-request@lists.gemtalksystems.com> wrote:<br><br><blockquote type="cite">Send GemStone-Smalltalk mailing list submissions to<br>gemstone-smalltalk@lists.gemtalksystems.com<br><br>To subscribe or unsubscribe via the World Wide Web, visit<br>https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk<br>or, via email, send a message with subject or body 'help' to<br>gemstone-smalltalk-request@lists.gemtalksystems.com<br><br>You can reach the person managing the list at<br>gemstone-smalltalk-owner@lists.gemtalksystems.com<br><br>When replying, please edit your Subject line so it is more specific<br>than "Re: Contents of GemStone-Smalltalk digest..."<br><br><br>Today's Topics:<br><br>1. netldid (Ian)<br>2. Re: netldid (James Foster)<br>3. Re: netldid (Norm Green)<br>4. Re: netldid (Ian)<br><br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Mon, 26 May 2025 19:33:08 +0000<br>From: Ian icjohnson@proton.me<br><br>To: "gemstone-smalltalk@lists.gemtalksystems.com"<br>gemstone-smalltalk@lists.gemtalksystems.com<br><br>Subject: [GemStone-Smalltalk] netldid<br>Message-ID:<br>PejD_sVleK6zxKRUkWsS3REI1mSSbkKihZU8MKvy-t-r1_b4wyM-WvvRxoRr8gIYVe5uQ4TXtf5G0BxUZ2zFNo-YwKfY6v2do6NGknySb7U=@proton.me<br><br><br>Content-Type: text/plain; charset="utf-8"<br><br>Hi GemStoners,<br><br>Are there plans in the works to allow netldid to run in the foreground?<br><br>This would allow the running of startnetldi -s in a container without an infinite loop and a long running sleep statement (Better way?)<br><br>On that note, I am able to containerize a running client application, linked and RPC; Am I running down a road that will eventually bonk me in the head?<br><br>Thanks in advance,<br>Ian<br><br>Sent with Proton Mail secure email.<br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20250526/67818374/attachment-0001.htm<br><br><br>------------------------------<br><br>Message: 2<br>Date: Mon, 26 May 2025 13:25:35 -0700<br>From: James Foster Smalltalk@JGFoster.net<br><br>To: Ian icjohnson@proton.me<br><br>Cc: "gemstone-smalltalk@lists.gemtalksystems.com"<br>gemstone-smalltalk@lists.gemtalksystems.com<br><br>Subject: Re: [GemStone-Smalltalk] netldid<br>Message-ID: 24CFB521-8477-4700-94F5-3E15CA35E192@JGFoster.net<br><br>Content-Type: text/plain; charset="utf-8"<br><br>Ian,<br><br>A number of people have created Docker images for GemStone/S. This is fine as long as you map the database to something outside the container (else it will be lost when the container stops).<br><br>See https://downloads.gemtalksystems.com/docs/GemStone64/3.7.x/GS64-SysAdminGuide-3.7/B-CommandReference.htm#pgfId-857966 to let netldid run in the foreground.<br><br>James<br><br><blockquote type="cite">On May 26, 2025, at 12:33?PM, Ian via GemStone-Smalltalk gemstone-smalltalk@lists.gemtalksystems.com wrote:<br><br>Hi GemStoners,<br><br>Are there plans in the works to allow netldid to run in the foreground?<br><br>This would allow the running of startnetldi -s in a container without an infinite loop and a long running sleep statement (Better way?)<br><br>On that note, I am able to containerize a running client application, linked and RPC; Am I running down a road that will eventually bonk me in the head?<br><br>Thanks in advance,<br><br>Ian<br><br>Sent with Proton Mail https://proton.me/mail/home secure email.<br>_______________________________________________<br>GemStone-Smalltalk mailing list<br>GemStone-Smalltalk@lists.gemtalksystems.com<br>https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk<br></blockquote><br><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20250526/eebd20d9/attachment-0001.htm<br><br><br>------------------------------<br><br>Message: 3<br>Date: Mon, 26 May 2025 13:43:48 -0700<br>From: Norm Green norm.green@gemtalksystems.com<br><br>To: gemstone-smalltalk@lists.gemtalksystems.com<br>Subject: Re: [GemStone-Smalltalk] netldid<br>Message-ID: 7f994942-644d-4801-806e-a3c3f419962e@gemtalksystems.com<br><br>Content-Type: text/plain; charset="utf-8"; Format="flowed"<br><br>Hi Ian,<br><br>I don't fully understand why you want to run netldi in the foreground.<br>That said, startnetldi forks $GEMSTONE/sys/netldid with appropriate<br>arguments, so you could run that in the foreground.<br><br>Norm Green<br><br><br>On 5/26/2025 12:33 PM, Ian via GemStone-Smalltalk wrote:<br><br><blockquote type="cite">Hi GemStoners,<br><br>Are there plans in the works to allow netldid to run in the foreground?<br><br>This would allow the running of startnetldi -s in a container without<br>an infinite loop and a long running sleep statement (Better way?)<br><br>On that note, I am able to containerize a running client application,<br>linked and RPC; Am I running down a road that will eventually bonk me<br>in the head?<br><br>Thanks in advance,<br><br>Ian<br><br>Sent with Proton Mail https://proton.me/mail/home secure email.<br><br>_______________________________________________<br>GemStone-Smalltalk mailing list<br>GemStone-Smalltalk@lists.gemtalksystems.com<br>https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk<br></blockquote><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20250526/8b7b14ed/attachment-0001.htm<br><br><br>------------------------------<br><br>Message: 4<br>Date: Mon, 26 May 2025 21:05:20 +0000<br>From: Ian icjohnson@proton.me<br><br>To: James Foster Smalltalk@JGFoster.net<br><br>Cc: "gemstone-smalltalk@lists.gemtalksystems.com"<br>gemstone-smalltalk@lists.gemtalksystems.com<br><br>Subject: Re: [GemStone-Smalltalk] netldid<br>Message-ID:<br>2OoOBEiO6J-fYbKZwRSH68GLdy_pWxVzfCcdsPW6lpox5PVN-6Qp6m9ZUJHG8YC_xCOnX1pi-PJ2zrOgLQRC86SgPeSX2PT5hpACzicoPGM=@proton.me<br><br><br>Content-Type: text/plain; charset="utf-8"<br><br>netldid -s<br><br>The wording got me.<br><br>Thanks!<br><br>Ian<br><br>Sent with Proton Mail secure email.<br><br>On Monday, May 26th, 2025 at 5:25 PM, James Foster Smalltalk@JGFoster.net wrote:<br><br><blockquote type="cite">Ian,<br><br>A number of people have created Docker images for GemStone/S. This is fine as long as you map the database to something outside the container (else it will be lost when the container stops).<br><br>See https://downloads.gemtalksystems.com/docs/GemStone64/3.7.x/GS64-SysAdminGuide-3.7/B-CommandReference.htm#pgfId-857966 to let netldid run in the foreground.<br><br>James<br><br><blockquote type="cite">On May 26, 2025, at 12:33?PM, Ian via GemStone-Smalltalk gemstone-smalltalk@lists.gemtalksystems.com wrote:<br><br>Hi GemStoners,<br><br>Are there plans in the works to allow netldid to run in the foreground?<br><br>This would allow the running of startnetldi -s in a container without an infinite loop and a long running sleep statement (Better way?)<br><br>On that note, I am able to containerize a running client application, linked and RPC; Am I running down a road that will eventually bonk me in the head?<br><br>Thanks in advance,<br>Ian<br><br>Sent with Proton Mail secure email.<br>_______________________________________________<br>GemStone-Smalltalk mailing list<br>GemStone-Smalltalk@lists.gemtalksystems.com<br>https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk<br></blockquote></blockquote><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20250526/b228663a/attachment-0001.htm<br><br><br>------------------------------<br><br>Subject: Digest Footer<br><br>_______________________________________________<br>GemStone-Smalltalk mailing list<br>GemStone-Smalltalk@lists.gemtalksystems.com<br>https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk<br><br><br>------------------------------<br><br>End of GemStone-Smalltalk Digest, Vol 129, Issue 4<br>**************************************************<br></blockquote>_______________________________________________<br>GemStone-Smalltalk mailing list<br>GemStone-Smalltalk@lists.gemtalksystems.com<br>https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk<br></div></div></blockquote></div><br></div></body></html>