"systemctl preset-all" fails as "Failed to execute operation: Too many levels of symbolic links" #2298

Closed
tereshonkov-roman opened this Issue Jan 11, 2016 · 3 comments

Comments

Projects
None yet
3 participants

For systemd 228.
"systemctl preset-all" fails as "Failed to execute operation: Too many levels of symbolic links"
if there is symlink
"/etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target".

The same error comes during the very first boot.

Any comments why preset fails?

Member

evverx commented Jan 11, 2016

# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target.

# systemd-analyze set-log-level debug

# systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

# journalctl -t systemd | grep default
...
Jan 11 14:50:24 systemd-testsuite systemd[1]: Preset file doesn't say anything about default.target, enabling.
...

# systemctl enable default.target
Failed to execute operation: Too many levels of symbolic links

See: install: follow unit file symlinks in /usr, but not /etc when looking for [Install] data

So, how to solve my problem then?

evverx added a commit to evverx/systemd that referenced this issue Jan 18, 2016

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

tblume added a commit to tblume/systemd-suse-devel that referenced this issue Apr 6, 2016

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Owner

keszybz commented Apr 17, 2016

Should be fixed by #2973 (3c6d8e5 ?).

@keszybz keszybz closed this Apr 17, 2016

msekletar added a commit to msekletar/systemd-rhel that referenced this issue Apr 29, 2016

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Cherry-picked from: c292c3a
Related: #1331667

msekletar added a commit to msekletar/systemd-rhel that referenced this issue Apr 29, 2016

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Cherry-picked from: c292c3a
Related: #1331667

lnykryn added a commit to lnykryn/systemd-rhel that referenced this issue May 5, 2016

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Cherry-picked from: c292c3a
Related: #1331667

msekletar added a commit to msekletar/systemd-rhel that referenced this issue Aug 22, 2016

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Cherry-picked from: c292c3a
Related: #1331667

apovichuk-stratoscale added a commit to Stratoscale/systemd that referenced this issue Jun 19, 2017

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Cherry-picked from: c292c3a
Related: #1331667

apovichuk-stratoscale added a commit to Stratoscale/systemd that referenced this issue Jun 20, 2017

core: fix memory leak on failed preset-all
How to reproduce
$ systemctl set-default multi-user # systemd/systemd#2298
$ systemctl preset-all
Failed to execute operation: Too many levels of symbolic links

$ systemctl poweroff

Fixes:
==1==
==1== HEAP SUMMARY:
==1==     in use at exit: 65,645 bytes in 7 blocks
==1==   total heap usage: 40,539 allocs, 40,532 frees, 30,147,547 bytes allocated
==1==
==1== 109 (24 direct, 85 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 7
==1==    at 0x4C2BBCF: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x4C2DE2F: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1==    by 0x23DA71: unit_file_changes_add (install.c:233)
==1==    by 0x23E45D: remove_marked_symlinks_fd (install.c:453)
==1==    by 0x23E267: remove_marked_symlinks_fd (install.c:405)
==1==    by 0x23E641: remove_marked_symlinks (install.c:494)
==1==    by 0x243A91: execute_preset (install.c:2190)
==1==    by 0x244343: unit_file_preset_all (install.c:2351)
==1==    by 0x18AAA2: method_preset_all_unit_files (dbus-manager.c:1846)
==1==    by 0x1D8157: method_callbacks_run (bus-objects.c:420)
==1==    by 0x1DA9E9: object_find_and_run (bus-objects.c:1257)
==1==    by 0x1DB02B: bus_process_object (bus-objects.c:1373)
==1==
==1== LEAK SUMMARY:
==1==    definitely lost: 24 bytes in 1 blocks
==1==    indirectly lost: 85 bytes in 1 blocks
==1==      possibly lost: 0 bytes in 0 blocks
==1==    still reachable: 65,536 bytes in 5 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Reachable blocks (those to which a pointer was found) are not shown.
==1== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==1==
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

Cherry-picked from: c292c3a
Related: #1331667
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment