| Summary: | dev-lang/rakudo-2014.10 - src/gc/gc_gms.c:1132: failed assertion 'PObj_constant_TEST(pmc) || (int)POBJ2GEN(pmc) == i' | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Juergen Rose <rose> |
| Component: | [OLD] Development | Assignee: | Patrick Lauer <patrick> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | perl |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
build.log
script to check ram and swap usage |
||
|
Description
Juergen Rose
2014-10-27 18:40:12 UTC
Cannot reproduce (In reply to Patrick Lauer from comment #1) > Cannot reproduce I have five systems, where the error happens and five systems, where I can emerge rakudo-2014.10. The systems, where 'emerge rakudo' fails, have only 4GB RAM. The system, where it works, have 7GB or more. Could there be any relation? (In reply to Juergen Rose from comment #2) > (In reply to Patrick Lauer from comment #1) > > Cannot reproduce > > I have five systems, where the error happens and five systems, where I can > emerge rakudo-2014.10. The systems, where 'emerge rakudo' fails, have only > 4GB RAM. > The system, where it works, have 7GB or more. Could there be any relation? Haha. That does sound a little bit like an out of memory condition triggering - I've noticed rakudo taking a lot to build, but that failure mode is quite strange. Can you try enabling (more) swap and see if that 'fixes' this issue? (In reply to Patrick Lauer from comment #3) > (In reply to Juergen Rose from comment #2) > > (In reply to Patrick Lauer from comment #1) > > > Cannot reproduce > > > > I have five systems, where the error happens and five systems, where I can > > emerge rakudo-2014.10. The systems, where 'emerge rakudo' fails, have only > > 4GB RAM. > > The system, where it works, have 7GB or more. Could there be any relation? > > Haha. That does sound a little bit like an out of memory condition > triggering - I've noticed rakudo taking a lot to build, but that failure > mode is quite strange. Can you try enabling (more) swap and see if that > 'fixes' this issue? I have already 12GB swap. And I have the there is not so much swapping. Parallel to 'emerge rakudo' I run a script, which performes every 500 us: free | tail -n2 ps waux | grep "gnome-shell\|emerge\|java\|perl" | grep -v grep | grep -v check_mem_swap_perl6 The output on a failing system is: Mem: 3986448 1048216 2248628 188 689604 2885592 Swap: 12582908 285348 12297560 root 6974 13.4 18.0 836968 720280 pts/1 S+ 16:55 2:42 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 26208 29.0 3.3 237788 133328 pts/1 Rl+ 17:15 0:00 ./perl6-p --target=pir --output=lib/Pod/To/Text.pm.pir lib/Pod/To/Text.pm Mem: 3986448 1032584 2264276 188 689588 2901304 Swap: 12582908 285348 12297560 root 6974 13.4 18.0 836968 720280 pts/1 S+ 16:55 2:42 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 26208 81.0 5.4 313340 215812 pts/1 Rl+ 17:15 0:00 ./perl6-p --target=pir --output=lib/Pod/To/Text.pm.pir lib/Pod/To/Text.pm Mem: 3986448 821916 2474648 188 689884 3111976 Swap: 12582908 285348 12297560 root 6974 13.4 18.0 836968 720280 pts/1 S+ 16:55 2:42 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo Mem: 3986448 815768 2480088 188 690592 3118080 Swap: 12582908 285348 12297560 root 6974 13.4 18.0 836968 720284 pts/1 S+ 16:55 2:42 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo On a system with 16GB RAM I see: Mem: 16177732 1144096 2546532 1036 12487104 14630464 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo Mem: 16177732 1645632 2045400 1036 12486700 14129332 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 30126 0.0 1.2 306568 208912 pts/1 Rl+ 15:39 0:00 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting portage 30127 0.0 1.2 307484 209492 pts/1 Rl+ 15:39 0:00 ./perl6-p --target=pir --output=lib/Test.pm.pir lib/Test.pm portage 30128 0.0 1.2 303036 205292 pts/1 Rl+ 15:39 0:00 ./perl6-p --target=pir --output=lib/lib.pm6.pir lib/lib.pm6 portage 30129 0.0 1.2 307616 209724 pts/1 Rl+ 15:39 0:00 ./perl6-p --target=pir --output=lib/Pod/To/Text.pm.pir lib/Pod/To/Text.pm Mem: 16177732 1835544 1855236 1036 12486952 13939172 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 30126 102 2.1 439232 340940 pts/1 Rl+ 15:39 0:01 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting portage 30127 103 2.0 434624 336672 pts/1 Rl+ 15:39 0:01 ./perl6-p --target=pir --output=lib/Test.pm.pir lib/Test.pm portage 30129 102 2.0 436540 338724 pts/1 Rl+ 15:39 0:01 ./perl6-p --target=pir --output=lib/Pod/To/Text.pm.pir lib/Pod/To/Text.pm Mem: 16177732 1774080 1916420 1036 12487232 14000728 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 30127 155 2.8 565768 467456 pts/1 Rl+ 15:39 0:01 ./perl6-p --target=pir --output=lib/Test.pm.pir lib/Test.pm portage 30129 155 2.9 570468 472572 pts/1 Rl+ 15:39 0:01 ./perl6-p --target=pir --output=lib/Pod/To/Text.pm.pir lib/Pod/To/Text.pm Mem: 16177732 1850004 1840432 1036 12487296 13924844 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 30127 104 3.1 603560 505364 pts/1 Rl+ 15:39 0:02 ./perl6-p --target=pir --output=lib/Test.pm.pir lib/Test.pm portage 30129 104 3.1 603092 504780 pts/1 Rl+ 15:39 0:02 ./perl6-p --target=pir --output=lib/Pod/To/Text.pm.pir lib/Pod/To/Text.pm Mem: 16177732 1352596 2337940 1036 12487196 14422616 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 30127 130 3.1 603560 506104 pts/1 Rl+ 15:39 0:02 ./perl6-p --target=pir --output=lib/Test.pm.pir lib/Test.pm Mem: 16177732 1396480 2294660 1036 12486592 14379336 Swap: 100663280 29272 100634008 root 20558 2.0 1.7 400796 283948 pts/1 S+ 15:30 0:12 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo portage 30127 105 3.4 660996 563504 pts/1 Rl+ 15:39 0:03 ./perl6-p --target=pir --output=lib/Test.pm.pir lib/Test.pm Created attachment 387746 [details]
script to check ram and swap usage
Is there anybody, who is able to emerge rakudo-2014.10 with 4GB or less RAM?
I modified my script and can now monitor ca. every 50 ms the memory usage. I see that
perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
It seems, that the VSZ and RSS values of perl6-p is increased every 10 ms about 15 MB until VZZ=372 MB and RSZ=274 MB without error. If VSZ is increased to 379 MB and RSS to 282 MB I get the error
src/gc/gc_gms.c:1132: failed assertion 'PObj_constant_TEST(pmc) || (int)POBJ2GEN(pmc) == i'
on systems with 4GB RAM:
Mem: 3986448 1062308 2157428 152 766712 2868316
Swap: 12582908 254260 12328648
portage 26431 92.0 6.0 339156 241652 pts/2 Rl+ 15:50 0:00 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
root 29529 11.6 17.0 791216 678588 pts/2 S+ 15:27 2:41 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1u rakudo
portage 29799 0.0 0.0 4220 1528 pts/2 S+ 15:29 0:00 [dev-lang/rakudo-2014.10] sandbox /usr/lib/portage/python2.7/ebuild.sh compile
portage 29801 0.0 0.1 31432 6480 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 29818 0.0 0.1 31432 5508 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 29823 0.0 0.0 20748 3780 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild-helpers/emake
portage 29825 0.0 0.1 33108 6332 pts/2 S+ 15:29 0:00 make -j1
2014-11-01 15:50:10,56
Mem: 3986448 1078220 2141516 152 766712 2852404
Swap: 12582908 254260 12328648
portage 26431 99.0 6.4 355996 257924 pts/2 Rl+ 15:50 0:00 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
root 29529 11.6 17.0 791216 678588 pts/2 S+ 15:27 2:41 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1u rakudo
portage 29799 0.0 0.0 4220 1528 pts/2 S+ 15:29 0:00 [dev-lang/rakudo-2014.10] sandbox /usr/lib/portage/python2.7/ebuild.sh compile
portage 29801 0.0 0.1 31432 6480 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 29818 0.0 0.1 31432 5508 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 29823 0.0 0.0 20748 3780 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild-helpers/emake
portage 29825 0.0 0.1 33108 6332 pts/2 S+ 15:29 0:00 make -j1
2014-11-01 15:50:10,63
Mem: 3986448 1094048 2125688 152 766712 2836576
Swap: 12582908 254260 12328648
portage 26431 106 6.8 371696 273928 pts/2 Rl+ 15:50 0:01 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
root 29529 11.6 17.0 791216 678588 pts/2 S+ 15:27 2:41 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1u rakudo
portage 29799 0.0 0.0 4220 1528 pts/2 S+ 15:29 0:00 [dev-lang/rakudo-2014.10] sandbox /usr/lib/portage/python2.7/ebuild.sh compile
portage 29801 0.0 0.1 31432 6480 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 29818 0.0 0.1 31432 5508 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 29823 0.0 0.0 20748 3780 pts/2 S+ 15:29 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild-helpers/emake
portage 29825 0.0 0.1 33108 6332 pts/2 S+ 15:29 0:00 make -j1
2014-11-01 15:50:10,70
Mem: 3986448 1104580 2115140 152 766728 2825948
Swap: 12582908 254260 12328648
src/gc/gc_gms.c:1132: failed assertion 'PObj_constant_TEST(pmc) || (int)POBJ2GEN(pmc) == i'
Backtrace - Obtained 24 stack frames (max trace depth is 32).
/usr/lib64/libparrot.so.6.9.0(+0x88654) [0x7fc91ddb8654]
...
/usr/lib64/libparrot.so.6.9.0(Parrot_pf_execute_bytecode_program+0x9e) [0x7fc91ddece2e]
portage 26431 114 7.0 379416 281544 pts/2 Rl+ 15:50 0:01 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
root 29529 11.6 17.0 791216 678588 pts/2 R+ 15:27 2:41 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1u rakudo
On a systems with 16GB I see, that the VSZ increases further upto 399 MB and RSS to 287 MB:
2014-11-02 17:34:09,49
Mem: 16177732 1133760 13916904 1076 1127068 14793356
Swap: 100663280 0 100663280
root 3699 2.2 1.7 399192 286564 pts/0 S+ 17:16 0:23 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo
portage 4724 0.0 0.0 4240 1416 pts/0 S+ 17:19 0:00 [dev-lang/rakudo-2014.10] sandbox /usr/lib/portage/python2.7/ebuild.sh compile
portage 4726 0.0 0.0 31480 6324 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 4743 0.0 0.0 31480 5440 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 4748 0.0 0.0 20784 3680 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild-helpers/emake
portage 4750 0.0 0.0 33100 6136 pts/0 S+ 17:19 0:00 make -j1
portage 31416 94.0 2.2 457964 359936 pts/0 Rl+ 17:34 0:00 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
2014-11-02 17:34:09,59
Mem: 16177732 1155092 13895572 1076 1127068 14772024
Swap: 100663280 0 100663280
root 3699 2.2 1.7 399192 286564 pts/0 S+ 17:16 0:23 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo
portage 4724 0.0 0.0 4240 1416 pts/0 S+ 17:19 0:00 [dev-lang/rakudo-2014.10] sandbox /usr/lib/portage/python2.7/ebuild.sh compile
portage 4726 0.0 0.0 31480 6324 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 4743 0.0 0.0 31480 5440 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 4748 0.0 0.0 20784 3680 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild-helpers/emake
portage 4750 0.0 0.0 33100 6136 pts/0 S+ 17:19 0:00 make -j1
portage 31416 96.0 2.2 465340 367464 pts/0 Dl+ 17:34 0:00 ./perl6-p --target=pir --output=src/gen/RESTRICTED.setting.pir src/RESTRICTED.setting
2014-11-02 17:34:09,67
Mem: 16177732 943120 14107544 1076 1127068 14983996
Swap: 100663280 0 100663280
root 3699 2.2 1.7 399192 286564 pts/0 S+ 17:16 0:23 /usr/bin/python2.7 -b /usr/lib/python-exec/python2.7/emerge -v1 rakudo
portage 4724 0.0 0.0 4240 1416 pts/0 S+ 17:19 0:00 [dev-lang/rakudo-2014.10] sandbox /usr/lib/portage/python2.7/ebuild.sh compile
portage 4726 0.0 0.0 31480 6324 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 4743 0.0 0.0 31480 5440 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild.sh compile
portage 4748 0.0 0.0 20784 3680 pts/0 S+ 17:19 0:00 /bin/bash /usr/lib/portage/python2.7/ebuild-helpers/emake
portage 4750 0.0 0.0 33100 6136 pts/0 S+ 17:19 0:00 make -j1
portage 31416 102 0.0 0 0 pts/0 Zl+ 17:34 0:01 [perl6-p] <defunct>
Is there any idea, how to solve this issue?
I could remove the issue on one of the failing systems by enlarging the RAM from 2 to 4 GB. The issue disappeared rakudo-2014.11. Old versions dropped. |