PowerFlex 4.X-Firmwareupdate schlägt mit ungültiger Bytesequenz in US-ASCII fehl
Summary: Das Firmwareupdate schlägt mit einer ungültigen Bytesequenz in US-ASCII fehl.
Symptoms
Beispiel
Für den Cluster wurde ein Firmwareupgrade mithilfe der Ressourcengruppe durchgeführt.
Problem
Die deployment.log von Job-ID meldet, dass das Firmwareupdate fehlgeschlagen ist und das Playbook ausgeführt wird. Beachten Sie, dass der Befehl im Playbook so eingestellt ist, dass er "/usr/sbin/sysctl -p" ausführt:
ERROR [2024-01-25T20:21:33.358478] 25824: service_deployment.rb:6084:in `process_firmware_update': Encountered an error during firmware update: ArgumentError: invalid byte sequence in US-ASCII
["org/jruby/RubyString.java:4727:in `scan'", "/opt/asm-deployer/lib/asm/provider/elementmanager/scaleio.rb:9762:in `update_sysctl_parameter'", "/opt/asm-deployer/lib/asm/service_deployment.rb:5909:in `block in process_firmware_update'", "org/jruby/RubyArray.java:1865:in `each'", "/opt/asm-deployer/lib/asm/service_deployment.rb:5731:in `process_firmware_update'", "/opt/asm-deployer/lib/asm/service_deployment.rb:504:in `process'", "/opt/asm-deployer/lib/asm.rb:369:in `block in process_deployment'", "org/jruby/RubyArray.java:1907:in `each_slice'", "/opt/asm-deployer/lib/asm.rb:351:in `block in process_deployment'", "/opt/dependencies/dell-asm-util/lib/asm/util.rb:22:in `block in execute_async'"]
...
INFO [2024-01-25T20:22:45.017056] 25824: service_deployment.rb:1795:in `process_ansible_playbook': Starting processing playbook: [{"hosts"=>"all", "become"=>true, "vars"=>{"overcommit_ratio"=>100, "overcommit_memory"=>2}, "tasks"=>[{"name"=>"Replace unvalid values in sysctl conf", "replace"=>{"path"=>"/etc/sysctl.conf", "regexp"=>"^net.ipv4.conf.(ens192.log_martians.*)$", "replace"=>"#net.ipv4.conf.\\1 # PFXM REMOVED INVALID OPTION"}}, {"name"=>"Replace unvalid values in sysctl conf", "replace"=>{"path"=>"/etc/sysctl.conf", "regexp"=>"^net.ipv4.conf.(ens32.log_martians.*)$", "replace"=>"#net.ipv4.conf.\\1 # PFXM REMOVED INVALID OPTION"}}, {"name"=>"update threshold1", "ansible.posix.sysctl"=>{"name"=>"net.ipv4.neigh.default.gc_thresh1", "value"=>8192}}, {"name"=>"update threshold2", "ansible.posix.sysctl"=>{"name"=>"net.ipv4.neigh.default.gc_thresh2", "value"=>16384}}, {"name"=>"update threshold3", "ansible.posix.sysctl"=>{"name"=>"net.ipv4.neigh.default.gc_thresh3", "value"=>32768}}, {"name"=>"Update overcommit ratio for SDS", "ansible.posix.sysctl"=>{"name"=>"vm.overcommit_ratio", "value"=>"{{ overcommit_ratio }}"}}, {"name"=>"Update overcommit_memory ratio for SDS", "ansible.posix.sysctl"=>{"name"=>"vm.overcommit_memory", "value"=>"{{ overcommit_memory }}"}}, {"name"=>"Apply sysctl changes", "command"=>{"argv"=>["
]}}]}] with inventory:
... Wenn der Befehl direkt auf dem Node ausgeführt wird, wird möglicherweise der folgende Fehler angezeigt:
[root@node3 etc]# /usr/sbin/sysctl -p ... sysctl: /etc/sysctl.conf(91): invalid syntax, continuing...
Auswirkungen
Das Firmwareupdate kann auf dem betroffenen Node nicht fortgesetzt werden.
Cause
Ursache
Das Problem ist auf ein Nicht-ASCII- oder Sonderzeichen in der Datei sysctl.conf zurückzuführen, das nicht mit der erwarteten US-ASCII-Zeichencodierung kompatibel ist, die während der sysctl-Verarbeitung verwendet wird. Wenn das System versucht, die Konfigurationen aus sysctl.conf zu lesen und anzuwenden, stößt es auf diese ungültige Zeichenfolge, was zu einem Fehler "ungültige Bytesequenz in US-ASCII" führt. Der genaue Grund für die Aufnahme dieser Figur bleibt unklar.
Resolution
Problemumgehung
1. Sichern Sie die ursprüngliche sysctl.conf-Datei auf dem betroffenen Node:
cp /etc/sysctl.conf /etc/sysctl.conf.backup
2. Kopieren Sie eine sysctl.conf-Datei von einem Node, von dem bekannt ist, dass sie ordnungsgemäß funktioniert:
scp /etc/sysctl.conf root@:/etc/sysctl.conf
3. Wenden Sie die neue Konfiguration auf den betroffenen Node an:
/usr/sbin/sysctl -p
4. Stellen Sie sicher, dass der Befehl ohne Fehler wegen ungültiger Syntax ausgeführt wird.
5. Sobald die obigen Schritte abgeschlossen und überprüft wurden, starten Sie den Firmwareupdateprozess mithilfe der Ressourcengruppe erneut.
Betroffene Versionen
PFxM 4.5.1.1 und niedriger
Behoben in Version
PFxM 4.5.2