#1609  1dev can't start after underlying k8s node crashed
Closed
wojtek opened 7 months ago

While working on importing from YT (https://code.onedev.io/onedev/server/~issues/1596) I tried to maximise memory assigned to 1dev pod. k8s allowed it but running the import resulted in k8s node crash - later on k8s recreated node and pods but 1dev can't start:

12:54:45 ERROR i.onedev.commons.bootstrap.Bootstrap - Error booting application
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at io.onedev.server.event.Listener.notify(Listener.java:21)
	at io.onedev.server.event.DefaultListenerRegistry.invokeListeners(DefaultListenerRegistry.java:103)
	at io.onedev.server.event.DefaultListenerRegistry.post(DefaultListenerRegistry.java:153)
	at io.onedev.server.persistence.TransactionInterceptor$1.call(TransactionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultTransactionManager.lambda$call$0(DefaultTransactionManager.java:69)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:90)
	at io.onedev.server.persistence.DefaultTransactionManager.call(DefaultTransactionManager.java:60)
	at io.onedev.server.persistence.TransactionInterceptor.invoke(TransactionInterceptor.java:18)
	at io.onedev.server.OneDev.lambda$start$2(OneDev.java:151)
	at io.onedev.server.persistence.DefaultSessionManager.lambda$run$0(DefaultSessionManager.java:108)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:90)
	at io.onedev.server.persistence.DefaultSessionManager.run(DefaultSessionManager.java:107)
	at io.onedev.server.OneDev.start(OneDev.java:151)
	at io.onedev.commons.loader.DefaultPluginManager.start(DefaultPluginManager.java:44)
	at io.onedev.commons.loader.AppLoader.start(AppLoader.java:60)
	at io.onedev.commons.bootstrap.Bootstrap.main(Bootstrap.java:198)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:349)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.reflect.InvocationTargetException: null
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at io.onedev.server.event.Listener.notify(Listener.java:19)
	... 21 common frames omitted
Caused by: java.lang.IllegalArgumentException: No enum constant io.onedev.server.replica.ProjectReplica.Type.
	at java.base/java.lang.Enum.valueOf(Enum.java:240)
	at io.onedev.server.replica.ProjectReplica$Type.valueOf(ProjectReplica.java:20)
	at io.onedev.server.replica.ProjectReplica.loadType(ProjectReplica.java:46)
	at io.onedev.server.manager.impl.DefaultProjectManager.on(DefaultProjectManager.java:773)
	at io.onedev.server.persistence.TransactionInterceptor$1.call(TransactionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultTransactionManager.lambda$call$0(DefaultTransactionManager.java:62)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:90)
	at io.onedev.server.persistence.DefaultTransactionManager.call(DefaultTransactionManager.java:60)
	at io.onedev.server.persistence.TransactionInterceptor.invoke(TransactionInterceptor.java:18)
	... 26 common frames omitted

(version 9.2.0)

Robin Shen commented 7 months ago

When a project is created, OneDev will create file type under project's storage directory and write one value of PRIMARY, BACKUP to indicate replica type. Apparently in case of node crash, the file itself is created, but the content is not flushed to disk. You may fix this by removing this file to have OneDev re-populate it upon start.

To find out which project is in problem, please edit conf/logback.xml to enable debug logging.

wojtek commented 7 months ago

Looking at the ST and sources it looks like the clustering configuration type ( public static enum Type {PRIMARY, BACKUP, REDUNDANT};) can't be read from the filesystem for some reason (missing file resulting in null?): type = Type.valueOf(readFileToString(typeFile, UTF_8).toUpperCase().trim());

So the question is - is this information is stored in the filesystem or somesuch?

Robin Shen commented 7 months ago

This is stored in the file system. Please just delete this file as the empty file is not valid.

wojtek commented 7 months ago

When a project is created, OneDev will create file type under project's storage directory and write one value of PRIMARY, BACKUP to indicate replica type. Apparently in case of node crash, the file itself is created, but the content is not flushed to disk. You may fix this by removing this file to have OneDev re-populate it upon start.

To find out which project is in problem, please edit conf/logback.xml to enable debug logging.

For which packet I should enable the logging to get the information? io.onedev.server.manager.impl as it seems entry logger.debug("Checking project (path: {}, id: {})...", project.getPath(), projectId);? Could you enahnce the error handling with the required information (project name, path) directly in the error message?

This is stored in the file system. Please just delete this file as the empty file is not valid.

It occured to me - shouldn't 1dev handle this case and remove the file on it's own?

Robin Shen commented 7 months ago

For which packet I should enable the logging to get the information? io.onedev.server.manager.impl as it seems entry logger.debug("Checking project (path: {}, id: {})...", project.getPath(), projectId);? Could you enahnce the error handling with the required information (project name, path) directly in the error message?

Yes enable this package is fine. Adding project information to every error message is quite verbose considering this happens rarely.

It occured to me - shouldn't 1dev handle this case and remove the file on it's own?

Handing every edge cases is very verbose, especially for memory and file system errors. Giving error message and provides ways to recover is enough I think.

Robin Shen changed state to 'Closed' 7 months ago
Previous Value Current Value
Open
Closed
wojtek commented 7 months ago

For which packet I should enable the logging to get the information? io.onedev.server.manager.impl as it seems entry logger.debug("Checking project (path: {}, id: {})...", project.getPath(), projectId);? Could you enahnce the error handling with the required information (project name, path) directly in the error message?

Yes enable this package is fine. Adding project information to every error message is quite verbose considering this happens rarely.

Actually there is a slight problem - given that process crasshes immediatelly then the pod is terminated thus making it impossible to access it - to change configuration to figure out the filename/path or to actually delete it.

It occured to me - shouldn't 1dev handle this case and remove the file on it's own?

Handing every edge cases is very verbose, especially for memory and file system errors. Giving error message and provides ways to recover is enough I think.

It's not very edge case, and it may prevent pod startup (as seen above). And I wouldn't consider giving relevant information as "verbose" in errors.

wojtek changed state to 'Open' 7 months ago
Previous Value Current Value
Closed
Open
wojtek commented 7 months ago

