Set OSMO_FSM_DUP_CHECK_DISABLED for grgsm_scanner and grgsm_livemon

apt-packaged gr-gsm aborts with SIGABRT (-6) due to duplicate FSM
registration in libosmocore. Setting this env var suppresses the
fatal assertion, allowing grgsm_scanner to run normally.

Applied to both scanner and livemon subprocess spawns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Smittix
2026-02-08 16:02:01 +00:00
parent 15efe56762
commit 4aeb51a973

View File

@@ -4,6 +4,7 @@ from __future__ import annotations
import json
import logging
import os
import queue
import re
import shutil
@@ -252,10 +253,12 @@ def _start_monitoring_processes(arfcn: int, device_index: int) -> tuple[subproce
'--args', f'rtl={device_index}',
'-f', f'{frequency_mhz}M'
]
env = dict(os.environ, OSMO_FSM_DUP_CHECK_DISABLED='1')
grgsm_proc = subprocess.Popen(
grgsm_cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
stderr=subprocess.PIPE,
env=env
)
register_process(grgsm_proc)
logger.info(f"Started grgsm_livemon (PID: {grgsm_proc.pid})")
@@ -1228,12 +1231,16 @@ def scanner_thread(cmd, device_index):
try:
# Start scanner process
# Set OSMO_FSM_DUP_CHECK_DISABLED to prevent libosmocore
# abort on duplicate FSM registration (common with apt gr-gsm)
env = dict(os.environ, OSMO_FSM_DUP_CHECK_DISABLED='1')
process = subprocess.Popen(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True,
bufsize=1
bufsize=1,
env=env
)
register_process(process)
logger.info(f"Started grgsm_scanner (PID: {process.pid})")