Curl Errors out for nexus users when Curl updates, affects cron and ssl auto renewels

When curl updates (I am assuming when this is what triggers the issue), I get the following error from curl: [nexususer@server.tld ~]$ curl --version curl: symbol lookup error: curl: undefined symbol: curl_easy_ssls_export ,

To fix this issue, I have to remove ssh from the nexus account and re-add it via the gui. When this happens, SSL certificates also do no renew. The issue is that I have to do it for all accounts manually.

I have tried echo 2 > /proc/sys/vm/drop_caches and echo 3 > /proc/sys/vm/drop_caches
but that does not help along with systemctl reload fsmount as well as ldconfig.

Curl for root user is not effected.

Bug Report Template

Description

When curl updates, it breaks curl for all nexus users. Please note that I am assuming that the update is causing this since

Steps to Reproduce

Please provide detailed steps to reproduce the bug. Include any necessary code snippets, commands, or configuration files.

  1. I caught the issue when my cron stops working and my ssl certs were not auto-renewing. SSL certs do renew if I run them manually from the nexus gui to renew

Expected Behavior

Describe what you expected to happen when the bug occurred.

Curl and cron working without needing to do the workaround .

Actual Behavior

Describe what actually happened when the bug occurred.

Described above.

Environment

ApisCP version: cpcmd misc:cp-version
Operating System: uname -r

cpcmd misc:cp-version
revision: 4a49072c7df6ea8216258c5f8809f15a4aea4e76
timestamp: 1765698080
ver_maj: 3
ver_min: 2
ver_patch: 48
ver_pre: 35-g4a49072c7
dirty: false
debug: false

uname -r
6.12.0-55.29.1.el10_0.x86_64

Running on RockyLinux 10.

Additional relevant information (e.g., PHP version, database, etc.):

Additional Information

Provide any additional information about the bug, such as error messages, logs, screenshots, or any other relevant details.

This works only if all references to the stale file descriptor have been removed from active process space. When a process loads a library persistently into memory, this descriptor is held open until the process exits. With most updates, we have three potential outcomes:

  • Library is loaded upon demand, update applies without issue
  • Library remains in memory,it’s nonconsequential
  • Library remains in memory, it’s consequential because either the ABI has changed significantly (!) or it’s a security vector

libcurl, in this context, is the third point.

Reboot is the quickest way to resolve this. Alternatively, you can do a deep scan of the OS to kill (and freeze) any processes holding onto the old file handle to avoid a reboot. misc:release-fsghost takes a single argument, file path - e.g. /home/virtual/FILESYSTEMTEMPLATE/siteinfo/usr/lib64/libcurl.so.old.version but this runs in exponential runtime.

Thanks , running:

cpcmd misc:release-fsghost /usr/lib64/libcurl.so.4

solved the issue.