Summary
Running a Python cBot on linux/arm64 platform using the image tag : 5.10.1 crashes before the algo starts:
Unhandled exception. System.Exception: Process ash error: WARNING: Disabling truststore since ssl support is missing
at cTrader.Console.Infrastructure.Linux.Automate.TargetProcess.NetCore.LinuxPythonVirtualEnvironmentCreator.<>c__DisplayClass7_0.<StartProcess>g__OnError|0(Process process, String error) in /src/cTrader/cTracker.Console.Infrastructure.Linux/Automate/TargetProcess/NetCore/LinuxPythonVirtualEnvironmentCreator.cs:line 92
at Core.Framework.Extension.ExternalProcess.ExternalProcess.OnErrorDataReceived(Object sender, DataReceivedEventArgs e) in /src/Core/Core.Framework.Extensions/ExternalProcess/ExternalProcess.cs:line 45
at System.Diagnostics.AsyncStreamReader.FlushMessageQueue(Boolean rethrowInNewThread)
--- End of stack trace from previous location ---
at System.Threading.QueueUserWorkItemCallback.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
at System.Threading.Thread.StartCallback()
Environment
- Image:
ghcr.io/spotware/ctrader-console:5.10.1
- Platforms affected:
linux/arm64 (Raspberry Pi 5, aarch64)
- Any Python-language cBot (
backtest or run)
Full reproduction (run of a Python cBot)
$ docker run --rm ... ghcr.io/spotware/ctrader-console:5.10.1 \
run --ctid=<cTID> --pwd-file=... --account=<id> \
/path/to/python-bot.algo --symbol=EURUSD --period=h1 --data-mode=ticks ...
...
Unhandled exception. System.Exception: Process ash error: WARNING: Disabling truststore since ssl support is missing
at cTrader.Console.Infrastructure.Linux.Automate.TargetProcess.NetCore.LinuxPythonVirtualEnvironmentCreator.<>c__DisplayClass7_0.<StartProcess>g__OnError|0(Process process, String error) in /src/cTrader/cTracker.Console.Infrastructure.Linux/Automate/TargetProcess/NetCore/LinuxPythonVirtualEnvironmentCreator.cs:line 92
at Core.Framework.Extension.ExternalProcess.ExternalProcess.OnErrorDataReceived(Object sender, DataReceivedEventArgs e) in /src/Core/Core.Framework.Extensions/ExternalProcess/ExternalProcess.cs:line 45
at System.Diagnostics.AsyncStreamReader.FlushMessageQueue(Boolean rethrowInNewThread)
--- End of stack trace from previous location ---
at System.Threading.QueueUserWorkItemCallback.Execute()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
at System.Threading.Thread.StartCallback()
The same algo and command work fine on image 5.9.11.
Root cause
The bundled Python is linked against OpenSSL 1.1, but 5.10.1 dropped the libssl1.1 runtime libraries from the image:
| Image variant |
_ssl.cpython-312-*.so needs |
Ships |
Result |
5.9.11 arm64 |
libssl.so.1.1, libcrypto.so.1.1 |
libssl.so.1.1, libcrypto.so.1.1 |
works |
5.10.1 arm64 |
libssl.so.1.1, libcrypto.so.1.1 |
only libssl.so.3, libcrypto.so.3 |
broken |
Summary
Running a Python cBot on
linux/arm64platform using the image tag :5.10.1crashes before the algo starts:Environment
ghcr.io/spotware/ctrader-console:5.10.1linux/arm64(Raspberry Pi 5, aarch64)backtestorrun)Full reproduction (run of a Python cBot)
The same algo and command work fine on image
5.9.11.Root cause
The bundled Python is linked against OpenSSL 1.1, but
5.10.1dropped thelibssl1.1runtime libraries from the image:_ssl.cpython-312-*.soneeds5.9.11arm64libssl.so.1.1,libcrypto.so.1.1libssl.so.1.1,libcrypto.so.1.15.10.1arm64libssl.so.1.1,libcrypto.so.1.1libssl.so.3,libcrypto.so.3