Skip to content

Fix ctypes DTraceConsumerThread to also call dtrace_close#7

Merged
tmetsch merged 1 commit intotmetsch:masterfrom
jrtc27:leak
Nov 16, 2017
Merged

Fix ctypes DTraceConsumerThread to also call dtrace_close#7
tmetsch merged 1 commit intotmetsch:masterfrom
jrtc27:leak

Conversation

@jrtc27
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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