#431  Unable to upgrade
Closed
Shamil opened 2 years ago

I'm trying to upgrade OneDev for 4.x to 5.3, however, the container fails with the following:

--> Wrapper Started as Console
Java Service Wrapper Standard Edition 64-bit 3.5.44
  Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
    http://wrapper.tanukisoftware.com
  Licensed to OneDev for Service Wrapping

Launching a JVM...
WrapperManager: Initializing...
INFO  - Launching application from '/app'...
INFO  - Initializing dependency injection container...
INFO  - Starting plugin manager...
INFO  - Upgrading /opt/onedev...
INFO  - >>> INFO  - Launching application from '/opt/onedev'...
INFO  - >>> INFO  - Cleaning temp directory...
INFO  - >>> INFO  - Initializing dependency injection container...
INFO  - >>> INFO  - Starting plugin manager...
INFO  - >>> ERROR - Data version mismatch (app data version: 58, db data version: 57)
ERROR - Unable to upgrade specified installation due to above error
<-- Wrapper Stopped
--> Wrapper Started as Console
Java Service Wrapper Standard Edition 64-bit 3.5.44
  Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
    http://wrapper.tanukisoftware.com
  Licensed to OneDev for Service Wrapping

Launching a JVM...
WrapperManager: Initializing...
02:02:51 INFO  i.o.c.launcher.bootstrap.Bootstrap - Launching application from '/opt/onedev'...
02:02:51 INFO  i.o.c.launcher.bootstrap.Bootstrap - Cleaning temp directory...
02:02:51 INFO  i.o.c.launcher.loader.AppLoader - Initializing dependency injection container...
02:02:53 INFO  i.o.c.launcher.loader.AppLoader - Starting plugin manager...
02:02:56 ERROR i.o.s.p.DefaultPersistManager - Data version mismatch (app data version: 58, db data version: 57)
<-- Wrapper Stopped

This is running in Kubernetes, so I can easily change versions. So far, I tried intermediate steps and no dice.

Robin Shen commented 2 years ago

From which 4.x version are you performing the upgrade? Please note that OneDev only supports migration between official releases.

Shamil commented 2 years ago

@robin from 4.7.0

Even after reverting to 4.7.0, it fails.

Robin Shen commented 2 years ago

Please run below command to get a terminal for OneDev server:

kubectl exec -it -n onedev <onedev-pod-name> bash

Then run below command to post the output here:

ls /opt/onedev/lib/io.onedev.server*.jar
Shamil commented 2 years ago
kubectl exec -it onedev-76857fc969-fb4zk -- bash
root@onedev-76857fc969-fb4zk:/# ls /opt/onedev/lib/io.onedev.server*.jar
/opt/onedev/lib/io.onedev.server-core-4.7.0.jar                       
/opt/onedev/lib/io.onedev.server-plugin-executor-docker-4.7.0.jar      
/opt/onedev/lib/io.onedev.server-plugin-report-clover-4.7.0.jar
/opt/onedev/lib/io.onedev.server-plugin-authenticator-ldap-4.7.0.jar  
/opt/onedev/lib/io.onedev.server-plugin-executor-kubernetes-4.7.0.jar  
/opt/onedev/lib/io.onedev.server-plugin-report-jest-4.7.0.jar
/opt/onedev/lib/io.onedev.server-plugin-buildspec-gradle-4.7.0.jar    
/opt/onedev/lib/io.onedev.server-plugin-import-github-4.7.0.jar        
/opt/onedev/lib/io.onedev.server-plugin-report-markdown-4.7.0.jar
/opt/onedev/lib/io.onedev.server-plugin-buildspec-maven-4.7.0.jar     
/opt/onedev/lib/io.onedev.server-plugin-import-youtrack-4.7.0.jar      
/opt/onedev/lib/io.onedev.server-plugin-sso-openid-4.7.0.jar
/opt/onedev/lib/io.onedev.server-plugin-buildspec-node-4.7.0.jar      
/opt/onedev/lib/io.onedev.server-plugin-report-checkstyle-4.7.0.jar    
/opt/onedev/lib/io.onedev.server-product-4.7.0.jar
Robin Shen commented 2 years ago

