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

Fix ctypes DTraceConsumerThread to also call dtrace_close #7

Merged
merged 1 commit into from
Nov 16, 2017

Conversation

jrtc27
Copy link
Contributor

@jrtc27 jrtc27 commented Nov 7, 2017

The ctypes DTraceConsumerThread does not currently call dtrace_close on its handle, so it gets leaked. This copies to destructor from DTraceConsumer.

@tmetsch
Copy link
Owner

tmetsch commented Nov 13, 2017

Thanks a million - drinks on me when we meet :-)

@tmetsch tmetsch closed this Nov 13, 2017
@jrtc27
Copy link
Contributor Author

jrtc27 commented Nov 13, 2017

Ha, well, this only fixes the less-popular ctypes version; #8 still stands for the Cython version, and I haven't yet had a chance to try fixing it.

@jrtc27
Copy link
Contributor Author

jrtc27 commented Nov 16, 2017

You only closed this, rather than merging; was that intentional?

@tmetsch tmetsch reopened this Nov 16, 2017
@tmetsch tmetsch merged commit 97bcbd1 into tmetsch:master Nov 16, 2017
@tmetsch
Copy link
Owner

tmetsch commented Nov 16, 2017

It was not intentional! sry.

arichardson added a commit to arichardson/l41-python-dtrace that referenced this pull request Dec 29, 2020
Buffered output hanlding appears to be broken on macOS. The -B flag is
disabled in dtrace.c ()
and compiling dtrace.c with that flag enabled results in the same crash
that I see with python-dtrace:
```
* thread tmetsch#1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x7fb100000000)
  * frame #0: 0x00007fff6f83de52 libsystem_platform.dylib`_platform_strlen + 18
    frame tmetsch#1: 0x00007fff6f6d9891 libsystem_c.dylib`__vfprintf + 5379
    frame tmetsch#2: 0x00007fff6f6ffad3 libsystem_c.dylib`__v2printf + 475
    frame tmetsch#3: 0x00007fff6f6e5ee7 libsystem_c.dylib`_vsnprintf + 417
    frame tmetsch#4: 0x00007fff6f6e5f90 libsystem_c.dylib`vsnprintf + 68
    frame tmetsch#5: 0x00007fff6d3650e3 libdtrace.dylib`dt_printf + 524
    frame tmetsch#6: 0x00007fff6d33da7f libdtrace.dylib`dt_consume_cpu + 2536
    frame tmetsch#7: 0x00007fff6d33c9e0 libdtrace.dylib`dtrace_consume + 1090
    frame tmetsch#8: 0x00007fff6d366534 libdtrace.dylib`dtrace_work + 116
    frame tmetsch#9: 0x000000010d6be9ff dtrace2`main(argc=4, argv=0x00007ffee2547250) at dtrace2.c:1834:17
    frame tmetsch#10: 0x00007fff6f647cc9 libdyld.dylib`start + 1
```

To work around this crash, output to stderr for now.
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