OK, I got the logs:

17:47:18 DEBUG i.o.s.m.impl.DefaultProjectManager - Checking project (path: parentprojectname/projectname-component, id: 195)...
17:47:18 DEBUG i.o.s.m.impl.DefaultProjectManager - Checking project (path: parentprojectname/w-t, id: 235)...
17:47:19 ERROR i.onedev.commons.bootstrap.Bootstrap - Error booting application
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at io.onedev.server.event.Listener.notify(Listener.java:21)
	at io.onedev.server.event.DefaultListenerRegistry.invokeListeners(DefaultListenerRegistry.java:103)
	at io.onedev.server.event.DefaultListenerRegistry.post(DefaultListenerRegistry.java:153)

So it seems that the offending project is parentprojectname/w-t (with id: 235). Great, but it doesn't give any information where is the file.

I tried browsing the filesystem but wihout luck - no file with such name:

Defaulted container "onedev" out of: onedev, init (init), database-create (init)
root@onedev-7b99fd9c54-b9wbg:/# find /opt/onedev/ -iname "w-t"
root@onedev-7b99fd9c54-b9wbg:/# find /opt/ -iname "w-t"

nor actuall file named as such:

Defaulted container "onedev" out of: onedev, init (init), database-create (init)
root@onedev-7b99fd9c54-b9wbg:/# find /opt/onedev/ -iname "PRIMARY"
root@onedev-7b99fd9c54-b9wbg:/# find /opt/ -iname "PRIMARY"

Widening the search with wildcards still doesn't yield anything:

Defaulted container "onedev" out of: onedev, init (init), database-create (init)
root@onedev-7b99fd9c54-qh2hc:/# find /opt/onedev/ -iname "*PRIMARY*"
root@onedev-7b99fd9c54-qh2hc:/# find /opt/ -iname "*PRIMARY*"
root@onedev-7b99fd9c54-qh2hc:/# find / -iname "*PRIMARY*"
root@onedev-7b99fd9c54-qh2hc:/# find / -iname "*BACKUP*"
/usr/share/perl5/Debconf/DbDriver/Backup.pm
/usr/lib/systemd/system/dpkg-db-backup.timer
/usr/lib/systemd/system/dpkg-db-backup.service
/usr/libexec/dpkg/dpkg-db-backup
/etc/systemd/system/timers.target.wants/dpkg-db-backup.timer
/var/backups
/var/lib/systemd/deb-systemd-helper-enabled/dpkg-db-backup.timer.dsh-also
/var/lib/systemd/deb-systemd-helper-enabled/timers.target.wants/dpkg-db-backup.timer
/opt/onedev/bin/backup-db.sh
/opt/onedev/bin/backup-db.bat
/opt/onedev/temp/backup-db
/opt/onedev/logs/backup-db.log
/opt/onedev/site/program-backup
/opt/onedev/site/db-backup
/app/bin/backup-db.sh
/app/bin/backup-db.bat
root@onedev-7b99fd9c54-qh2hc:/# find / -iname "*REDUNDANT*"
/usr/lib/git-core/git-pack-redundant
root@onedev-7b99fd9c54-qh2hc:/# command terminated with exit code 137

EDIT: Would it be possible to add more logging to: io.onedev.server.replica.ProjectReplica#loadType like:

	public void loadType(File projectDir) {
		var typeFile = new File(projectDir, TYPE);
		try {
			if (typeFile.exists()) 
				type = Type.valueOf(readFileToString(typeFile, UTF_8).toUpperCase().trim());
			else 
				type = PRIMARY;
		} catch (IOException e) {
			logger.trace("Error while reading file: {}", typeFile);
			throw new RuntimeException(e);
		}
	}

EDIT2: My bad, upon looking again at the issue and comments the file is named: type and after removing it from 235 directory this error went away. Though I would still suggest renaming io.onedev.server.replica.ProjectReplica#TYPE to io.onedev.server.replica.ProjectReplica#TYPE_FILENAME for clarity :-)

wojtek commented 7 months ago

But it doesn't work still, another exception(s):

19:49:04 INFO  i.o.s.m.impl.DefaultBuildManager - Caching build info...
19:49:08 ERROR i.onedev.commons.bootstrap.Bootstrap - Error booting application
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
	at io.onedev.server.event.Listener.notify(Listener.java:21)
	at io.onedev.server.event.DefaultListenerRegistry.invokeListeners(DefaultListenerRegistry.java:103)
	at io.onedev.server.event.DefaultListenerRegistry.post(DefaultListenerRegistry.java:153)
	at io.onedev.server.persistence.TransactionInterceptor$1.call(TransactionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultTransactionManager.lambda$call$0(DefaultTransactionManager.java:69)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:90)
	at io.onedev.server.persistence.DefaultTransactionManager.call(DefaultTransactionManager.java:60)
	at io.onedev.server.persistence.TransactionInterceptor.invoke(TransactionInterceptor.java:18)
	at io.onedev.server.OneDev.postStart(OneDev.java:233)
	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:90)
	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:60)
	at io.onedev.commons.bootstrap.Bootstrap.main(Bootstrap.java:198)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:349)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.reflect.InvocationTargetException: null
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at io.onedev.server.event.Listener.notify(Listener.java:19)
	... 20 common frames omitted
Caused by: java.lang.NumberFormatException: For input string: ""
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Integer.parseInt(Integer.java:662)
	at java.base/java.lang.Integer.parseInt(Integer.java:770)
	at io.onedev.server.manager.impl.AbstractEnvironmentManager.checkVersion(AbstractEnvironmentManager.java:42)
	at io.onedev.server.manager.impl.DefaultIssueInfoManager.on(DefaultIssueInfoManager.java:273)
	at io.onedev.server.persistence.SessionInterceptor$1.call(SessionInterceptor.java:23)
	at io.onedev.server.persistence.DefaultSessionManager.call(DefaultSessionManager.java:90)
	at io.onedev.server.persistence.SessionInterceptor.invoke(SessionInterceptor.java:18)
	... 25 common frames omitted
