nextcloud / nextcloud/updater

Retry Update button starts update from scratch rather than last unfinished step

Open
#203 8 comments 8 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement hotspot: .step management mode: web UX🙂
Dominant language
PHP
Stars
51
Forks
40
Avg merge
2d 19h
Merged PRs (30d)
3

Description

Steps to reproduce
  1. Start update from e.g. 14.0.3 to 14.0.4 on weak HW or with low time outs set.
  2. On Backup step you will see an error:
Create backup
Parsing response failed. <html> <head><title>504 Gateway Time-out</title></head> <body bgcolor="white"><center><h1>504 Gateway Time-out</h1></center> <hr><center>Apache</center> </body> </html>
  1. Check that Backup was successful via SSH:
# cd /var/www/nextcloud/data/updater-YOURID/
# cat .step
{"state":"end","step":3}

you can see that step 3 (backup) was finished.
4. Check your Backup directory:

# du -sh backups/nextcloud-14.0.3.0/
297M	backups/nextcloud-14.0.3.0/
  1. In web press button "Retry"
  2. Update will start from the begging - doing backup, meeting Time out --> Loop.
Expected behaviour

Updater should check last step under ...nextcloud/data/updater-YOURID/.step and ether continue with step X+1, or ask if User wants to repeat step X. In this case - Step 3 Backup.

Actual behaviour

Getting in loop with backup and Time Out.

Workaround

When user see Time Out error and check via SSH that Step 3 was finished. User should go back to Settings and start upgrade again. In this case User will see Window with "continue update" button, instead of "retry".
image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the updater's Retry flow against the state recorded in data/updater-YOURID/.step, using the reproduced timeout and the existing Settings "continue update" behavior as references. Done means Retry does not repeat a completed backup: it continues with the next step or asks whether to repeat the unfinished step.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
release
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.