Pretty sure I found a problem with zypper.

I wanted to verify that what I found is actually a problem and, if so, exactly where to file a bug report.

System: desktop running Leap 15.2
Owner on the phone with me.
I had him open a terminal window and become root with su -
I had him type the command zypper --releasever=15.3 dup --download-in-advance --allow-vendor-change
I had him read it back to me, letter by letter and I gave hime the go ahead to hit the enter key.
He told me that the computer screen said “a whole lot of stuff” like a bunch of files were going to deleted and more so I told him to confirm the choice.
zypper deleted the 45 files it said it was going to, and only then discovered that there was no internet connection!

I’ll be going to his home and will do a fresh install of Leap 15.3 and he has a backup of everything he needs, so it’s certainly not the end of the world.

But!

Shouldn’t “download-in-advance” mean download everything before doing anything else like deleting a bunch of system files?

Now, if I did something wrong, I’ll be more than happy to learn so I don’t do it again, if not, where do I report this? Who’s responsible for zypper?

Bart

And you did not notice errors from zypper that it could not reach repositories for refresh?

He told me that the computer screen said “a whole lot of stuff” like a bunch of files were going to deleted and more so I told him to confirm the choice.
zypper deleted the 45 files it said it was going to, and only then discovered that there was no internet connection!

Well, we have only your word here. It is very unlikely that computer was disconnected at exact moment between successful repositories refresh and attempt to install anything.

Shouldn’t “download-in-advance” mean download everything before doing anything else like deleting a bunch of system files?

You continue to say “files” where you are talking about “packages”. It does not help in understanding what you men.

Anyway, I tested two scenarious

  1. I started your command, let zypper refresh repositories to 15.3 and compute distribution update and then before I hit Y I disconnected network. Zypper did not remove anything, it started to download packages and of course failed immediately.
  2. I disconnected network before
    running your command. Zypper gave me error about failing to refresh repositories, then went on computing distribution update with 15.2 repositories metadata. It then suggested to remove some packages that are marked for removal in 15.2 metadata. This is normal behavior.

So no, there is no bug here. You should have stopped as soon as you got errors on repository refresh. What you effectively did was “zypper dup” to 15.2 on 15.2. There was nothing to download or install. But you have some packages that probably became obsolete and added to the list of packages to remove on distribution upgrade. I do not know what packages were removed but they are unlikely critical system packages, so you should be able to repeat upgrade after fixing connection.

Well alright. I wasn’t there and so could not see the screen. My main concern was what I thought to be a problem with zypper. Obviously, your tests determined that there is not. And, I’m glad.

With the missing files (packages) I can’t get his computer to make a network connection. Doing a fresh install of 15.3 will not be a problem, so that’s what I’ll do.

Thank you for your efforts in testing and confirming that the problem was at this end.

Bart

You apparently trying to upgrade a system from 15.2 to 15.3 in the online way. I hope that what you tell is not the complete picture. But I am a bit afraid that you are not doing as it should be done. E.g. you say you (if it is done by another human does of course not matter, so I day “you”) “open a terminal”. Which I think means that there is still an end-user logged in in the GUI. This should not be the case if you are about to replace almost all software “from under his feet”.

NO GUI users, no end-users at all. Only log in as root in the console. Many (including me) put the system then into single user or even recovery mode.

I also hope you did some preparations like checking if $releasever is indeed in the URLs of all repos involved. And disable non-standard repos (i do this including Packman)