Updater not working?

If I understand correctly /etc/init.d/updater is the service which auto updates.

It seems that updater is not working:

root@turris:~# opkg-trans -e dbg -s dbg -j
DEBUG:src/lib/journal.c:123 (journal_open):Opening journal
line not found
line not found
line not found
line not found
DEBUG:src/lib/interpreter.c:104 (interpreter_error_result):
Stack Traceback

(2) Lua function ‘?’ at line 64 of chunk '“logging”]'
Local variables:
err = string: "[string “transaction”]:325: No journal to recover"
err2string = Lua function ‘?’ (defined at line 45 of chunk “logging”])
msg = string: “
[string “transaction”]:325: No journal to recover”
(*temporary) = table: 0x35ffb0 {msg:
[string “transaction”]:325: No journal to recover}
(3) C function ‘function: 0x364320’
(4) field C function ‘recover’
(5) Lua global ‘recover’ at line 325 of chunk '“transaction”]'
Local variables:
run_state = table: 0x2f98d0 {initialized:true, init:function: 0x2f9900, lfile:userdata: 0x348568, release:function: 0x326d20 (more…)}
(6) Lua function ‘?’ at line 386 of chunk '“transaction”]'
Local variables:
(*temporary) = Lua function ‘?’ (defined at line 352 of chunk “transaction”])

DIE:src/opkg-trans/main.c:95 (main):
[string “transaction”]:325: No journal to recover
Aborted

Hello

This is just to recover updater journal, for example after reboot (thats why it’s service). Command you entered is for that. It failed because there was no journal so there was no journal to recover. Updater isn’t executed immediately after boot-up. You can safely ignore this error, unless it says something else than “No journal to recover”.

Hi, I’m seeing the same problem. When executing opkg-trans -e dbg -s dbg -j I see an almost identical output as @turrios. The following is the error message within the Foris webinterface:

Updater failed:
[string “transaction”]:285: [string “backend”]:753: bad argument #1 to ‘pairs’ (table expected, got nil)

When running /usr/bin/updater.sh directly, the following is the output after a lot of Queue install and Queue removal lines:

INFO:Executing preupdate hooks…
INFO:Subprogram output: /etc/updater/hook_preupdate/05_schnapps.sh:
Snapshot number 26 created

INFO:End of subprogram output
DIE:
[string “transaction”]:285: [string “backend”]:753: bad argument #1 to ‘pairs’ (table expected, got nil)
uci: Entry not found
uci: Entry not found

It seems as if updates are not applied… Any hints on how to resolve the error?

Kind regards

my /usr/bin/updater.sh output:

WARN:Lock on //var/lock/opkg.lock released by garbage collector
uci: Entry not found
uci: Entry not found
uci: Entry not found

Have same message and also noticed this after rebooting in messages:

2016-10-31T01:28:55+01:00 debug updater[4814]: src/lib/journal.c:123 (journal_open): Opening journal
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: DEBUG:src/lib/journal.c:123 (journal_open):Opening journal
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: line not found
2016-10-31T01:28:55+01:00 debug updater[4814]: src/lib/interpreter.c:104 (interpreter_error_result): 
Stack Traceback
===============
(2) Lua function '?' at line 64 of chunk '"logging"]'
	Local variables:
	 err = string: "[string \"transaction\"]:325: No journal to recover"
	 err2string = Lua function '?' (defined at line 45 of chunk "logging"])
	 msg = string: "\
[string \"transaction\"]:325: No journal to recover"
	 (*temporary) = table: 0x207f050  {msg:
[string "transaction"]:325: No journal to recover}
(3)  C function 'function: 0x1fd8b60'
(4) field C function 'recover'
(5) Lua global 'recover' at line 325 of chunk '"transaction"]'
	Local variables:
	 run_state = table: 0x1e458d0  {initialized:true, init:function: 0x1e45900, lfile:userdata: 0x1e94568, release:function: 0x1e72d20 (more...)}
(6) Lua function '?' at line 386 of chunk '"transaction"]'
	Local variables:
	 (*temporary) = Lua function '?' (defined at line 352 of chunk "transaction"])
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: DEBUG:src/lib/interpreter.c:104 (interpreter_error_result):
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: Stack Traceback
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: ===============
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: (2) Lua function '?' at line 64 of chunk '"logging"]'
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	Local variables:
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	 err = string: "[string \"transaction\"]:325: No journal to recover"
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	 err2string = Lua function '?' (defined at line 45 of chunk "logging"])
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	 msg = string: "\
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: [string \"transaction\"]:325: No journal to recover"
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	 (*temporary) = table: 0x207f050  {msg:
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: [string "transaction"]:325: No journal to recover}
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: (3)  C function 'function: 0x1fd8b60'
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: (4) field C function 'recover'
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: (5) Lua global 'recover' at line 325 of chunk '"transaction"]'
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	Local variables:
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	 run_state = table: 0x1e458d0  {initialized:true, init:function: 0x1e45900, lfile:userdata: 0x1e94568, release:function: 0x1e72d20 (more...)}
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: (6) Lua function '?' at line 386 of chunk '"transaction"]'
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	Local variables:
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 	 (*temporary) = Lua function '?' (defined at line 352 of chunk "transaction"])
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: 
2016-10-31T01:28:55+01:00 crit updater[4814]: src/opkg-trans/main.c:95 (main): 
[string "transaction"]:325: No journal to recover
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: e[31;1mDIEe[0m:src/opkg-trans/main.c:95 (main):
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: [string "transaction"]:325: No journal to recover
2016-10-31T01:28:55+01:00 emerg sfpswitch.py[1837]: Aborted

That thing with the journal is annoying, but this is OK (it’ll get fixed, but you don’t have to worry). The fact it is attributed to sfpswitch.py is a bug somewhere in procd, which gives it to the wrong service (and we didn’t have the time to look into that yet). Simply ignore these.

As with the problem with pairs, that one is a bit worse. Obviously, the fix didn’t make it into the release yet :-|. We’ll release it soon, but those affected will still have to perform some manual intervention (simply because the update won’t get applied).

It can sometimes happen after removing a package with opkg remove. There are two ways to cope with it:

  • A factory reset
  • Getting rid of the problem in the /usr/lib/opkg/status, either by finding a not-installed package which has no Conffiles field and removing it, or by running this: sed -e '/Status:.*not-installed/s/$/\nConffiles:/' -i /usr/lib/opkg/status

Thank you for your response @vorner. Actually, I can confirm that I used opkg quite a bit. The not-installed package with no Conffiles field was vim (don’t know why). Running sed as described by you solved the problem for me. Now the updater runs without error again. Thanks!

@vorner, sed did not help.

I don’t have any not-installed package in /usr/lib/opkg/status

cat /usr/lib/opkg/status | grep -i not-insta
root@turris:~#

I haven’t removed any packages from the system, only installed more via opkg.

I get this error(if it’s an error):

/usr/bin/updater.sh
WARN:Lock on //var/lock/opkg.lock released by garbage collector
uci: Entry not found
uci: Entry not found
uci: Entry not found

He said that it is OK. You can ignore these errors.

Second paragraph was meant to ohrensessel.

1 Like

If you are not using the SFP slot, you can save some memory by disabling the (memory-resident) python script:

/etc/init.d/sfpswitch disable
/etc/init.d/sfpswitch stop
/etc/init.d/sfpled disable
/etc/init.d/sfpled stop

1 Like