I just did my 'zypper dup' to the fully recompiled system. As there had been some reports about out of disk space conditions I thought I watch it carefully, and report here.
I started deleting all old snapshots. This left me with
woodstock:~% df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda2 68G 49G 20G 72% /
Then I started the dup. It told me it would download 3576 packages, totaling to 3.something GB. Only one conflict with a python package. So I started.
After update is finished, this is the usage:
woodstock:~% df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda2 68G 61G 6.2G 91% /
So, that's 13.8GB space needed for the update because all files are COWed during update, but stay undeleted in the snapshot :o
Now that extent might be non-standard, as I have installed lots of development stuff and also TeX. But the keypoint is that such an update will require the full size of your current system (minus the logs of course) as free space. (The difference between the initial 49GB usage and those ~14GB is mostly in the /usr/local subvolume and external software in /opt).
So for sure checking that there is enough space to download the packages in advance is not sufficient to make sure the upgrade succeeds. Maybe zypper should get some better logic like summing the installed sizes of the packages to be installed and make sure that is available? (At least when snapshots are enabled, that is).