Graceful termination requests (Ctrl-C, kill, or a controlling rips client) were routed through the crash handler, which captured the stack trace of wherever the main thread was parked - typically inside the multi-second gRPC server EventEngine teardown during normal shutdown - and reported it as a spurious "Crash (signal: N)".
Register the crash handler only for genuine fault/abort signals (SIGILL, SIGFPE, SIGSEGV, SIGABRT) and let SIGINT/SIGTERM use their default disposition so the process terminates cleanly.
Switch signal handler registration from signal() to sigaction(SA_SIGINFO)
on Linux to capture fault address, signal code description, and program
counter at crash time. These are logged to the file logger and included
in OpenTelemetry crash reports.
Allows users to set the maximum number of threads used for parallel processing via a command-line argument. The thread count can also be set via preferences. Command line takes precedence.
- Always log to file using default values. Log to home_folder/.resinsight/logs. Files are rotated, 5MB per file and maximum of 3 files.
- Add checkbox to system preferences to control file logging
Never write to preferences if running in console mode
Delete stale settings lock files
On Linux, application settings are stored in a text file in the users home folder. On Windows, these settings are stored in Registry. Users have reported stale lock files the configuration directory. In some cases, these lock files can prevent the application from starting. It appears that the application start, but no GUI is displayed.
Setting this attribute will make sure OpenGL resources are alive when the parent widget is changed during layout changes like full screen view or changing docking configuration.
* Python: avoid assigning same port number to multiple grpc sessions
* Add retry count when checking for port number file
* Use grpc to find and use port number
* Add test used to start several instances of resinsight at the same time
Testing up to 50 instances works well
* Python: allow launch_port == 0 to assign port by GRPC in Instance.launch().
Also allow longer wait before failing the port number file reading:
it can take some time to launch when launching lots of instances at
the same time.
Use auto value concept in summary plot configuration. Default behavior is unchanged, but it is now possible to unlink a field to specify a custom value for this field.
Other changes:
* Add missing requirement for Svg in test application
* Use calculator icon and rename panel text
Use icon and relevant text to make it clear that the content in Calculator Data can be used for Grid Property Calculator and nothing else.
* Add example with scoped enum and auto value
* Use enum value starting av 10 to make sure enum values (not option item index) are working as expected