Skip to content

Fix compile error on Linux#4

Merged
chenfucn merged 1 commit intochenfucn:cfu_i4from
yihonglyu:yilyu/linux_fix
Jun 13, 2023
Merged

Fix compile error on Linux#4
chenfucn merged 1 commit intochenfucn:cfu_i4from
yihonglyu:yilyu/linux_fix

Conversation

@yihonglyu
Copy link

Description

Motivation and Context

@chenfucn chenfucn merged commit aadb520 into chenfucn:cfu_i4 Jun 13, 2023
chenfucn pushed a commit that referenced this pull request Aug 29, 2023
### Description
Release OrtEnv before main function returns. Before this change, OrtEnv
is deleted when C/C++ runtime destructs all global variables in ONNX
Runtime's core framework.
The callstack is like this:
```
  * frame #0: 0x00007fffee39f5a6 libonnxruntime.so.1.16.0`onnxruntime::Environment::~Environment(this=0x00007fffee39fbf2) at environment.h:20:7
    frame #1: 0x00007fffee39f614 libonnxruntime.so.1.16.0`std::default_delete<onnxruntime::Environment>::operator()(this=0x00007ffff4c30e50, __ptr=0x0000000005404b00) const at unique_ptr.h:85:2
    frame #2: 0x00007fffee39edca libonnxruntime.so.1.16.0`std::unique_ptr<onnxruntime::Environment, std::default_delete<onnxruntime::Environment>>::~unique_ptr(this=0x5404b00) at unique_ptr.h:361:17
    frame #3: 0x00007fffee39e2ab libonnxruntime.so.1.16.0`OrtEnv::~OrtEnv(this=0x00007ffff4c30e50) at ort_env.cc:43:1
    frame #4: 0x00007fffee39fa96 libonnxruntime.so.1.16.0`std::default_delete<OrtEnv>::operator()(this=0x00007fffefff8f78, __ptr=0x00007ffff4c30e50) const at unique_ptr.h:85:2
    frame microsoft#5: 0x00007fffee39f394 libonnxruntime.so.1.16.0`std::unique_ptr<OrtEnv, std::default_delete<OrtEnv>>::~unique_ptr(this=0x7ffff4c30e50) at unique_ptr.h:361:17
    frame microsoft#6: 0x00007ffff78574b5 libc.so.6`__run_exit_handlers + 261
    frame microsoft#7: 0x00007ffff7857630 libc.so.6`exit + 32
    frame microsoft#8: 0x00007ffff783feb7 libc.so.6`__libc_start_call_main + 135
    frame microsoft#9: 0x00007ffff783ff60 libc.so.6`__libc_start_main@@GLIBC_2.34 + 128
    frame microsoft#10: 0x0000000000abbdee node`_start + 46
```
After this change, OrtEnv will be deleted before the main function
returns and nodejs is still alive.
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.

2 participants