campreilly / UnderSeaModelingLibrary

The Under Sea Modeling Library (USML) is a collection of C++ software development modules for sonar modeling and simulation.
Other
45 stars 22 forks source link

Crash occurs in eigenray_test/eigenray_basic stating that "NetCDF: Variable not found" #145

Closed Tibonium closed 9 years ago

Tibonium commented 9 years ago

When the usml_test suite is run, a crash occurs in eigenray_test/eigenray_basic stating that "NetCDF: Variable not found", this error goes away if the eigenray_test suite is run on its own. However, in conjunction with all the other tests, it crashes. This error appeared within the old fathometers branch and not in the master branch at that time.

campreilly commented 9 years ago

When running in Windows using Debug. Linux seems fine.

campreilly commented 9 years ago

Were you seeing errors like this?

=== reflection_test: reflect_grid_test ===
load bathymetry
writting tables to /home/sreilly/Projects/usml/waveq3d/test/reflect_grid_test.csv
time step = 0.1 secs
Check failed in file /usr/local/distrib/boost_1_57_0/boost/numeric/ublas/storage.hpp at line 195:
i < size_
unknown location(0): fatal error in "reflect_grid_test": std::out_of_range: bad index
/home/sreilly/Projects/usml/waveq3d/test/eigenray_test.cc(579): last checkpoint

Note that this error may be unique to the eigenverb_width branch.

campreilly commented 9 years ago

False alarm - The reflection_test: reflect_grid_test error seems to just be a problem on my eigenverb_width branch.

islanderjtn commented 9 years ago

Added static method to thread_task::num_active. The num_active method will return the number of active tasks in the thread_pool. This was required so each test in the usml_test did not interfere with subsequent test. The num_active method in a while loop effectively waits till all tasks have completed when in the thread_pool. Added static reset method to all singletons that sets the _instance member to empty or NULL. This resolves #145 in which the usml_test was crashing.