Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using _new_property in Izhikevich NEURON model causes apparent buffer overrun in NEURON #361

Open
tclose opened this issue Mar 11, 2015 · 2 comments
Milestone

Comments

@tclose
Copy link

tclose commented Mar 11, 2015

This is related to the reason that the first parameter of the Izhikevich model needed to be renamed to 'a_' to avoid the NameError: a, the mechanism does not exist at PySec_0x*(0.5) mentioned in the comments. While this work-around may be sufficient for the PyNN implementation, it appears quite fragile. As if you use the Izhikevich model outside of PyNN import mechanisms from another folder as well you can run into the same problem with the 'b' parameter.

I have filed a bug on the NEURON forum about it here, so perhaps Michael will be able to sort it out. But in the mean time, maybe all the parameters should be named 'b_', 'c_', 'd_' as this would also be more consistent.

@tclose
Copy link
Author

tclose commented Mar 17, 2015

Michael found the bug that was causing this and has fixed it in the trunk,

Thanks. The bug is fixed in
http://neuron.yale.edu/hg/neuron/nrn/rev/ec1b0af97c71
The bug occurred for the combination of nrn_load_dll that loads a POINT_PROCESS and a subclass of nrn.Section that sets a name that is the same as a range variable declared in that POINT_PROCESS. The actual error is that those point process range variable names were being added to the list of possible SUFFIX mechanism range variable names.
ALthough there were some quite bizarre consequences of this bug that are not entirely understood, I don't think it is worth trying for a thorough understanding of exactly why things
went wrong after the bug was activated (ie. why there was no error if the two load_mechanism lines were reversed..)
Anyway, it would also be an error if you tried to declare gnabar_hh (or any other density mechanism range variable name) in a subclass of a Section. Those names can only be
used if the appropriate mechanism name is inserted.

so after the next NEURON release a_ could probably be renamed back to a and the warning about using the nmodl file outside of PyNN removed

@apdavison apdavison modified the milestones: 0.8.0, 0.8.1 Jul 6, 2015
@apdavison apdavison modified the milestones: future, 0.8.1 Jan 6, 2016
@apdavison apdavison modified the milestones: 0.8.2, future Jun 3, 2016
@apdavison
Copy link
Member

@tclose can we close this ticket? If the problem still occurs, can you provide a minimal script which triggers the buffer overrun?

@apdavison apdavison modified the milestones: 0.8.2, 0.8.3 Dec 2, 2016
@apdavison apdavison modified the milestones: 0.8.3, 0.8.4 Mar 9, 2017
@apdavison apdavison modified the milestones: 0.9.0, 0.9.1 Apr 11, 2017
@apdavison apdavison modified the milestones: 0.9.1, future Jun 1, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants