Commit e6126ee
committed
Fix OWN_GIL safety issues: mutex leak, ABBA deadlock, dangling env
- Fix mutex leak in erlang_module_free: always destroy async_futures_mutex
regardless of pipe_initialized flag since mutex is always initialized
- Fix ABBA deadlock in event_loop_down and event_loop_destructor: acquire
GIL before namespaces_mutex to match normal execution path lock ordering
- Add interp_id validation in owngil_execute_*_with_env functions to detect
env resources from wrong interpreter, preventing dangling pointer access
- Document OWN_GIL callback re-entry limitation: erlang.call() uses
thread_worker_call rather than suspension/resume protocol1 parent 9c5435c commit e6126ee
3 files changed
Lines changed: 120 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1666 | 1666 | | |
1667 | 1667 | | |
1668 | 1668 | | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
1669 | 1676 | | |
1670 | 1677 | | |
1671 | 1678 | | |
| |||
1678 | 1685 | | |
1679 | 1686 | | |
1680 | 1687 | | |
| 1688 | + | |
1681 | 1689 | | |
1682 | 1690 | | |
1683 | 1691 | | |
| |||
2783 | 2791 | | |
2784 | 2792 | | |
2785 | 2793 | | |
2786 | | - | |
2787 | | - | |
2788 | | - | |
2789 | | - | |
| 2794 | + | |
| 2795 | + | |
| 2796 | + | |
2790 | 2797 | | |
2791 | 2798 | | |
2792 | 2799 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
465 | 465 | | |
466 | 466 | | |
467 | 467 | | |
468 | | - | |
469 | | - | |
470 | | - | |
471 | | - | |
472 | | - | |
473 | | - | |
474 | | - | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
481 | 488 | | |
482 | 489 | | |
483 | 490 | | |
484 | | - | |
| 491 | + | |
| 492 | + | |
485 | 493 | | |
486 | | - | |
487 | | - | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
488 | 512 | | |
489 | | - | |
490 | | - | |
491 | 513 | | |
492 | 514 | | |
493 | 515 | | |
| |||
616 | 638 | | |
617 | 639 | | |
618 | 640 | | |
| 641 | + | |
| 642 | + | |
619 | 643 | | |
620 | 644 | | |
621 | 645 | | |
622 | 646 | | |
623 | 647 | | |
624 | 648 | | |
625 | 649 | | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
626 | 680 | | |
627 | 681 | | |
628 | 682 | | |
| |||
632 | 686 | | |
633 | 687 | | |
634 | 688 | | |
635 | | - | |
636 | | - | |
637 | | - | |
638 | | - | |
639 | | - | |
640 | | - | |
641 | | - | |
642 | | - | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
643 | 692 | | |
644 | 693 | | |
645 | 694 | | |
| |||
648 | 697 | | |
649 | 698 | | |
650 | 699 | | |
| 700 | + | |
651 | 701 | | |
652 | 702 | | |
653 | 703 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2775 | 2775 | | |
2776 | 2776 | | |
2777 | 2777 | | |
| 2778 | + | |
| 2779 | + | |
| 2780 | + | |
| 2781 | + | |
| 2782 | + | |
| 2783 | + | |
| 2784 | + | |
| 2785 | + | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
2778 | 2789 | | |
2779 | 2790 | | |
2780 | 2791 | | |
| |||
2841 | 2852 | | |
2842 | 2853 | | |
2843 | 2854 | | |
| 2855 | + | |
| 2856 | + | |
| 2857 | + | |
| 2858 | + | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
| 2864 | + | |
| 2865 | + | |
2844 | 2866 | | |
2845 | 2867 | | |
2846 | 2868 | | |
| |||
2933 | 2955 | | |
2934 | 2956 | | |
2935 | 2957 | | |
| 2958 | + | |
| 2959 | + | |
| 2960 | + | |
| 2961 | + | |
| 2962 | + | |
| 2963 | + | |
| 2964 | + | |
| 2965 | + | |
| 2966 | + | |
| 2967 | + | |
| 2968 | + | |
2936 | 2969 | | |
2937 | 2970 | | |
2938 | 2971 | | |
| |||
0 commit comments