
Task Completed
Perfect! The core dump limit is now set correctly. You can see both:

LimitCORE=infinity
LimitCORESoft=infinity
What happens next:
The relay is now configured to generate core dumps when it crashes
Wait for the next crash to occur (based on your logs, it seems to happen intermittently)
When it crashes, the core dump will be automatically captured by systemd
After the next crash, analyze it:
# List all core dumps (most recent first)
sudo coredumpctl list

# View info about the most recent c-relay-pg crash
sudo coredumpctl info c-relay-pg

# Load the core dump in gdb for detailed analysis
sudo coredumpctl gdb c-relay-pg

Inside gdb, run these commands:
(gdb) bt full          # Full backtrace with all variables
(gdb) info threads     # Show all threads
(gdb) thread apply all bt  # Backtrace for all threads
(gdb) frame 0          # Go to crash frame
(gdb) info locals      # Show local variables
(gdb) list             # Show source code around crash

The backtrace will show you exactly which line of code caused the segmentation fault and the state of all variables at that moment, which should pinpoint whether it's the subscription management issue, buffer overflow, or something else.

You're all set up now - just wait for the next crash and then run the coredumpctl commands to analyze it.


--------------------------
DEBUGGING

Even simpler: Use this one-liner
# Start relay and immediately attach gdb
cd /usr/local/bin/c_relay_pg
sudo -u c-relay-pg ./c_relay_pg --debug-level=5 & sleep 2 && sudo gdb -p $(pgrep c_relay_pg)

Inside gdb, after attaching:

(gdb) continue
Or shorter:
(gdb) c


How to View the Logs
Check systemd journal:
# View all c-relay-pg logs
sudo journalctl -u c-relay-pg

# View recent logs (last 50 lines)
sudo journalctl -u c-relay-pg -n 50

# Follow logs in real-time
sudo journalctl -u c-relay-pg -f

# View logs since last boot
sudo journalctl -u c-relay-pg -b

Check if service is running:



To immediately trim the syslog file size:

Safe Syslog Truncation
Stop syslog service first:
sudo systemctl stop rsyslog

Truncate the syslog file:
sudo truncate -s 0 /var/log/syslog

Restart syslog service:
sudo systemctl start rsyslog
sudo systemctl status rsyslog


sudo -u c-relay-pg ./c_relay_pg --debug-level=5 -r 85d0b37e2ae822966dcadd06b2dc9368cde73865f90ea4d44f8b57d47ef0820a -a 1ec454734dcbf6fe54901ce25c0c7c6bca5edd89443416761fadc321d38df139

./c_relay_pg_static_x86_64 -p 7889 --debug-level=5 -r 85d0b37e2ae822966dcadd06b2dc9368cde73865f90ea4d44f8b57d47ef0820a -a 1ec454734dcbf6fe54901ce25c0c7c6bca5edd89443416761fadc321d38df139


sudo ufw allow 8888/tcp
sudo ufw delete allow 8888/tcp

lsof -i :7777
kill $(lsof -t -i :7777)
kill -9 $(lsof -t -i :7777)

