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

Segfault when using references in thread #306

Open
realFlowControl opened this issue Jun 16, 2024 · 2 comments
Open

Segfault when using references in thread #306

realFlowControl opened this issue Jun 16, 2024 · 2 comments
Assignees

Comments

@realFlowControl
Copy link
Collaborator

Running code that uses a reference to an element in an array in a thread segfaults with the following backtrace:

    frame #0: 0x000000018f386a60 libsystem_kernel.dylib`__pthread_kill   8
    frame #1: 0x000000018f3bec20 libsystem_pthread.dylib`pthread_kill   288
    frame #2: 0x000000018f2cba30 libsystem_c.dylib`abort   180
    frame #3: 0x000000010036c32c php`zend_mm_panic   52
    frame #4: 0x000000010036e930 php`_efree_32   120
    frame #5: 0x00000001003ea2f0 php`ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER   288
    frame #6: 0x00000001003cdc38 php`execute_ex   172
    frame #7: 0x000000010104d03c parallel.so`php_parallel_scheduler_run(runtime=<unavailable>, frame=0x0000000102413020) at scheduler.c:331:13 [opt]
    frame #8: 0x000000010104c62c parallel.so`php_parallel_thread(arg=0x000000010125f3c0) at scheduler.c:501:9 [opt]
    frame #9: 0x000000018f3bef94 libsystem_pthread.dylib`_pthread_start   136

You can reproduce using https://github.com/realFlowControl/1brc/blob/main/calculateAverage.php, the opline points to line 77 (where the array is accessed). If I comment the entire if-block, it segfaults in line 86 in the else-block.

It started with 32cd9c3 and the change that leads to this is this line:

GC_SET_REFCOUNT(ht, 1);

Setting this back to 2 will fix the segfault, but lead to ASAN tests failing ;-)

I sadly have no idea what is going on :-(

@hschimpf
Copy link

hschimpf commented Jul 9, 2024

Hi @realFlowControl!

Does this happen on any PHP version?

@realFlowControl
Copy link
Collaborator Author

So far this issue is in the develop branch and the changes that lead to that are not yet released (that's why i'm withholding new minor releases). So it should not be related to hschimpf/parallel-sdk#26

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

No branches or pull requests

3 participants