19:49:08 INFO  io.onedev.commons.loader.AppLoader - Stopping application...
<-- Wrapper Stopped

Looking at the exception the issue comes from the fact that the file in which version information is store is also corrupted?

EDIT: I search for all the files named version.txt (it's hard to figure out from logs which one is actually at fault, sources don't help much either):

root@onedev-7b99fd9c54-cfp5p:/# find / -iname "*version.txt*" -exec echo -e "\n{}: " \; -exec cat {} \;

/opt/onedev/site/projects/145/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/145/info/commit/version.txt:
15
/opt/onedev/site/projects/145/info/issue/version.txt:
2
/opt/onedev/site/projects/182/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/182/info/commit/version.txt:
15
/opt/onedev/site/projects/132/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/132/info/commit/version.txt:
15
/opt/onedev/site/projects/132/info/issue/version.txt:
2
/opt/onedev/site/projects/21/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/21/info/commit/version.txt:
15
/opt/onedev/site/projects/21/info/issue/version.txt:
2
/opt/onedev/site/projects/6/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/6/info/commit/version.txt:
15
/opt/onedev/site/projects/6/info/issue/version.txt:
2
/opt/onedev/site/projects/118/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/118/info/commit/version.txt:
15
/opt/onedev/site/projects/118/info/issue/version.txt:
2
/opt/onedev/site/projects/2/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/2/info/commit/version.txt:
15
/opt/onedev/site/projects/2/info/issue/version.txt:
2
/opt/onedev/site/projects/148/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/148/info/commit/version.txt:
15
/opt/onedev/site/projects/148/info/issue/version.txt:
2
/opt/onedev/site/projects/116/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/116/info/commit/version.txt:
15
/opt/onedev/site/projects/116/info/issue/version.txt:
2
/opt/onedev/site/projects/83/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/83/info/commit/version.txt:
15
/opt/onedev/site/projects/83/info/issue/version.txt:
2
/opt/onedev/site/projects/174/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/174/info/commit/version.txt:
15
/opt/onedev/site/projects/174/info/issue/version.txt:
2
/opt/onedev/site/projects/139/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/139/info/commit/version.txt:
15
/opt/onedev/site/projects/139/info/issue/version.txt:
2
/opt/onedev/site/projects/136/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/136/info/commit/version.txt:
15
/opt/onedev/site/projects/136/info/issue/version.txt:
2
/opt/onedev/site/projects/210/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/210/info/commit/version.txt:
15
/opt/onedev/site/projects/210/info/issue/version.txt:
2
/opt/onedev/site/projects/32/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/32/info/commit/version.txt:
15
/opt/onedev/site/projects/32/info/issue/version.txt:
2
/opt/onedev/site/projects/134/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/134/info/commit/version.txt:
15
/opt/onedev/site/projects/134/info/issue/version.txt:
2
/opt/onedev/site/projects/142/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/142/info/commit/version.txt:
15
/opt/onedev/site/projects/142/info/issue/version.txt:
2
/opt/onedev/site/projects/33/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/33/info/commit/version.txt:
15
/opt/onedev/site/projects/33/info/issue/version.txt:
2
/opt/onedev/site/projects/196/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/196/info/commit/version.txt:
15
/opt/onedev/site/projects/196/info/issue/version.txt:
2
/opt/onedev/site/projects/92/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/92/info/commit/version.txt:
15
/opt/onedev/site/projects/92/info/issue/version.txt:
2
/opt/onedev/site/projects/103/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/103/info/commit/version.txt:
15
/opt/onedev/site/projects/103/info/issue/version.txt:
2
/opt/onedev/site/projects/177/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/177/info/commit/version.txt:
15
/opt/onedev/site/projects/177/info/issue/version.txt:
2
/opt/onedev/site/projects/40/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/40/info/commit/version.txt:
15
/opt/onedev/site/projects/40/info/issue/version.txt:
2
/opt/onedev/site/projects/217/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/217/info/commit/version.txt:
15
/opt/onedev/site/projects/217/info/issue/version.txt:
2
/opt/onedev/site/projects/207/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/207/info/commit/version.txt:
15
/opt/onedev/site/projects/207/info/issue/version.txt:
2
/opt/onedev/site/projects/3/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/3/info/commit/version.txt:
15
/opt/onedev/site/projects/3/info/issue/version.txt:
2
/opt/onedev/site/projects/81/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/81/info/commit/version.txt:
15
/opt/onedev/site/projects/81/info/issue/version.txt:
2
/opt/onedev/site/projects/57/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/57/info/commit/version.txt:
15
/opt/onedev/site/projects/57/info/issue/version.txt:
2
/opt/onedev/site/projects/125/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/125/info/commit/version.txt:
15
/opt/onedev/site/projects/125/info/issue/version.txt:
2
/opt/onedev/site/projects/216/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/216/info/commit/version.txt:
15
/opt/onedev/site/projects/216/info/issue/version.txt:
2
/opt/onedev/site/projects/215/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/215/info/commit/version.txt:
15
/opt/onedev/site/projects/215/info/issue/version.txt:
2
/opt/onedev/site/projects/69/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/69/info/commit/version.txt:
15
/opt/onedev/site/projects/69/info/issue/version.txt:
2
/opt/onedev/site/projects/28/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/28/info/commit/version.txt:
15
/opt/onedev/site/projects/86/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/86/info/commit/version.txt:
15
/opt/onedev/site/projects/86/info/issue/version.txt:
2
/opt/onedev/site/projects/55/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/55/info/commit/version.txt:
15
/opt/onedev/site/projects/55/info/issue/version.txt:
2
/opt/onedev/site/projects/60/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/60/info/commit/version.txt:
15
/opt/onedev/site/projects/98/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/98/info/commit/version.txt:
15
/opt/onedev/site/projects/98/info/issue/version.txt:
2
/opt/onedev/site/projects/62/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/62/info/commit/version.txt:
15
/opt/onedev/site/projects/62/info/issue/version.txt:
2
/opt/onedev/site/projects/149/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/149/info/commit/version.txt:
15
/opt/onedev/site/projects/149/info/issue/version.txt:
2
/opt/onedev/site/projects/26/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/26/info/commit/version.txt:
15
/opt/onedev/site/projects/26/info/issue/version.txt:
2
/opt/onedev/site/projects/202/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/202/info/commit/version.txt:
15
/opt/onedev/site/projects/202/info/issue/version.txt:
2
/opt/onedev/site/projects/224/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/224/info/commit/version.txt:
15
/opt/onedev/site/projects/224/info/issue/version.txt:
2
/opt/onedev/site/projects/119/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/119/info/commit/version.txt:
15
/opt/onedev/site/projects/119/info/issue/version.txt:
2
/opt/onedev/site/projects/169/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/169/info/commit/version.txt:
15
/opt/onedev/site/projects/169/info/issue/version.txt:
2
/opt/onedev/site/projects/168/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/168/info/commit/version.txt:
15
/opt/onedev/site/projects/168/info/issue/version.txt:
2
/opt/onedev/site/projects/223/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/223/info/commit/version.txt:
15
/opt/onedev/site/projects/223/info/issue/version.txt:
2
/opt/onedev/site/projects/56/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/56/info/commit/version.txt:
15
/opt/onedev/site/projects/56/info/issue/version.txt:
2
/opt/onedev/site/projects/114/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/114/info/commit/version.txt:
15
/opt/onedev/site/projects/114/info/issue/version.txt:
2
/opt/onedev/site/projects/110/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/110/info/commit/version.txt:
15
/opt/onedev/site/projects/110/info/issue/version.txt:
2
/opt/onedev/site/projects/191/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/191/info/commit/version.txt:
15
/opt/onedev/site/projects/191/info/issue/version.txt:
2
/opt/onedev/site/projects/227/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/227/info/commit/version.txt:
15
/opt/onedev/site/projects/227/info/issue/version.txt:
2
/opt/onedev/site/projects/7/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/7/info/commit/version.txt:
15
/opt/onedev/site/projects/7/info/issue/version.txt:
2
/opt/onedev/site/projects/34/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/34/info/commit/version.txt:
15
/opt/onedev/site/projects/34/info/issue/version.txt:
2
/opt/onedev/site/projects/68/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/68/info/commit/version.txt:
15
/opt/onedev/site/projects/68/info/issue/version.txt:
2
/opt/onedev/site/projects/105/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/105/info/commit/version.txt:
15
/opt/onedev/site/projects/105/info/issue/version.txt:
2
/opt/onedev/site/projects/25/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/25/info/commit/version.txt:
15
/opt/onedev/site/projects/25/info/issue/version.txt:
2
/opt/onedev/site/projects/71/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/71/info/commit/version.txt:
15
/opt/onedev/site/projects/71/info/issue/version.txt:
2
/opt/onedev/site/projects/111/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/111/info/commit/version.txt:
15
/opt/onedev/site/projects/111/info/issue/version.txt:
2
/opt/onedev/site/projects/29/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/29/info/commit/version.txt:
15
/opt/onedev/site/projects/29/info/issue/version.txt:
2
/opt/onedev/site/projects/20/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/20/info/commit/version.txt:
15
/opt/onedev/site/projects/20/info/issue/version.txt:
2
/opt/onedev/site/projects/229/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/229/info/commit/version.txt:
15
/opt/onedev/site/projects/153/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/153/info/commit/version.txt:
15
/opt/onedev/site/projects/153/info/issue/version.txt:
2
/opt/onedev/site/projects/107/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/107/info/commit/version.txt:
15
/opt/onedev/site/projects/107/info/issue/version.txt:
2
/opt/onedev/site/projects/157/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/157/info/commit/version.txt:
15
/opt/onedev/site/projects/157/info/issue/version.txt:
2
/opt/onedev/site/projects/112/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/112/info/commit/version.txt:
15
/opt/onedev/site/projects/112/info/issue/version.txt:
2
/opt/onedev/site/projects/94/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/94/info/commit/version.txt:
15
/opt/onedev/site/projects/94/info/issue/version.txt:
2
/opt/onedev/site/projects/232/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/232/info/commit/version.txt:
15
/opt/onedev/site/projects/232/info/issue/version.txt:
2
/opt/onedev/site/projects/23/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/23/info/commit/version.txt:
15
/opt/onedev/site/projects/23/info/issue/version.txt:
2
/opt/onedev/site/projects/138/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/138/info/commit/version.txt:
15
/opt/onedev/site/projects/138/info/issue/version.txt:
2
/opt/onedev/site/projects/63/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/63/info/commit/version.txt:
15
/opt/onedev/site/projects/63/info/issue/version.txt:
2
/opt/onedev/site/projects/160/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/160/info/commit/version.txt:
15
/opt/onedev/site/projects/160/info/issue/version.txt:
2
/opt/onedev/site/projects/147/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/147/info/commit/version.txt:
15
/opt/onedev/site/projects/147/info/issue/version.txt:
2
/opt/onedev/site/projects/66/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/66/info/commit/version.txt:
15
/opt/onedev/site/projects/66/info/issue/version.txt:
2
/opt/onedev/site/projects/52/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/52/info/commit/version.txt:
15
/opt/onedev/site/projects/52/info/issue/version.txt:
2
/opt/onedev/site/projects/167/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/167/info/commit/version.txt:
15
/opt/onedev/site/projects/167/info/issue/version.txt:
2
/opt/onedev/site/projects/37/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/37/info/commit/version.txt:
15
/opt/onedev/site/projects/37/info/issue/version.txt:
2
/opt/onedev/site/projects/128/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/128/info/commit/version.txt:
15
/opt/onedev/site/projects/128/info/issue/version.txt:
2
/opt/onedev/site/projects/113/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/113/info/commit/version.txt:
15
/opt/onedev/site/projects/113/info/issue/version.txt:
2
/opt/onedev/site/projects/180/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/180/info/commit/version.txt:
15
/opt/onedev/site/projects/180/info/issue/version.txt:
2
/opt/onedev/site/projects/158/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/158/info/commit/version.txt:
15
/opt/onedev/site/projects/158/info/issue/version.txt:
2
/opt/onedev/site/projects/108/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/108/info/commit/version.txt:
15
/opt/onedev/site/projects/108/info/issue/version.txt:
2
/opt/onedev/site/projects/106/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/106/info/commit/version.txt:
15
/opt/onedev/site/projects/106/info/issue/version.txt:
2
/opt/onedev/site/projects/8/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/8/info/commit/version.txt:
15
/opt/onedev/site/projects/8/info/issue/version.txt:
2
/opt/onedev/site/projects/164/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/164/info/commit/version.txt:
15
/opt/onedev/site/projects/164/info/issue/version.txt:
2
/opt/onedev/site/projects/133/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/133/info/commit/version.txt:
15
/opt/onedev/site/projects/133/info/issue/version.txt:
2
/opt/onedev/site/projects/175/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/175/info/commit/version.txt:
15
/opt/onedev/site/projects/175/info/issue/version.txt:
2
/opt/onedev/site/projects/162/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/162/info/commit/version.txt:
15
/opt/onedev/site/projects/162/info/issue/version.txt:
2
/opt/onedev/site/projects/117/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/117/info/commit/version.txt:
15
/opt/onedev/site/projects/117/info/issue/version.txt:
2
/opt/onedev/site/projects/48/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/48/info/commit/version.txt:
15
/opt/onedev/site/projects/48/info/issue/version.txt:
2
/opt/onedev/site/projects/135/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/135/info/commit/version.txt:
15
/opt/onedev/site/projects/135/info/issue/version.txt:
2
/opt/onedev/site/projects/218/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/218/info/commit/version.txt:
15
/opt/onedev/site/projects/218/info/issue/version.txt:
2
/opt/onedev/site/projects/120/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/120/info/commit/version.txt:
15
/opt/onedev/site/projects/120/info/issue/version.txt:
2
/opt/onedev/site/projects/67/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/67/info/commit/version.txt:
15
/opt/onedev/site/projects/67/info/issue/version.txt:
2
/opt/onedev/site/projects/151/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/151/info/commit/version.txt:
15
/opt/onedev/site/projects/151/info/issue/version.txt:
2
/opt/onedev/site/projects/209/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/209/info/commit/version.txt:
15
/opt/onedev/site/projects/150/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/150/info/commit/version.txt:
15
/opt/onedev/site/projects/206/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/206/info/commit/version.txt:
15
/opt/onedev/site/projects/206/info/issue/version.txt:
2
/opt/onedev/site/projects/64/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/64/info/commit/version.txt:
15
/opt/onedev/site/projects/64/info/issue/version.txt:
2
/opt/onedev/site/projects/146/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/146/info/commit/version.txt:
15
/opt/onedev/site/projects/146/info/issue/version.txt:
2
/opt/onedev/site/projects/75/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/75/info/commit/version.txt:
15
/opt/onedev/site/projects/75/info/issue/version.txt:
2
/opt/onedev/site/projects/45/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/45/info/commit/version.txt:
15
/opt/onedev/site/projects/45/info/issue/version.txt:
2
/opt/onedev/site/projects/181/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/181/info/commit/version.txt:
15
/opt/onedev/site/projects/181/info/issue/version.txt:
2
/opt/onedev/site/projects/184/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/184/info/commit/version.txt:
15
/opt/onedev/site/projects/184/info/issue/version.txt:
2
/opt/onedev/site/projects/79/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/79/info/commit/version.txt:
15
/opt/onedev/site/projects/79/info/issue/version.txt:
2
/opt/onedev/site/projects/163/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/163/info/commit/version.txt:
15
/opt/onedev/site/projects/163/info/issue/version.txt:
2
/opt/onedev/site/projects/189/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/189/info/commit/version.txt:
15
/opt/onedev/site/projects/189/info/issue/version.txt:
2
/opt/onedev/site/projects/39/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/39/info/commit/version.txt:
15
/opt/onedev/site/projects/39/info/issue/version.txt:
2
/opt/onedev/site/projects/225/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/225/info/commit/version.txt:
15
/opt/onedev/site/projects/225/info/issue/version.txt:
2
/opt/onedev/site/projects/1/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/1/info/commit/version.txt:
15
/opt/onedev/site/projects/1/info/issue/version.txt:
2
/opt/onedev/site/projects/143/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/143/info/commit/version.txt:
15
/opt/onedev/site/projects/143/info/issue/version.txt:
2
/opt/onedev/site/projects/220/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/220/info/commit/version.txt:
15
/opt/onedev/site/projects/220/info/issue/version.txt:
2
/opt/onedev/site/projects/126/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/126/info/commit/version.txt:
15
/opt/onedev/site/projects/126/info/issue/version.txt:
2
/opt/onedev/site/projects/212/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/212/info/commit/version.txt:
15
/opt/onedev/site/projects/212/info/issue/version.txt:
2
/opt/onedev/site/projects/137/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/137/info/commit/version.txt:
15
/opt/onedev/site/projects/137/info/issue/version.txt:
2
/opt/onedev/site/projects/16/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/16/info/commit/version.txt:
15
/opt/onedev/site/projects/16/info/issue/version.txt:
2
/opt/onedev/site/projects/234/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/234/info/commit/version.txt:
15
/opt/onedev/site/projects/234/info/issue/version.txt:
2
/opt/onedev/site/projects/46/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/46/info/commit/version.txt:
15
/opt/onedev/site/projects/46/info/issue/version.txt:
2
/opt/onedev/site/projects/129/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/129/info/commit/version.txt:
15
/opt/onedev/site/projects/129/info/issue/version.txt:
2
/opt/onedev/site/projects/65/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/65/info/commit/version.txt:
15
/opt/onedev/site/projects/19/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/19/info/commit/version.txt:
15
/opt/onedev/site/projects/19/info/issue/version.txt:
2
/opt/onedev/site/projects/49/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/49/info/commit/version.txt:
15
/opt/onedev/site/projects/49/info/issue/version.txt:
2
/opt/onedev/site/projects/77/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/77/info/commit/version.txt:
15
/opt/onedev/site/projects/77/info/issue/version.txt:
2
/opt/onedev/site/projects/82/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/82/info/commit/version.txt:
15
/opt/onedev/site/projects/82/info/issue/version.txt:
2
/opt/onedev/site/projects/43/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/43/info/commit/version.txt:
15
/opt/onedev/site/projects/43/info/issue/version.txt:
2
/opt/onedev/site/projects/4/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/4/info/commit/version.txt:
15
/opt/onedev/site/projects/4/info/issue/version.txt:
2
/opt/onedev/site/projects/141/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/141/info/commit/version.txt:
15
/opt/onedev/site/projects/141/info/issue/version.txt:
2
/opt/onedev/site/projects/97/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/97/info/commit/version.txt:
15
/opt/onedev/site/projects/97/info/issue/version.txt:
2
/opt/onedev/site/projects/76/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/76/info/commit/version.txt:
15
/opt/onedev/site/projects/76/info/issue/version.txt:
2
/opt/onedev/site/projects/228/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/228/info/commit/version.txt:
15
/opt/onedev/site/projects/228/info/issue/version.txt:
2
/opt/onedev/site/projects/195/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/195/info/commit/version.txt:
15
/opt/onedev/site/projects/195/info/issue/version.txt:
2
/opt/onedev/site/projects/235/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/235/info/commit/version.txt:
15
/opt/onedev/site/projects/235/info/issue/version.txt:
2
/opt/onedev/site/projects/203/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/203/info/commit/version.txt:
15
/opt/onedev/site/projects/203/info/issue/version.txt:
2
/opt/onedev/site/projects/156/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/156/info/commit/version.txt:
15
/opt/onedev/site/projects/208/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/208/info/commit/version.txt:
15
/opt/onedev/site/projects/208/info/issue/version.txt:
2
/opt/onedev/site/projects/186/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/186/info/commit/version.txt:
15
/opt/onedev/site/projects/186/info/issue/version.txt:
2
/opt/onedev/site/projects/61/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/61/info/commit/version.txt:
15
/opt/onedev/site/projects/61/info/issue/version.txt:
2
/opt/onedev/site/projects/222/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/222/info/commit/version.txt:
15
/opt/onedev/site/projects/222/info/issue/version.txt:
2
/opt/onedev/site/projects/123/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/123/info/commit/version.txt:
15
/opt/onedev/site/projects/123/info/issue/version.txt:
2
/opt/onedev/site/projects/85/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/85/info/commit/version.txt:
15
/opt/onedev/site/projects/85/info/issue/version.txt:
2
/opt/onedev/site/projects/10/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/10/info/commit/version.txt:
15
/opt/onedev/site/projects/10/info/issue/version.txt:
2
/opt/onedev/site/projects/144/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/144/info/commit/version.txt:
15
/opt/onedev/site/projects/144/info/issue/version.txt:
2
/opt/onedev/site/projects/100/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/100/info/commit/version.txt:
15
/opt/onedev/site/projects/100/info/issue/version.txt:
2
/opt/onedev/site/projects/183/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/183/info/commit/version.txt:
15
/opt/onedev/site/projects/183/info/issue/version.txt:
2
/opt/onedev/site/projects/17/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/17/info/commit/version.txt:
15
/opt/onedev/site/projects/17/info/issue/version.txt:
2
/opt/onedev/site/projects/11/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/11/info/commit/version.txt:
15
/opt/onedev/site/projects/11/info/issue/version.txt:

