You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using NEURON for API development, we encountered an issue where nrn_dll_loaded remains empty even after mechanisms are loaded automatically. This discrepancy leads to a situation where the load_mechanisms function is unable to accurately determine if mechanisms have been loaded, resulting in a segmentation fault when attempting to load mechanisms that are already present. Additionally, the load_mechanisms function does not account for canonical vs. non-canonical path forms, causing further issues when paths provided are relative or symbolic links.
Expected result/behavior
The expected behavior is for nrn_dll_loaded to be accurately updated upon the automatic loading of mechanisms, allowing the load_mechanisms function to correctly identify already loaded mechanisms and prevent attempts to reload them, thus avoiding segmentation faults. Furthermore, the load_mechanisms function should convert provided paths to their canonical form before checking against already loaded paths to ensure reliability and prevent errors due to path discrepancies.
NEURON setup
Version: 8.2.4 and 8.2.3 and possibly the older versions as well
Installation method: pip
OS + Version: OS-agnostic
Compiler + Version: Compiler-agnostic
Minimal working example - MWE
To reproduce the issue regarding nrn_dll_loaded being empty and segmentation fault on mechanism reload:
nrn_dll_loaded is empty although the mechanisms are loaded:
fromneuronimporth, load_mechanisms, nrn_dll_loadedprint(nrn_dll_loaded) # Expected to show loaded mechanisms, but shows []
Context
Overview of the issue
When using NEURON for API development, we encountered an issue where
nrn_dll_loaded
remains empty even after mechanisms are loaded automatically. This discrepancy leads to a situation where theload_mechanisms
function is unable to accurately determine if mechanisms have been loaded, resulting in a segmentation fault when attempting to load mechanisms that are already present. Additionally, theload_mechanisms
function does not account for canonical vs. non-canonical path forms, causing further issues when paths provided are relative or symbolic links.Expected result/behavior
The expected behavior is for
nrn_dll_loaded
to be accurately updated upon the automatic loading of mechanisms, allowing theload_mechanisms
function to correctly identify already loaded mechanisms and prevent attempts to reload them, thus avoiding segmentation faults. Furthermore, theload_mechanisms
function should convert provided paths to their canonical form before checking against already loaded paths to ensure reliability and prevent errors due to path discrepancies.NEURON setup
Minimal working example - MWE
To reproduce the issue regarding
nrn_dll_loaded
being empty and segmentation fault on mechanism reload:nrn_dll_loaded
is empty although the mechanisms are loaded:The text was updated successfully, but these errors were encountered: