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

2056: fix compilation with fcontext enabled #2057

Merged
merged 2 commits into from
Jan 10, 2023

Conversation

cz4rs
Copy link
Contributor

@cz4rs cz4rs commented Dec 28, 2022

fixes #2056

  • fix typos in the test
  • enable fcontext in a selected build

@PhilMiller
Copy link
Member

Thanks!

@codecov
Copy link

codecov bot commented Dec 28, 2022

Codecov Report

Merging #2057 (fdfd08d) into develop (8925637) will not change coverage.
The diff coverage is n/a.

❗ Current head fdfd08d differs from pull request most recent head beb7755. Consider uploading reports for the commit beb7755 to get more accurate results

Impacted file tree graph

@@           Coverage Diff            @@
##           develop    #2057   +/-   ##
========================================
  Coverage    84.43%   84.43%           
========================================
  Files          729      729           
  Lines        25846    25846           
========================================
  Hits         21824    21824           
  Misses        4022     4022           
Impacted Files Coverage Δ
src/vt/phase/phase_manager.cc 91.21% <0.00%> (ø)

@cz4rs cz4rs marked this pull request as draft December 28, 2022 22:57
@cz4rs
Copy link
Contributor Author

cz4rs commented Dec 28, 2022

From a local run:

[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from TestAsyncOpThreads
[ RUN      ] TestAsyncOpThreads.test_async_op_threads_invoke_2
vt: Version: 1.2.2
vt: Runtime Initializing: interop=true: mode: single-thread per rank
vt: Program: active_basic (./active_basic)
vt: Running on: 8 nodes
vt: Machine Hostname: rysy
vt: MPI Version: 4.0
vt: MPI Max tag: 268435455
vt: Build SHA: 8925637c21e086108ce240a5ed885883078b481a
vt: Build Ref: refs/heads/develop
vt: Description: heads/develop-0-g8925637c21 
vt: Compile-time Features Enabled:
vt:     Tracing Projections
vt:     Load Balancing for Collections
vt:     User-level threading with fcontext
vt:     Memory Pooling
vt:     MPI access guards
vt:     Performance analysis diagnostics
vt: Runtime Configuration:
vt:     Option: flag --vt_sched_num_progress on: Running MPI progress 2 times each invocation
vt:     Option: flag --vt_sched_progress_han on: Running MPI progress function at least every 0 handler(s) executed
vt:     Option: flag --vt_lb_statistics on: Load balancing statistics file dumping
vt:     Option: flag --vt_lb_statistics_compress on: Compressing LB statistics files
vt:     Option: flag --vt_lb_statistics_file on: LB statistics file name "vt_lb_statistics.%t.json"
vt:     Option: flag --vt_trace on: Tracing enabled
vt:     Default: Trace file "/home/cz4rs/code/vt/build/tests/active_basic_trace/active_basic.0.log.gz", use --vt_trace_file to disable
vt:     Default: Trace directory "/home/cz4rs/code/vt/build/tests/active_basic_trace/", use --vt_trace_dir to disable
vt:     Default: Flushing traces at end of run, use --vt_trace_flush_size to disable
vt:     Option: flag --vt_print_no_progress on: Printing warnings when progress is stalls
vt:     Default: Printing verbose epoch graphs when hang detected, use --vt_epoch_graph_terse to disable
vt:     Option: flag --vt_epoch_graph_on_hang on: Epoch graph output enabled if hang detected
vt:     Default: Termination hang detection enabled by default, use --vt_no_detect_hang to disable
vt:     Option: flag --vt_hang_detect on: Printing stall warning every 1024 tree traversals 
vt:     Default: SIGINT signal handling enabled by default, use --vt_no_SIGINT to disable
vt:     Default: SIGSEGV signal handling enabled by default, use --vt_no_SIGSEGV to disable
vt:     Default: SIGBUS signal handling enabled by default, use --vt_no_SIGBUS to disable
vt:     Default: std::terminate signal handling enabled by default, use --vt_no_terminate to disable
vt:     Default: Color output enabled, use --vt_no_color to disable
vt:     Default: Stack dumps enabled by default, use --vt_no_stack to disable
vt:     Option: flag --vt_memory_reporters on: Memory usage checker precedence: mstats,machinfo,selfstat,selfstatm,sbrk,mallinfo,getrusage,ps
vt:     Working memory reporters: selfstatm,sbrk,mallinfo,getrusage
vt:     Initial memory usage: selfstatm=27.9141 sbrk=2.02734 mallinfo=0.949478 getrusage=27.9141 (MiB)
vt:     Default: Memory usage printing disabled, use --vt_print_memory_each_phase to enable
vt:     Default: Diagnostics are disabled by default, use --vt_diag_enable to enable
vt:     Option: flag --vt_ult_disable not set: Handlers running in user-level threads are enabled
vt:     Option: flag --vt_ult_stack_size on: User-level stack size is 1.99993896484375 MiB
vt:     Option: flag --vt_max_mpi_send_size on: Splitting messages greater than 1 GiB
vt:     Option: flag --vt_debug_level on: Debug print mode set to terse
vt: Pass-through Arguments:
vt:     None. All arguments handled.
vt: [0] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [1] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [3] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [4] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [7] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [2] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [6] (t) general: call blockOnAsyncOp(op1) inside invoke
vt: [1] ------------------------------------------------------------------------------------------------------------------------
vt: [1] ------------------------------------------- Runtime Error: System Aborting! --------------------------------------------
vt: [1] ------------------------------------------------ Fatal Error on Node 1 -------------------------------------------------
vt: [1] ------------------------------------------------------------------------------------------------------------------------
vt: [1] 
vt: [1]              Reason: Event being closed must be on the top of the open event stack.
vt: [1]    Assertion failed: (not open_events_.empty() and open_events_.back().ep == ep and open_events_.back().event == event)
vt: [1]                Node: 1
vt: [1]           Num Nodes: 8
vt: [1]                File: /home/cz4rs/code/vt/src/vt/trace/trace.cc
vt: [1]                Line: 404
vt: [1]            Function: endProcessing
vt: [1]                Code: 1
vt: [1]           Build SHA: 8925637c21e086108ce240a5ed885883078b481a
vt: [1]           Build Ref: refs/heads/develop
vt: [1]         Description: heads/develop-0-g8925637c21
vt: [1]            GIT Repo: clean
vt: [1]            Hostname: rysy
vt: [1] 
vt: [2] ------------------------------------------------------------------------------------------------------------------------
vt: [2] ------------------------------------------- Runtime Error: System Aborting! --------------------------------------------
vt: [2] ------------------------------------------------ Fatal Error on Node 2 -------------------------------------------------
vt: [2] ------------------------------------------------------------------------------------------------------------------------
vt: [2] 
vt: [2]              Reason: Event being closed must be on the top of the open event stack.
vt: [2]    Assertion failed: (not open_events_.empty() and open_events_.back().ep == ep and open_events_.back().event == event)
vt: [2]                Node: 2
vt: [2]           Num Nodes: 8
vt: [2]                File: /home/cz4rs/code/vt/src/vt/trace/trace.cc
vt: [2]                Line: 404
vt: [2]            Function: endProcessing
vt: [2]                Code: 1
vt: [2]           Build SHA: 8925637c21e086108ce240a5ed885883078b481a
vt: [2]           Build Ref: refs/heads/develop
vt: [2]         Description: heads/develop-0-g8925637c21
vt: [2]            GIT Repo: clean
vt: [2]            Hostname: rysy
vt: [2] 
vt: [3] ------------------------------------------------------------------------------------------------------------------------
vt: [3] ------------------------------------------- Runtime Error: System Aborting! --------------------------------------------
vt: [3] ------------------------------------------------ Fatal Error on Node 3 -------------------------------------------------
vt: [3] ------------------------------------------------------------------------------------------------------------------------
vt: [3] 
vt: [3]              Reason: Event being closed must be on the top of the open event stack.
vt: [3]    Assertion failed: (not open_events_.empty() and open_events_.back().ep == ep and open_events_.back().event == event)
vt: [3]                Node: 3
vt: [3]           Num Nodes: 8
vt: [3]                File: /home/cz4rs/code/vt/src/vt/trace/trace.cc
vt: [3]                Line: 404
vt: [3]            Function: endProcessing
vt: [3]                Code: 1
vt: [3]           Build SHA: 8925637c21e086108ce240a5ed885883078b481a
vt: [3]           Build Ref: refs/heads/develop
vt: [3]         Description: heads/develop-0-g8925637c21
vt: [3]            GIT Repo: clean
vt: [3]            Hostname: rysy

@cz4rs
Copy link
Contributor Author

cz4rs commented Dec 28, 2022

Note: the above failure occurs with vt_fcontext and vt_trace enabled. When I disable vt_trace, the test passes.

@cz4rs cz4rs marked this pull request as ready for review December 29, 2022 14:56
@cz4rs cz4rs force-pushed the 2056-fix-fcontext-compilation branch 2 times, most recently from e00a312 to fdfd08d Compare December 29, 2022 16:06
@cz4rs
Copy link
Contributor Author

cz4rs commented Dec 29, 2022

Test failure reproduced with fdfd08d (VT_TRACE and VT_TRACE_RT enabled).

@lifflander
Copy link
Collaborator

There's some substantial re-engineering of ctx::Trace that needs to be done to fix this problem because a context in the middle of the stack can be suspended that then needs to be restored.

@cz4rs
Copy link
Contributor Author

cz4rs commented Jan 10, 2023

After discussion during DARMA weekly: this only fixes the configuration without tracing enabled. Follow-up in #2061.

@PhilMiller PhilMiller merged commit d0b2408 into develop Jan 10, 2023
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

Successfully merging this pull request may close these issues.

vt doesn't build with fcontext enabled
3 participants