sstsimulator / sst-core

SST Structural Simulation Toolkit Parallel Discrete Event Core and Services
http://www.sst-simulator.org
Other
129 stars 88 forks source link

-output-prefix-core="@t" causes a segment violation #884

Open pdbj opened 1 year ago

pdbj commented 1 year ago

New Issue for sst-core

1 - Detailed description of problem or enhancement

$ sst ... --verbose --output-prefix-core=" foo @t"
...
SSTPythonModel: Construction of config graph with Python is complete.
terminate called after throwing an instance of 'std::out_of_range'
  what():  _Map_base::at
[node0:mpi_rank_0][error_sighandler] Caught error: Aborted (signal 6)
Aborted

2 - Describe how to reproduce the issue

Add this to any otherwise working invocation: --output-prefix-core=" foo @t"

It doesn't seem to matter where the @t is placed.

3 - What Operating system(s) and versions NA

4 - What version of external libraries (Boost, MPI) NA

5 - Provide sha1 of all relevant sst repositories (sst-core, sst-elements, etc) Current devel@427a1425

6 - Fill out Labels, Milestones, and Assignee fields as best possible

feldergast commented 1 year ago

Hmmm. This happens when you use @t in calls to output that happen before a simulation object is created (i.e., there is not yet any time available). I'll have to figure out how to special case this or change all the calls before time exists to ignore the prefix.

pdbj commented 1 year ago

It works in my Components during the constructors, but I see that they print 0 for the time.

Better IMO to ignore the @t, or print 0, rather than ignore the user-supplied prefix entirely.

I notice that not all verbose output uses the prefix (either default or user-supplied): SSTPythonModel: in the above snippet.

feldergast commented 1 year ago

Yea, the prefix only applies to the core’s Output object. Any other object can set their own prefix.

pdbj commented 1 year ago

That didn't come from my Python, but from the SST Python model parser. As a user I would consider that as part of the core...

jwilso commented 6 months ago

@pdbj Is this still an issue?

feldergast commented 6 months ago

Just looked at the Output code and this is still an issue. I can change it such that it will print a dash (-) for @t if it's called before a simulation object exists.