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

test_connect_after_simulate.sli fails with assertion 'source_lid < MAX_LID' when compiled with boost=ON in NEST 2.18.0 #1239

Closed
niltonlk opened this issue Jun 28, 2019 · 10 comments · Fixed by #1502 or #1477
Assignees
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: High Should be handled next T: Bug Wrong statements in the code or documentation
Milestone

Comments

@niltonlk
Copy link
Contributor

After successfully building with boost=ON by explicitly specifying the boost include path (see #1238)

make installcheck fails with:

<NEST_SOURCE_DIR>/nestkernel/target_data.h:264: void nest::TargetData::set_source_lid(unsigned long): Assertion 'source_lid < MAX_LID' failed.

when executing:

mpirun -np 1 <NEST_INSTALL_PATH>/bin/nest <NEST_INSTALL_PATH>/share/doc/nest/unittests/test_connect_after_simulate.sli

Note:
All installcheck pass when configured without boost

@niltonlk niltonlk changed the title test_connect_after_simulate.sli fails with assertion 'source_lid < MAX_LID' when compiled with boost=ON test_connect_after_simulate.sli fails with assertion 'source_lid < MAX_LID' when compiled with boost=ON in NEST 2.18.0 Jun 28, 2019
@terhorstd terhorstd added ZC: Infrastructure DO NOT USE THIS LABEL I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) ZP: Pending DO NOT USE THIS LABEL S: High Should be handled next T: Bug Wrong statements in the code or documentation labels Jul 8, 2019
@terhorstd
Copy link
Contributor

This should definitely be covered by the travis testing.

@niltonlk
Copy link
Contributor Author

niltonlk commented Mar 3, 2020

Dear all,

I have also tested this in the master branch, and the error persists. Apparently, there are many other errors, so I am attaching the logs and describing the system configuration. (Something I should have done before).

Configuration:
OS: CentOS 7.6
Compiler: GCC 8.3.0
MPI: OpenMPI 3.1.4
GSL: 2.6
Python: 3.6.6
CMake: 3.15.4
Boost: 1.71.0

cmake command:
cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/ohpc/pub/libs/gnu8/openmpi3/nest/3.0-dev -Dwith-mpi=ON -Dwith-python=3 -DPYTHON_EXECUTABLE=which python3.6 -DNOSETESTS=which nosetests -DCYTHON_EXECUTABLE=which cython -Dwith-boost=ON ../nest-master-niltonlk

I attach the reports directory as tar.gz:
reports.tar.gz

@niltonlk
Copy link
Contributor Author

niltonlk commented Mar 5, 2020

Digging a little on the error message, one of the cases where this error was seen is
on line 70 of test_connect_after_simulate.sli code:

/connections_before << >> GetConnections def

This is the second time GetConnections is called, and I remember seen some related comment on the nest users mailing list by Håkon Mørk on Feb 28, 2020, 9:10 AM.

With NEST 2.16 and onward, connection infrastructure requires connections to be sorted. Sorting is triggered when calling for example Simulate() or GetConnections(). Therefore, if you have stored your connections with GetConnections(), then create more connections, and the connections are sorted again (e.g. calling GetConnections(), then Connect(), then GetConnections() again), the connections you have stored are no longer valid.

Could this error be somehow related to that?

Have not looked any further, but just sharing info so that if someone has any clues could also help.

@hakonsbm
Copy link
Contributor

hakonsbm commented Mar 6, 2020

@niltonlk Unfortunately I can't seem to be able to reproduce your error. My guess is that it could be an installation problem with CMake still not setting the Boost paths correctly, or a problem with the Boost installation.

The comment on the mailing list is not relevant to this issue however. Calling GetConnections both before and after connecting is only a problem when using the stored connection handles after connecting the second time.

@niltonlk
Copy link
Contributor Author

This problem seems to appear with BOOST >= 1.69.0.
I have tested using BOOST from 1.71.0 down to 1.68.0 where the error did not show up.
It may sound a BOOST issue, but adapting the NEST code to newer versions of BOOST may be of future interest.

@heplesser
Copy link
Contributor

Ah, library dependencies ... This may force a decision on how to handle this, if we need to support different Boost versions. @hakonsbm Could you investigate?

@ikitayama
Copy link

ikitayama commented Mar 13, 2020 via email

@niltonlk
Copy link
Contributor Author

To answer to @ikitayama question, I have just tested and the error still persists with version 1.72.0.

@ikitayama
Copy link

ikitayama commented Mar 16, 2020 via email

@heplesser
Copy link
Contributor

See #1489 for further analysis. Please discuss all further work on this problem there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: High Should be handled next T: Bug Wrong statements in the code or documentation
Projects
Status: Done
5 participants