/opt/onedev/site/projects/96/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/96/info/commit/version.txt:
15
/opt/onedev/site/projects/96/info/issue/version.txt:
2
/opt/onedev/site/projects/198/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/198/info/commit/version.txt:
15
/opt/onedev/site/projects/198/info/issue/version.txt:
2
/opt/onedev/site/projects/165/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/165/info/commit/version.txt:
15
/opt/onedev/site/projects/165/info/issue/version.txt:
2
/opt/onedev/site/projects/230/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/230/info/commit/version.txt:
15
/opt/onedev/site/projects/230/info/issue/version.txt:
2
/opt/onedev/site/projects/31/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/31/info/commit/version.txt:
15
/opt/onedev/site/projects/31/info/issue/version.txt:
2
/opt/onedev/site/projects/12/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/12/info/commit/version.txt:
15
/opt/onedev/site/projects/12/info/issue/version.txt:
2
/opt/onedev/site/projects/89/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/89/info/commit/version.txt:
15
/opt/onedev/site/projects/89/info/issue/version.txt:
2
/opt/onedev/site/projects/179/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/179/info/commit/version.txt:
15
/opt/onedev/site/projects/179/info/issue/version.txt:
2
/opt/onedev/site/projects/211/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/211/info/commit/version.txt:
15
/opt/onedev/site/projects/211/info/issue/version.txt:
2
/opt/onedev/site/projects/122/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/122/info/commit/version.txt:
15
/opt/onedev/site/projects/122/info/issue/version.txt:
2
/opt/onedev/site/projects/131/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/131/info/commit/version.txt:
15
/opt/onedev/site/projects/131/info/issue/version.txt:
2
/opt/onedev/site/projects/193/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/193/info/commit/version.txt:
15
/opt/onedev/site/projects/193/info/issue/version.txt:
2
/opt/onedev/site/projects/201/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/201/info/commit/version.txt:
15
/opt/onedev/site/projects/201/info/issue/version.txt:
2
/opt/onedev/site/projects/190/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/190/info/commit/version.txt:
15
/opt/onedev/site/projects/190/info/issue/version.txt:
2
/opt/onedev/site/projects/159/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/159/info/commit/version.txt:
15
/opt/onedev/site/projects/159/info/issue/version.txt:
2
/opt/onedev/site/projects/102/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/102/info/commit/version.txt:
15
/opt/onedev/site/projects/102/info/issue/version.txt:
2
/opt/onedev/site/projects/187/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/187/info/commit/version.txt:
15
/opt/onedev/site/projects/187/info/issue/version.txt:
2
/opt/onedev/site/projects/58/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/58/info/commit/version.txt:
15
/opt/onedev/site/projects/58/info/issue/version.txt:
2
/opt/onedev/site/projects/78/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/78/info/commit/version.txt:
15
/opt/onedev/site/projects/78/info/issue/version.txt:
2
/opt/onedev/site/projects/14/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/14/info/commit/version.txt:
15
/opt/onedev/site/projects/14/info/issue/version.txt:
2
/opt/onedev/site/projects/36/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/36/info/commit/version.txt:
15
/opt/onedev/site/projects/36/info/issue/version.txt:
2
/opt/onedev/site/projects/124/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/124/info/commit/version.txt:
15
/opt/onedev/site/projects/124/info/issue/version.txt:
2
/opt/onedev/site/projects/5/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/5/info/commit/version.txt:
15
/opt/onedev/site/projects/5/info/issue/version.txt:
2
/opt/onedev/site/projects/204/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/204/info/commit/version.txt:
15
/opt/onedev/site/projects/204/info/issue/version.txt:
2
/opt/onedev/site/projects/42/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/42/info/commit/version.txt:
15
/opt/onedev/site/projects/42/info/issue/version.txt:
2
/opt/onedev/site/projects/54/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/54/info/commit/version.txt:
15
/opt/onedev/site/projects/54/info/issue/version.txt:
2
/opt/onedev/site/projects/200/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/200/info/commit/version.txt:
15
/opt/onedev/site/projects/200/info/issue/version.txt:
2
/opt/onedev/site/projects/219/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/219/info/commit/version.txt:
15
/opt/onedev/site/projects/219/info/issue/version.txt:
2
/opt/onedev/site/projects/199/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/199/info/commit/version.txt:
15
/opt/onedev/site/projects/199/info/issue/version.txt:
2
/opt/onedev/site/projects/15/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/15/info/commit/version.txt:
15
/opt/onedev/site/projects/15/info/issue/version.txt:
2
/opt/onedev/site/projects/172/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/172/info/commit/version.txt:
15
/opt/onedev/site/projects/172/info/issue/version.txt:
2
/opt/onedev/site/projects/233/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/233/info/commit/version.txt:
15
/opt/onedev/site/projects/233/info/issue/version.txt:
2
/opt/onedev/site/projects/104/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/104/info/commit/version.txt:
15
/opt/onedev/site/projects/104/info/issue/version.txt:
2
/opt/onedev/site/projects/154/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/154/info/commit/version.txt:
15
/opt/onedev/site/projects/154/info/issue/version.txt:
2
/opt/onedev/site/projects/80/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/80/info/commit/version.txt:
15
/opt/onedev/site/projects/80/info/issue/version.txt:
2
/opt/onedev/site/projects/99/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/99/info/commit/version.txt:
15
/opt/onedev/site/projects/99/info/issue/version.txt:
2
/opt/onedev/site/projects/27/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/27/info/commit/version.txt:
15
/opt/onedev/site/projects/27/info/issue/version.txt:
2
/opt/onedev/site/projects/155/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/155/info/commit/version.txt:
15
/opt/onedev/site/projects/155/info/issue/version.txt:
2
/opt/onedev/site/projects/87/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/87/info/commit/version.txt:
15
/opt/onedev/site/projects/87/info/issue/version.txt:
2
/opt/onedev/site/projects/115/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/115/info/commit/version.txt:
15
/opt/onedev/site/projects/115/info/issue/version.txt:
2
/opt/onedev/site/projects/231/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/231/info/commit/version.txt:
15
/opt/onedev/site/projects/231/info/issue/version.txt:
2
/opt/onedev/site/projects/93/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/93/info/commit/version.txt:
15
/opt/onedev/site/projects/93/info/issue/version.txt:
2
/opt/onedev/site/projects/101/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/101/info/commit/version.txt:
15
/opt/onedev/site/projects/101/info/issue/version.txt:
2
/opt/onedev/site/projects/88/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/88/info/commit/version.txt:
15
/opt/onedev/site/projects/88/info/issue/version.txt:
2
/opt/onedev/site/projects/176/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/176/info/commit/version.txt:
15
/opt/onedev/site/projects/176/info/issue/version.txt:
2
/opt/onedev/site/projects/188/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/188/info/commit/version.txt:
15
/opt/onedev/site/projects/188/info/issue/version.txt:
2
/opt/onedev/site/projects/22/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/22/info/commit/version.txt:
15
/opt/onedev/site/projects/22/info/issue/version.txt:
2
/opt/onedev/site/projects/213/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/213/info/commit/version.txt:
15
/opt/onedev/site/projects/213/info/issue/version.txt:
2
/opt/onedev/site/projects/35/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/35/info/commit/version.txt:
15
/opt/onedev/site/projects/13/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/13/info/commit/version.txt:
15
/opt/onedev/site/projects/13/info/issue/version.txt:
2
/opt/onedev/site/projects/109/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/109/info/commit/version.txt:
15
/opt/onedev/site/projects/109/info/issue/version.txt:
2
/opt/onedev/site/projects/84/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/84/info/commit/version.txt:
15
/opt/onedev/site/projects/84/info/issue/version.txt:
2
/opt/onedev/site/projects/194/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/194/info/commit/version.txt:
15
/opt/onedev/site/projects/194/info/issue/version.txt:
2
/opt/onedev/site/projects/214/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/214/info/commit/version.txt:
15
/opt/onedev/site/projects/214/info/issue/version.txt:
2
/opt/onedev/site/projects/130/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/130/info/commit/version.txt:
15
/opt/onedev/site/projects/130/info/issue/version.txt:
2
/opt/onedev/site/projects/221/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/221/info/commit/version.txt:
15
/opt/onedev/site/projects/221/info/issue/version.txt:
2
/opt/onedev/site/projects/192/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/192/info/commit/version.txt:
15
/opt/onedev/site/projects/192/info/issue/version.txt:
2
/opt/onedev/site/projects/95/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/95/info/commit/version.txt:
15
/opt/onedev/site/projects/95/info/issue/version.txt:
2
/opt/onedev/site/projects/24/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/24/info/commit/version.txt:
15
/opt/onedev/site/projects/171/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/171/info/commit/version.txt:
15
/opt/onedev/site/projects/171/info/issue/version.txt:
2
/opt/onedev/site/projects/41/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/41/info/commit/version.txt:
15
/opt/onedev/site/projects/41/info/issue/version.txt:
2
/opt/onedev/site/projects/74/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/74/info/commit/version.txt:
15
/opt/onedev/site/projects/72/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/72/info/commit/version.txt:
15
/opt/onedev/site/projects/72/info/issue/version.txt:
2
/opt/onedev/site/projects/166/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/166/info/commit/version.txt:
15
/opt/onedev/site/projects/166/info/issue/version.txt:
2
/opt/onedev/site/projects/51/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/51/info/commit/version.txt:
15
/opt/onedev/site/projects/51/info/issue/version.txt:
2
/opt/onedev/site/projects/161/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/161/info/commit/version.txt:
15
/opt/onedev/site/projects/127/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/127/info/commit/version.txt:
15
/opt/onedev/site/projects/127/info/issue/version.txt:
2
/opt/onedev/site/projects/140/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/140/info/commit/version.txt:
15
/opt/onedev/site/projects/140/info/issue/version.txt:
2
/opt/onedev/site/projects/90/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/90/info/commit/version.txt:
15
/opt/onedev/site/projects/90/info/issue/version.txt:
2
/opt/onedev/site/projects/91/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/91/info/commit/version.txt:
15
/opt/onedev/site/projects/91/info/issue/version.txt:
2
/opt/onedev/site/projects/173/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/173/info/commit/version.txt:
15
/opt/onedev/site/projects/173/info/issue/version.txt:
2
/opt/onedev/site/projects/47/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/47/info/commit/version.txt:
15
/opt/onedev/site/projects/47/info/issue/version.txt:
2
/opt/onedev/site/projects/121/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/121/info/commit/version.txt:
15
/opt/onedev/site/projects/121/info/issue/version.txt:
2
/opt/onedev/site/projects/30/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/30/info/commit/version.txt:
15
/opt/onedev/site/projects/30/info/issue/version.txt:
2
/opt/onedev/site/projects/59/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/59/info/commit/version.txt:
15
/opt/onedev/site/projects/59/info/issue/version.txt:
2
/opt/onedev/site/projects/197/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/197/info/commit/version.txt:
15
/opt/onedev/site/projects/197/info/issue/version.txt:
2
/opt/onedev/site/projects/170/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/170/info/commit/version.txt:
15
/opt/onedev/site/projects/170/info/issue/version.txt:
2
/opt/onedev/site/projects/226/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/226/info/commit/version.txt:
15
/opt/onedev/site/projects/226/info/issue/version.txt:
2
/opt/onedev/site/projects/178/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/178/info/commit/version.txt:
15
/opt/onedev/site/projects/178/info/issue/version.txt:
2
/opt/onedev/site/projects/50/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/50/info/commit/version.txt:
15
/opt/onedev/site/projects/50/info/issue/version.txt:
2
/opt/onedev/site/projects/44/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/44/info/commit/version.txt:
15
/opt/onedev/site/projects/44/info/issue/version.txt:
2
/opt/onedev/site/projects/73/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/73/info/commit/version.txt:
15
/opt/onedev/site/projects/73/info/issue/version.txt:
2
/opt/onedev/site/projects/70/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/70/info/commit/version.txt:
15
/opt/onedev/site/projects/70/info/issue/version.txt:
2
/opt/onedev/site/projects/53/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/53/info/commit/version.txt:
15
/opt/onedev/site/projects/53/info/issue/version.txt:
2
/opt/onedev/site/projects/205/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/205/info/commit/version.txt:
15
/opt/onedev/site/projects/205/info/issue/version.txt:
2
/opt/onedev/site/projects/38/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/38/info/commit/version.txt:
15
/opt/onedev/site/projects/38/info/issue/version.txt:
2
/opt/onedev/site/projects/185/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/185/info/commit/version.txt:
15
/opt/onedev/site/projects/185/info/issue/version.txt:
2
/opt/onedev/site/projects/152/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/152/info/commit/version.txt:
15
/opt/onedev/site/projects/152/info/issue/version.txt:
2
/opt/onedev/site/projects/9/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/9/info/commit/version.txt:
15
/opt/onedev/site/projects/9/info/issue/version.txt:
2
/opt/onedev/site/projects/18/info/pullRequest/version.txt:
7
/opt/onedev/site/projects/18/info/commit/version.txt:
15
/opt/onedev/site/projects/18/info/issue/version.txt:
2

