Comment 14 for bug 1853028

Revision history for this message
Alex Schultz (alex-schultz) wrote :

For historical sake, here is an analysis of the error that I did:

This seems to be an issue with the internals of chkconfig. We probably want to open a BZ but without a specific reproducer this might be hard to get addressed.

Here's where the error message from the logs is being printed:
https://github.com/fedora-sysv/chkconfig/blob/1.11/leveldb.c#L758-L786

Unfortunately chkconfig doesn't exactly give great details on what it's doing. In theory when we're running this command initially there won't be any /etc/rc0.d/[SK][0-9][0-9]network files as it needs to be created by this call.

(for the record /usr/lib/systemd/systemd-sysv-install is a symlink to chkconfig)

Here is what I think the path through chkconfig via systemd-sysv-install looks like

Here's where the state is set to 'on' in main
https://github.com/fedora-sysv/chkconfig/blob/1.11/chkconfig.c#L824-L844

setService is run here:
https://github.com/fedora-sysv/chkconfig/blob/1.11/chkconfig.c#L895

It parses the /etc/rc.d/init.d/network file here:
https://github.com/fedora-sysv/chkconfig/blob/1.11/chkconfig.c#L608
https://github.com/fedora-sysv/chkconfig/blob/1.11/leveldb.c#L357-L416

Then it starts looping through the levels to set the service:
https://github.com/fedora-sysv/chkconfig/blob/1.11/chkconfig.c#L635-L648

Part of doSetService is to find the service entries:
https://github.com/fedora-sysv/chkconfig/blob/1.11/leveldb.c#L913

I think this is where the code is exercised that prints this error. In theory it would return 1 and the calling function would interpret this as (True, because c). The calling function would try and do the symlinks and would only return 1 after printing a 'failed to make symlink' message which we don't see.

https://github.com/fedora-sysv/chkconfig/blob/1.11/leveldb.c#L925-L931

So I'm not seeing where doSetService(...) would return 1 here
https://github.com/fedora-sysv/chkconfig/blob/1.11/chkconfig.c#L648-L653

If that returned 1, then the program would exit with 1
https://github.com/fedora-sysv/chkconfig/blob/1.11/chkconfig.c#L895

One possible solution is to inject a chkconfig package with more verbose information so we could track down what's happening. That's probably the best way to try and continue to troubleshoot this issue.