New issue
Advanced search Search tips
Starred by 3 users

Issue metadata

Status: New
Owner: ----



Sign in to add a comment

Cannot change project settings

Reported by leosju...@gmail.com, Apr 28 2015

Issue description

*****************************************************************
*****                                                       *****
***** !!!! THIS BUG TRACKER IS FOR GERRIT CODE REVIEW !!!!  *****
*****                                                       *****
***** DO NOT SUBMIT BUGS FOR CHROME, ANDROID, CYANOGENMOD,  *****
***** INTERNAL ISSUES WITH YOUR COMPANY'S GERRIT SETUP, ETC.*****
*****                                                       *****
*****   THOSE ISSUES BELONG IN DIFFERENT ISSUE TRACKERS     *****
*****                                                       *****
*****************************************************************

Affected Version: 2.11

What steps will reproduce the problem?
1. Login to Gerrit web GUI as administrator
2. Projects > List > click on any project > General
3. Edit any select option in section Project Options or Contributor Agreements
4. Click on button Save Changes

What is the expected output? What do you see instead?
Expected 
Save changes, does not return any error.

Got 
Error gray screen with message

Code Review - Error
Cannot update <project name>


Please provide any additional information below.
No problem in version 2.10.3.1
Chrome 42, Chrome 36

No error message in $GERRIT_SITE/logs/error_log
All files in $GERRIT_SITE and repositories are owned by user who runs Gerrit, so it should not be error caused by access rights.
 
Project Member

Comment 1 by edwin.ke...@gmail.com, Apr 28 2015

one reason for this error could be that the project.config file is invalid, have you inspected it manually?

Comment 2 by leosju...@gmail.com, Apr 28 2015

Hello, thanks for idea.

I cannot see any invalid line, unless Gerrit 2.11 does not support project.config file format of Gerrit 2.10. No project.config file changes, but project settings cannot be changed at no project.


Here is example of my $project_name$/.git/config file
[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
	hideDotFiles = dotGitOnly
[remote "origin"]
	url = ssh://gerrittest.company.local:29418/masms.ios.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master
[submodule "common"]
	url = ssh://gerrittest.company.local:29418/masms.common.ios
I have the same on 2.11.
Looks like I'm not able to do modifications to refs/meta/config even if I have all permissions.

How to reproduce: 
Modify project access.

Expected: Access modified.

Actual: 
Code Review - Error
Server Error
/app/git_repo/kps-online.git/logs/refs/meta/config (Permission denied)

There's no changes in permissions was made during migration.
Project Member

Comment 4 by edwin.ke...@gmail.com, Apr 29 2015

@leosjunek
Then it must be some IOException while updating the project.config file in the refs/meta/config branch. Unfortunately we are not logging these exceptions. So it is hard to guess why it is failing. I've pushed a change to add this logging:
  https://gerrit-review.googlesource.com/67510
If you can build and deploy Gerrit with this change and check which error is reported in the error_log.

@aleksey.didik:
 > Code Review - Error
 > Server Error
 > /app/git_repo/kps-online.git/logs/refs/meta/config (Permission denied)

This is a different error than the one described above 'Cannot update <project name>'. Can you create a new issue for this?
Hello Edwin, I have some problems with building Gerrit with buck. I can wait till some minor Gerrit version of Gerrit is released, then download war and try. Then I will let know.

Comment 6 by leosju...@gmail.com, Jun 22 2015

Here is the error log, that occurs when trying to change project config.

[2015-06-22 16:43:57,971] WARN  com.google.gerrit.server.project.PutConfig : Failed to update config of project vis.test4.
java.io.FileNotFoundException: /opt/gitrepo/vis.test4.git/logs/refs/meta/config (Permission denied)
        at java.io.FileOutputStream.open0(Native Method)
        at java.io.FileOutputStream.open(FileOutputStream.java:270)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
        at org.eclipse.jgit.internal.storage.file.ReflogWriter.log(ReflogWriter.java:257)
        at org.eclipse.jgit.internal.storage.file.ReflogWriter.log(ReflogWriter.java:226)
        at org.eclipse.jgit.internal.storage.file.RefDirectory.log(RefDirectory.java:701)
        at org.eclipse.jgit.internal.storage.file.RefDirectoryUpdate.doUpdate(RefDirectoryUpdate.java:120)
        at org.eclipse.jgit.lib.RefUpdate$1.execute(RefUpdate.java:488)
        at org.eclipse.jgit.lib.RefUpdate.updateImpl(RefUpdate.java:622)
        at org.eclipse.jgit.lib.RefUpdate.update(RefUpdate.java:483)
        at org.eclipse.jgit.lib.RefUpdate.update(RefUpdate.java:464)
        at com.google.gerrit.server.git.VersionedMetaData$1.updateRef(VersionedMetaData.java:359)
        at com.google.gerrit.server.git.VersionedMetaData$1.commitAt(VersionedMetaData.java:314)
        at com.google.gerrit.server.git.VersionedMetaData$1.commit(VersionedMetaData.java:306)
        at com.google.gerrit.server.git.VersionedMetaData.commit(VersionedMetaData.java:153)
        at com.google.gerrit.server.project.PutConfig.apply(PutConfig.java:184)
        at com.google.gerrit.server.project.PutConfig.apply(PutConfig.java:121)
        at com.google.gerrit.server.project.PutConfig.apply(PutConfig.java:61)
        at com.google.gerrit.httpd.restapi.RestApiServlet.service(RestApiServlet.java:322)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:279)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:269)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:180)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
        at com.google.gerrit.httpd.GetUserFilter.doFilter(GetUserFilter.java:82)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gwtexpui.server.CacheControlFilter.doFilter(CacheControlFilter.java:73)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RunAsFilter.doFilter(RunAsFilter.java:117)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy$1.doFilter(AllRequestFilter.java:64)
        at com.google.gerrit.httpd.AllRequestFilter$FilterProxy.doFilter(AllRequestFilter.java:57)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.gerrit.httpd.RequestContextFilter.doFilter(RequestContextFilter.java:75)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:119)
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133)
        at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130)
        at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
        at org.eclipse.jetty.server.Server.handle(Server.java:497)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
        at java.lang.Thread.run(Thread.java:745)

Comment 7 by leosju...@gmail.com, Jun 22 2015

$<project_home>/logs/refs/meta/config files in several our projects were owned by root, not by user who runs gerrit. After change of ownership everything started to work normally. 

It seems Gerrit creates new project config file with wrong rights. Anyone has the same problem?

Comment 8 by leosju...@gmail.com, Jan 13 2016

Hello, 
according to https://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.11.1.html this issue has been fixed. Can any project member set it as Fixed and Closed?
Project Member

Comment 9 by logan@google.com, Aug 17 2016

Labels: Priority-3

Sign in to add a comment