-
Notifications
You must be signed in to change notification settings - Fork 440
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
freeBSD 12.2-RELEASE not working #431
Comments
We do test every commit with freebsd using cirrusci - including the rust integration tests which test py-spy profiling the system python. https://cirrus-ci.com/task/5989956297424896 . @akhramov do you have any ideas here? |
Judging by the log output, there might be something off with virtual maps routines. I don't have 12.2 at hand (using 13.0 here), will install it a little bit later. @yocalebo can you share the output of following (3928 is the id of the interpreter)?
|
@akhramov This is from a stock 12.2 release system.
|
@yocalebo thanks, much appreciated. I got a fresh vanilla 12.2-RELEASE box, but I don't observe the same error. In fact, it fails much earlier.
@benfred do you know why exactly should we do this subtraction? If I set offset to Line 104 in 98795f0
upd upd |
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job.
Well, nvm. It seems like there are two distinct problems. #433 addresses one of them. Regarding this particular issue, it seems like py-spy fails to fetch proc-maps properly. I'd wait for rbspy/proc-maps#11 and then ask @yocalebo to run the example. |
@akhramov I saw your example and tried it out on a python interpreter session. The
|
@akhramov I also went ahead and applied your patch here. It seems to have gotten a little further than last time, but ultimately still fails. Attaching rust log debug output.
|
Oh, that's perfect. There's definitely something off with our proc maps routines. As you see, the filenames are corrupted for some reason. Given the bug is reproducible on several machines, let me make a wild guess. What's your locale? Or may be there is something wrong with the memory layout of the ptrace struct :( |
Locale is the following:
|
@yocalebo hey, can you please run the examples from the latest proc-maps master? 🙏 |
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job.
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job.
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job.
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
Okay I built Here is the output from py-spy using latest master and latest proc_map:
Here is the output from compiling my own little rust program using the example
|
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
An Elf segment may have a non-zero offset and that may result in subtraction overflow when we calculating the symbol addresses. Apart from that, CI workflows are run within GH Actions with FreeBSD being notable exception. While FreeBSD is not supported on actions, the conventional workaround is to run builds on macos runner using a vagrant box. This change - Handles the subtraction overflow case by defaulting to zero. - removes cirrus config and sets up a FreeBSD GH action job. - Also bumps proc-maps version in attempt to resolve benfred#431
Even though it seems there is logic to push a freeBSD binary to the releases page, there doesn't seem to be one there. (Unless I'm just missing it).
However, running a stock 12.2 release system
FreeBSD fbsd12.2-build 12.2-RELEASE FreeBSD 12.2-RELEASE r366954 GENERIC amd64
, I downloaded the latest py-spy source (3.8 at time of writing) and compiled without any problems. However, if I run the program I get this:I'm just starting a standard interpreter session, nothing fancy.
I also tried on another freebsd machine
12.2-RELEASE-p6
trying to profile a complex long-running python program (versionpython 3.9.5
) and get this insteadNot sure if I'm doing something wrong, but seems like all documentation points to freeBSD being supported so I'm assuming the issue is me 😄
The text was updated successfully, but these errors were encountered: