OneDev can not start after power failure (OD-663)
斗麦科技 opened 4 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 4 years ago
    Previous Value Current Value
    onedev 突然断电后,启动失败
    OneDev can not start after power failure
  • Robin Shen commented 4 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 4 years ago
    Name Previous Value Current Value
    Type
    Bug
    Support Request
  • Robin Shen commented 4 years ago

    There are corrections for step 5. Please check it.

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