The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
--- Begin Message ---

> On May 25, 2025, at 2:30 PM, Philip Prindeville via openwrt-devel 
> <openwrt-devel@lists.openwrt.org> wrote:
> 
> 
> I’m seeing:
> 
> Command failed: Command failed
> 
> when I run sysupgrade.  This appears immediately after the list of files 
> backed up:
> 
> …
> usr/share/xt_geoip/ZW.iv6
> usr/share/xt_geoip/ZZ.iv4
> usr/share/xt_geoip/ZZ.iv6
> Sun May 25 14:16:50 MDT 2025 upgrade: Commencing upgrade. Closing all shell 
> sessions.
> Command failed: Connection failed
> Watchdog handover: fd=8
> - watchdog -
> Watchdog does not have CARDRESET support
> Sun May 25 14:16:50 MDT 2025 upgrade: Sending TERM to remaining processes ...
> Sun May 25 14:16:50 MDT 2025 upgrade: Sending signal TERM to syslog-ng (10778)
> Sun May 25 14:16:50 MDT 2025 upgrade: Sending signal TERM to lldpd (12075)
> Sun May 25 14:16:50 MDT 2025 upgrade: Sending signal TERM to lldpd (12144)
> Sun May 25 14:16:50 MDT 2025 upgrade: Sending signal TERM to snmpd (12540)
> Sun May 25 14:16:50 MDT 2025 upgrade: Sending signal TERM to sleep (13326)
> Sun May 25 14:16:54 MDT 2025 upgrade: Sending KILL to remaining processes ...
> 
> 
> No one wants to see their upgrade failing.
> 
> Should I be worried?  The message is a little vague.
> 
> Throwing a -x into the end:
> 
> Sun May 25 14:27:27 MDT 2025 upgrade: Commencing upgrade. Closing all shell 
> sessions.
> + '[' -n  ]
> + json_init
> + json_cleanup
> + local unset tmp
> + _json_get_var unset JSON_UNSET
> + eval 'unset="$JSON_UNSET"'
> + unset=' J_T1 J_V_tests J_T1_fwtool_signature J_T1_fwtool_device_match 
> J_V_valid J_V_forceable J_V_allow_backup'
> + unset U_J_T1 K_J_T1 S_J_T1 T_J_T1 N_J_T1 J_T1
> + unset U_J_V_tests K_J_V_tests S_J_V_tests T_J_V_tests N_J_V_tests J_V_tests
> + unset U_J_T1_fwtool_signature K_J_T1_fwtool_signature 
> S_J_T1_fwtool_signature T_J_T1_fwtool_signature N_J_T1_fwtool_signature 
> J_T1_fwtool_signature
> + unset U_J_T1_fwtool_device_match K_J_T1_fwtool_device_match 
> S_J_T1_fwtool_device_match T_J_T1_fwtool_device_match 
> N_J_T1_fwtool_device_match J_T1_fwtool_device_match
> + unset U_J_V_valid K_J_V_valid S_J_V_valid T_J_V_valid N_J_V_valid J_V_valid
> + unset U_J_V_forceable K_J_V_forceable S_J_V_forceable T_J_V_forceable 
> N_J_V_forceable J_V_forceable
> + unset U_J_V_allow_backup K_J_V_allow_backup S_J_V_allow_backup 
> T_J_V_allow_backup N_J_V_allow_backup J_V_allow_backup
> + unset U_J_V K_J_V S_J_V T_J_V N_J_V J_V
> + unset JSON_SEQ JSON_CUR JSON_UNSET
> + export -n 'JSON_SEQ=0'
> + export -- 'JSON_CUR=J_V' 'K_J_V='
> + json_add_string prefix /tmp/root
> + local cur
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_V
> + _json_add_generic string prefix /tmp/root J_V
> + local var
> + '[' J_V '=' J_A ]
> + var=prefix
> + '[[' prefix '==' prefix ]]
> + export -- 'J_V_prefix=/tmp/root' 'T_J_V_prefix=string'
> + _jshn_append JSON_UNSET J_V_prefix
> + local '_a_value=J_V_prefix'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix'
> + _jshn_append K_J_V prefix
> + local '_a_value=prefix'
> + eval 'K_J_V="${K_J_V} $_a_value"'
> + K_J_V=' prefix'
> + json_add_string path 
> /tmp/openwrt-r29673-7fa847a959-x86-64-generic-squashfs-combined.img.gz
> + local cur
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_V
> + _json_add_generic string path 
> /tmp/openwrt-r29673-7fa847a959-x86-64-generic-squashfs-combined.img.gz J_V
> + local var
> + '[' J_V '=' J_A ]
> + var=path
> + '[[' path '==' path ]]
> + export -- 
> 'J_V_path=/tmp/openwrt-r29673-7fa847a959-x86-64-generic-squashfs-combined.img.gz'
>  'T_J_V_path=string'
> + _jshn_append JSON_UNSET J_V_path
> + local '_a_value=J_V_path'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path'
> + _jshn_append K_J_V path
> + local '_a_value=path'
> + eval 'K_J_V="${K_J_V} $_a_value"'
> + K_J_V=' prefix path'
> + '[' 0 -eq 1 ]
> + '[' 1 -eq 1 ]
> + json_add_string backup /tmp/sysupgrade.tgz
> + local cur
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_V
> + _json_add_generic string backup /tmp/sysupgrade.tgz J_V
> + local var
> + '[' J_V '=' J_A ]
> + var=backup
> + '[[' backup '==' backup ]]
> + export -- 'J_V_backup=/tmp/sysupgrade.tgz' 'T_J_V_backup=string'
> + _jshn_append JSON_UNSET J_V_backup
> + local '_a_value=J_V_backup'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path J_V_backup'
> + _jshn_append K_J_V backup
> + local '_a_value=backup'
> + eval 'K_J_V="${K_J_V} $_a_value"'
> + K_J_V=' prefix path backup'
> + json_add_string command /lib/upgrade/do_stage2
> + local cur
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_V
> + _json_add_generic string command /lib/upgrade/do_stage2 J_V
> + local var
> + '[' J_V '=' J_A ]
> + var=command
> + '[[' command '==' command ]]
> + export -- 'J_V_command=/lib/upgrade/do_stage2' 'T_J_V_command=string'
> + _jshn_append JSON_UNSET J_V_command
> + local '_a_value=J_V_command'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path J_V_backup J_V_command'
> + _jshn_append K_J_V command
> + local '_a_value=command'
> + eval 'K_J_V="${K_J_V} $_a_value"'
> + K_J_V=' prefix path backup command'
> + json_add_object options
> + _json_add_table options object T
> + local cur seq
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_V
> + _json_inc JSON_SEQ seq
> + let 'JSON_SEQ += 1' 'seq = JSON_SEQ'
> + local 'table=J_T1'
> + _json_set_var U_J_T1 J_V
> + local '___val=J_V'
> + eval 'U_J_T1="$___val"'
> + U_J_T1=J_V
> + export -- 'K_J_T1='
> + unset S_J_T1
> + _json_set_var JSON_CUR J_T1
> + local '___val=J_T1'
> + eval 'JSON_CUR="$___val"'
> + JSON_CUR=J_T1
> + _jshn_append JSON_UNSET J_T1
> + local '_a_value=J_T1'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path J_V_backup J_V_command J_T1'
> + _json_add_generic object options J_T1 J_V
> + local var
> + '[' J_V '=' J_A ]
> + var=options
> + '[[' options '==' options ]]
> + export -- 'J_V_options=J_T1' 'T_J_V_options=object'
> + _jshn_append JSON_UNSET J_V_options
> + local '_a_value=J_V_options'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path J_V_backup J_V_command J_T1 J_V_options'
> + _jshn_append K_J_V options
> + local '_a_value=options'
> + eval 'K_J_V="${K_J_V} $_a_value"'
> + K_J_V=' prefix path backup command options'
> + json_add_int save_partitions 1
> + local cur
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_T1
> + _json_add_generic int save_partitions 1 J_T1
> + local var
> + '[' J_T '=' J_A ]
> + var=save_partitions
> + '[[' save_partitions '==' save_partitions ]]
> + export -- 'J_T1_save_partitions=1' 'T_J_T1_save_partitions=int'
> + _jshn_append JSON_UNSET J_T1_save_partitions
> + local '_a_value=J_T1_save_partitions'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path J_V_backup J_V_command J_T1 J_V_options 
> J_T1_save_partitions'
> + _jshn_append K_J_T1 save_partitions
> + local '_a_value=save_partitions'
> + eval 'K_J_T1="${K_J_T1} $_a_value"'
> + K_J_T1=' save_partitions'
> + json_add_int add_provisioning 0
> + local cur
> + _json_get_var cur JSON_CUR
> + eval 'cur="$JSON_CUR"'
> + cur=J_T1
> + _json_add_generic int add_provisioning 0 J_T1
> + local var
> + '[' J_T '=' J_A ]
> + var=add_provisioning
> + '[[' add_provisioning '==' add_provisioning ]]
> + export -- 'J_T1_add_provisioning=0' 'T_J_T1_add_provisioning=int'
> + _jshn_append JSON_UNSET J_T1_add_provisioning
> + local '_a_value=J_T1_add_provisioning'
> + eval 'JSON_UNSET="${JSON_UNSET} $_a_value"'
> + JSON_UNSET=' J_V_prefix J_V_path J_V_backup J_V_command J_T1 J_V_options 
> J_T1_save_partitions J_T1_add_provisioning'
> + _jshn_append K_J_T1 add_provisioning
> + local '_a_value=add_provisioning'
> + eval 'K_J_T1="${K_J_T1} $_a_value"'
> + K_J_T1=' save_partitions add_provisioning'
> + '[' 0 -eq 1 ]
> + json_close_object
> + _json_close_table
> + local _s_cur
> + _json_get_var _s_cur JSON_CUR
> + eval '_s_cur="$JSON_CUR"'
> + _s_cur=J_T1
> + _json_get_var JSON_CUR U_J_T1
> + eval 'JSON_CUR="$U_J_T1"'
> + JSON_CUR=J_V
> + json_dump
> + jshn -w
> + ubus call system sysupgrade '{ "prefix": "\/tmp\/root", "path": 
> "\/tmp\/openwrt-r29673-7fa847a959-x86-64-generic-squashfs-combined.img.gz", 
> "backup": "\/tmp\/sysupgrade.tgz", "command": "\/lib\/upgrade\/do_stage2", 
> "options": { "save_partitions": 1, "add_provisioning": 0 } }'
> Command failed: Connection failed
> Watchdog handover: fd=8
> - watchdog -
> Watchdog does not have CARDRESET support
> Sun May 25 14:27:28 MDT 2025 upgrade: Sending TERM to remaining processes ...
> Sun May 25 14:27:28 MDT 2025 upgrade: Sending signal TERM to syslog-ng (10755)
> Sun May 25 14:27:28 MDT 2025 upgrade: Sending signal TERM to lldpd (12097)
> Sun May 25 14:27:28 MDT 2025 upgrade: Sending signal TERM to lldpd (12161)
> Sun May 25 14:27:28 MDT 2025 upgrade: Sending signal TERM to snmpd (12568)
> Sun May 25 14:27:28 MDT 2025 upgrade: Sending signal TERM to sleep (12802)
> 
> 
> so it’s the final command:
> 
> ubus call system sysupgrade "$(json_dump)”
> 
> that’s failing.
> 
> Thanks
> 



BTW, towards the bottom of the sysupgrade script there’s a test for “-n 
“$FAILSAFE” but I don’t see FAILSAFE getting set anywhere.

Matthias? Rafał?

-Philip




--- End Message ---
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
  • Sysupgrade error messages Philip Prindeville via openwrt-devel
    • Re: Sysupgrade error messages Philip Prindeville via openwrt-devel

Reply via email to