Please do the following:

  1. Open a local terminal and change to maintenance folder of OnDev's k8s-resources directory
  2. Run command kubectl apply -k .
  3. Login to OneDev terminal by running kubectl exec command above
  4. Post output by running `ls /app/lib/io.onedev.server*.jar
  5. Run command /opt/onedev/bin/server.sh console to see if OneDev can be started. If not, please post console logout
Shamil commented 2 years ago
kubectl exec -it  onedev-59cfbbc7dc-dhcqk -- bash
root@onedev-59cfbbc7dc-dhcqk:/# ls /app/lib/io.onedev.server*.jar
/app/lib/io.onedev.server-core-4.7.0.jar                       /app/lib/io.onedev.server-plugin-executor-docker-4.7.0.jar      /app/lib/io.onedev.server-plugin-report-clover-4.7.0.jar
/app/lib/io.onedev.server-plugin-authenticator-ldap-4.7.0.jar  /app/lib/io.onedev.server-plugin-executor-kubernetes-4.7.0.jar  /app/lib/io.onedev.server-plugin-report-jest-4.7.0.jar
/app/lib/io.onedev.server-plugin-buildspec-gradle-4.7.0.jar    /app/lib/io.onedev.server-plugin-import-github-4.7.0.jar        /app/lib/io.onedev.server-plugin-report-markdown-4.7.0.jar
/app/lib/io.onedev.server-plugin-buildspec-maven-4.7.0.jar     /app/lib/io.onedev.server-plugin-import-youtrack-4.7.0.jar      /app/lib/io.onedev.server-plugin-sso-openid-4.7.0.jar
/app/lib/io.onedev.server-plugin-buildspec-node-4.7.0.jar      /app/lib/io.onedev.server-plugin-report-checkstyle-4.7.0.jar    /app/lib/io.onedev.server-product-4.7.0.jar
root@onedev-59cfbbc7dc-dhcqk:/# /opt/onedev/bin/server.sh console
Running OneDev...
--> Wrapper Started as Console
Java Service Wrapper Standard Edition 64-bit 3.5.44
  Copyright (C) 1999-2020 Tanuki Software, Ltd. All Rights Reserved.
    http://wrapper.tanukisoftware.com
  Licensed to OneDev for Service Wrapping

Launching a JVM...
WrapperManager: Initializing...
05:09:34 INFO  i.o.c.launcher.bootstrap.Bootstrap - Launching application from '/opt/onedev'...
05:09:34 INFO  i.o.c.launcher.bootstrap.Bootstrap - Cleaning temp directory...
05:09:34 INFO  i.o.c.launcher.loader.AppLoader - Initializing dependency injection container...
05:09:36 INFO  i.o.c.launcher.loader.AppLoader - Starting plugin manager...
05:09:40 ERROR i.o.s.p.DefaultPersistManager - Data version mismatch (app data version: 58, db data version: 57)
<-- Wrapper Stopped
Robin Shen commented 2 years ago

Version 4.7.0 has a bug upgrading to new versions. To fix this, please copy this file into /opt/onedev/lib to override existing file. Then OneDev should be able to start by running /opt/onedev/bin/server.sh console

If it starts fine, stop the server, and exit the terminal. From your local terminal, change to directory <OneDev k8s dir>/production, edit kustomization.yaml to change version to 5.3.0, and apply the change to upgrade to 5.3.0

Shamil commented 2 years ago

@robin - thanks, that worked :) it looks like I've lost some projects though?

Robin Shen commented 2 years ago

All projects should be migrated. Make sure you are login as admin to check if projects are there.

Shamil commented 2 years ago

I can confirm some projects have been lost and that the oldest activity listed in the projects was around 4 months ago, the last time I upgraded the server. I’ve noticed that some files appear to be more recent which is good news

I’ve a copy of the repos anyway so I can push them up.

Robin Shen commented 2 years ago

The buggy 4.7.0 release prevents projects from writing to database, and it explains why modifications after that are not persistent. Also make sure to schedule auto daily-backup for database.

Shamil commented 2 years ago

Ah gotcha - thanks!

OneDev referenced from other issue 2 years ago
Robin Shen changed state to 'Closed' 2 years ago
Previous Value Current Value
Open
Closed
issue 1 of 1
Type
Question
Priority
Major
Assignee
Issue Votes (0)
Watchers (3)
Reference
onedev/server#431
Please wait...
Page is in error, reload to recover