It seems that /opt/onedev/site/projects/11/info/issue/version.txt: is the culprit as it's empty... setting it's contents to 2 should fix the issue?

EDIT: yes, adding 2 to the file fixed the issue...

Robin Shen commented 7 months ago

I will add code to check if the type and version file is empty to tolerate such errors. However it is nearly impossible to guard everywhere for such error in case of node crash causing file content not being flushed to disk.

To solve such error, periodical backup or HA should be considered.

Robin Shen commented 7 months ago

Further investigation:

Tolerating such errors can be harmful, for instance, reading the replica type file and assume it to be PRIMARY in case of reading errors can cause it sends outdated to other replicas.

The correct approach would be to report errors as soon as possible to get human intervention.

I will improve the error reporting to include file path in this case.

Robin Shen commented 7 months ago

Also with 9.2.1 you may override command and args via helm values.yaml so that you can run sleep infinity and exec into the container file system to fix things if OneDev container won't start.

wojtek commented 7 months ago

Thank you for the comments.

You have a point regarding handling it automatically but I would argue that it's not edge case - errors and data corruption can happen. Having better error logs indicating what the problem was and pointing in the right direction (file path!) would go a long way!

Robin Shen changed state to 'Closed' 6 months ago
Previous Value Current Value
Open
Closed
issue 1 of 1
Type
Question
Priority
Normal
Assignee
Labels
No labels
Issue Votes (0)
Watchers (3)
Reference
onedev/server#1609
Please wait...
Page is in error, reload to recover