Skip to content

Commit dda68ac

Browse files
Fix error printing when core uninstall fails during upgrade
The code tried to log the wrong error, which was nil, hiding the real error. This originally occurred for example when a version of the core was already installed manually in the sketchbook, and you would try to install another version using arduino-cli, though that has since been fixed (arduino-cli no longer tries to uninstall cores from the sketchbook). To still reproduce this problem, you can e.g. break the permissions of an installed core: $ arduino-cli core install arduino:avr@1.8.1 (...) $ chmod a-w ~/.arduino15/packages/arduino/hardware/avr/1.8.1 $ arduino-cli core install arduino:avr@1.8.2 Tool arduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 already installed Tool arduino:avrdude@6.3.0-arduino17 already installed Tool arduino:arduinoOTA@1.3.0 already installed Downloading packages... arduino:avr@1.8.2 already downloaded Upgrading arduino:avr@1.8.1 with arduino:avr@1.8.2... Error upgrading platform: %!s(<nil>)... Error during install: upgrading platform: removing platform files: unlinkat /home/matthijs/.arduino15/packages/arduino/hardware/avr/1.8.1/firmwares: permission denied With this fix applied, this produces a proper error message: $ arduino-cli core install arduino:avr@1.8.2 Tool arduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 already installed Tool arduino:avrdude@6.3.0-arduino17 already installed Tool arduino:arduinoOTA@1.3.0 already installed Downloading packages... arduino:avr@1.8.2 already downloaded Upgrading arduino:avr@1.8.1 with arduino:avr@1.8.2... Error upgrading platform: removing platform files: unlinkat /home/matthijs/.arduino15/packages/arduino/hardware/avr/1.8.1/firmwares: permission denied... Error during install: upgrading platform: removing platform files: unlinkat /home/matthijs/.arduino15/packages/arduino/hardware/avr/1.8.1/firmwares: permission denied
1 parent e4c54ec commit dda68ac

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

commands/core/install.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func installPlatform(pm *packagemanager.PackageManager,
145145
// In case of error try to rollback
146146
if errUn != nil {
147147
log.WithError(errUn).Error("Error upgrading platform.")
148-
taskCB(&rpc.TaskProgress{Message: fmt.Sprintf(tr("Error upgrading platform: %s"), err)})
148+
taskCB(&rpc.TaskProgress{Message: fmt.Sprintf(tr("Error upgrading platform: %s"), errUn)})
149149

150150
// Rollback
151151
if err := pm.UninstallPlatform(platformRelease); err != nil {

0 commit comments

Comments
 (0)