#663  OneDev can not start after power failure
Closed
斗麦科技 opened 2 years ago

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... 06:29:52 INFO i.onedev.commons.bootstrap.Bootstrap - Launching application from '/opt/onedev'... 06:29:52 INFO i.onedev.commons.bootstrap.Bootstrap - Cleaning temp directory... 06:29:52 INFO io.onedev.commons.loader.AppLoader - Initializing dependency injection container... 06:29:54 INFO io.onedev.commons.loader.AppLoader - Starting plugin manager... 06:30:07 ERROR i.o.s.b.job.DefaultJobManager - Error scheduling project 'GrantProject/KeSanBaoDianWeb' java.lang.RuntimeException: java.io.EOFException: Short read of block. at io.onedev.server.git.GitUtils.parseCommit(GitUtils.java:371) at io.onedev.server.model.Project.getBlob(Project.java:690) at io.onedev.server.model.Project.getBuildSpec(Project.java:827) at io.onedev.server.buildspec.job.DefaultJobManager.schedule(DefaultJobManager.java:1042) at io.onedev.server.buildspec.job.DefaultJobManager$$EnhancerByGuice$$f15a1d2.CGLIB$schedule$7() at io.onedev.server.buildspec.job.DefaultJobManager$$EnhancerByGuice$$f15a1d2$$FastClassByGuice$$716679ed.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23) at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79) at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) at io.onedev.server.buildspec.job.DefaultJobManager$$EnhancerByGuice$$f15a1d2.schedule() at io.onedev.server.buildspec.job.DefaultJobManager.on(DefaultJobManager.java:979) at io.onedev.server.buildspec.job.DefaultJobManager$$EnhancerByGuice$$f15a1d2.CGLIB$on$9() at io.onedev.server.buildspec.job.DefaultJobManager$$EnhancerByGuice$$f15a1d2$$FastClassByGuice$$716679ed.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23) at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79) at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) at io.onedev.server.buildspec.job.DefaultJobManager$$EnhancerByGuice$$f15a1d2.on() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at io.onedev.commons.loader.Listener.notify(Listener.java:19) at io.onedev.commons.loader.DefaultListenerRegistry.post(DefaultListenerRegistry.java:69) at io.onedev.server.OneDev.postStart(OneDev.java:138) at io.onedev.server.OneDev$$EnhancerByGuice$$9f3b8bc9.CGLIB$postStart$0() at io.onedev.server.OneDev$$EnhancerByGuice$$9f3b8bc9$$FastClassByGuice$$a8f9989b.invoke() at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23) at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79) at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54) at io.onedev.server.OneDev$$EnhancerByGuice$$9f3b8bc9.postStart() at io.onedev.commons.loader.DefaultPluginManager.start(DefaultPluginManager.java:48) at io.onedev.commons.loader.AppLoader.start(AppLoader.java:74) at io.onedev.commons.bootstrap.Bootstrap.main(Bootstrap.java:189) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:349) at java.lang.Thread.run(Thread.java:748) Caused by: java.io.EOFException: Short read of block. at org.eclipse.jgit.util.IO.readFully(IO.java:203) at org.eclipse.jgit.internal.storage.file.UnpackedObject.open(UnpackedObject.java:72) at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openLooseObject(ObjectDirectory.java:479) at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openLooseFromSelfOrAlternate(ObjectDirectory.java:432) at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject(ObjectDirectory.java:408) at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:132) at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:203) at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:908) at io.onedev.server.git.GitUtils.parseCommit(GitUtils.java:363) ... 50 common frames omitted 06:30:07 ERROR i.onedev.commons.bootstrap.Bootstrap - Error booting application java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at io.onedev.commons.loader.Listener.notify(Listener.java:21) at io.onedev.commons.loader.DefaultListenerRegistry.post(DefaultListenerRegistry.java:69) at io.onedev.server.OneDev.postStart(OneDev.java:138) at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23) at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79) at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18) at io.onedev.commons.loader.DefaultPluginManager.start(DefaultPluginManager.java:48) at io.onedev.commons.loader.AppLoader.start(AppLoader.java:74) at io.onedev.commons.bootstrap.Bootstrap.main(Bootstrap.java:189) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:349) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at io.onedev.commons.loader.Listener.notify(Listener.java:19) ... 14 common frames omitted Caused by: java.lang.RuntimeException: java.io.EOFException: Short read of block. at io.onedev.server.infomanager.DefaultCommitInfoManager.collect(DefaultCommitInfoManager.java:1137) at io.onedev.server.infomanager.DefaultCommitInfoManager.on(DefaultCommitInfoManager.java:1151) at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23) at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:79) at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18) ... 19 common frames omitted Caused by: java.io.EOFException: Short read of block. at org.eclipse.jgit.util.IO.readFully(IO.java:203) at org.eclipse.jgit.internal.storage.file.UnpackedObject.open(UnpackedObject.java:72) at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openLooseObject(ObjectDirectory.java:479) at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject(ObjectDirectory.java:399) at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:132) at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:203) at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:908) at io.onedev.server.infomanager.DefaultCommitInfoManager.collect(DefaultCommitInfoManager.java:1132) ... 23 common frames omitted

Robin Shen changed title 2 years ago
Previous Value Current Value
onedev 突然断电后,启动失败
OneDev can not start after power failure
Robin Shen commented 2 years ago

Please follow below procedure to recover:

  1. Backup folder /opt/onedev
  2. Run below command:
mv /opt/onedev/site/projects /opt/onedev/site/projects-bak
  1. Now start OneDev, it will start with all projects empty.
  2. Switch to project GrantProject/KeSanBaoDianWeb and write down its id from url
  3. Stop OneDev, and run below command:
$ rm -rf /opt/onedev/site/projects
$ mv /opt/onedev/site/projects-bak /opt/onedev/site/projects
  1. Make sure you have a local clone of the corrupted repository, assume the path is /path/to/clone. Run below command:
$ rm -rf /opt/onedev/site/projects/<project id>/git
$ copy -r /path/to/clone/.git /opt/onedev/site/projects/<project id>/git
  1. Start OneDev again. If there are repository corruptions for other projects. Repeat the procedure.
Robin Shen changed fields 2 years ago
Name Previous Value Current Value
Type
Bug
Support Request
Robin Shen commented 2 years ago

There are corrections for step 5. Please check it.

斗麦科技 commented 2 years ago
  • 获取项目 ID 一步可以从 /opt/onedev/sampledb/onedev.script 中搜索项目名获取 insert 语句获取
Robin Shen changed state to 'Closed' 2 years ago
Previous Value Current Value
Open
Closed
issue 1 of 1
Type
Question
Priority
Normal
Assignee
Issue Votes (0)
Watchers (4)
Reference
onedev/server#663
Please wait...
Page is in error, reload to recover