Cannot access svn anymore, keep getting svn: E200015: authentication cancelled

Answered

After shutting down my Linux workstation (CentOS 6.7) over the weekend I find I cannot acces svn via IDEA (14.1.6) anymore.

Keep getting repeated requests for my GNOME keystore (?) password and then get the event: svn: E200015: authentication cancelled ?

I've tried clearing the svn auth cache and restarting IDEA - which seems to re-enable the requests for auth detials by every attempt is met by the GNOME keystore prompt and same error message.

I can access svn from the command line with my suername and passwords and repo servers are fine. It's IDEA thats become a problem, but was working last fri.

Looking at the idea logs seems to suggest the GNOME keystore is locked - but I saw no messages about incorrect passwords from IDEA at any point? How do I reset passwords an unlock this? is this GNOME keystore something IDEA has bundled?

2016-01-11 10:57:22,951 [ 120923]   INFO - api.progress.AbstractTaskQueue - org.tmatesoft.svn.core.SVNAuthenticationException: svn: E215000: GNOME Keyring is locked and we are non-interactive java.lang.RuntimeException: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E215000: GNOME Keyring is locked and we are non-interactive         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager$PersistentAuthenticationProviderProxy.saveAuthentication(SvnAuthenticationManager.java:429)         at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.acknowledgeAuthentication(DefaultSVNAuthenticationManager.java:232)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager.acknowledgeAuthentication(SvnAuthenticationManager.java:540)         at org.tmatesoft.svn.core.auth.BasicAuthenticationManager.acknowledgeAuthentication(BasicAuthenticationManager.java:53)         at org.tmatesoft.svn.core.internal.io.svn.sasl.SVNSaslAuthenticator.authenticate(SVNSaslAuthenticator.java:101)         at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:194)         at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:1275)         at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1253)         at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:168)         at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)         at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)         at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)         at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:46)         at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:31)         at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)         at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)         at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)         at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2461)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier.validationImpl(SvnAuthenticationNotifier.java:382)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier.interactiveValidation(SvnAuthenticationNotifier.java:339)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier$2.run(SvnAuthenticationNotifier.java:121)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier.ask(SvnAuthenticationNotifier.java:140)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier.onFirstNotification(SvnAuthenticationNotifier.java:200)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier.onFirstNotification(SvnAuthenticationNotifier.java:69)         at com.intellij.openapi.vcs.impl.GenericNotifierImpl.ensureNotify(GenericNotifierImpl.java:112)         at org.jetbrains.idea.svn.auth.SvnAuthenticationNotifier.ensureNotify(SvnAuthenticationNotifier.java:194)         at org.jetbrains.idea.svn.auth.SvnAuthenticationProvider.requestClientAuthentication(SvnAuthenticationProvider.java:68)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager$AuthenticationProviderProxy.requestClientAuthentication(SvnAuthenticationManager.java:186)         at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:162)         at org.tmatesoft.svn.core.internal.io.svn.sasl.SVNSaslAuthenticator.createSaslClient(SVNSaslAuthenticator.java:306)         at org.tmatesoft.svn.core.internal.io.svn.sasl.SVNSaslAuthenticator.authenticate(SVNSaslAuthenticator.java:92)         at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.authenticate(SVNConnection.java:194)         at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.authenticate(SVNRepositoryImpl.java:1275)         at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1253)         at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:168)         at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)         at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)         at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)         at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:46)         at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteGetInfo.run(SvnRemoteGetInfo.java:31)         at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)         at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)         at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)         at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2461)         at org.jetbrains.idea.svn.info.SvnKitInfoClient.doInfo(SvnKitInfoClient.java:55)         at org.jetbrains.idea.svn.SvnVcs.getInfo(SvnVcs.java:624)         at org.jetbrains.idea.svn.SvnVcs.getInfo(SvnVcs.java:629)

        at org.jetbrains.idea.svn.SvnUtil.getRepositoryRoot(SvnUtil.java:423)         at org.jetbrains.idea.svn.history.SvnCommittedChangesProvider.getRepositoryRoot(SvnCommittedChangesProvider.java:216)         at org.jetbrains.idea.svn.history.SvnCommittedChangesProvider.getCommittedChanges(SvnCommittedChangesProvider.java:166)         at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.a(CommittedChangesCache.java:511)         at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.access$3200(CommittedChangesCache.java:72)         at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache$21.run(CommittedChangesCache.java:1039)         at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.a(CommittedChangesCache.java:1064)         at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache.access$3100(CommittedChangesCache.java:72)         at com.intellij.openapi.vcs.changes.committed.CommittedChangesCache$20.run(CommittedChangesCache.java:1004)         at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:64)         at com.intellij.openapi.progress.ProgressManagerQueue.runStuff(ProgressManagerQueue.java:22)         at com.intellij.openapi.progress.AbstractTaskQueue$MyWorker.run(AbstractTaskQueue.java:79)         at com.intellij.openapi.progress.ProgressManagerQueue$1.run(ProgressManagerQueue.java:33)         at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:563)         at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:152)         at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:452)         at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402)         at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)         at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:137)         at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:126)         at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:400)         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)         at java.util.concurrent.FutureTask.run(FutureTask.java:262)         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)         at java.lang.Thread.run(Thread.java:744)         at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56) Caused by: org.tmatesoft.svn.core.SVNAuthenticationException: svn: E215000: GNOME Keyring is locked and we are non-interactive         at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:62)         at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:51)         at org.tmatesoft.svn.core.internal.util.jna.SVNGnomeKeyring.setPassword(SVNGnomeKeyring.java:270)         at org.tmatesoft.svn.core.internal.util.jna.SVNJNAUtil.addPasswordToGnomeKeyring(SVNJNAUtil.java:170)         at org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider$GnomeKeyringPasswordStorage.savePassword(DefaultSVNPersistentAuthenticationProvider.java:680)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager$ProxyPasswordStorageForDebug.savePassword(SvnAuthenticationManager.java:1106)         at org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider.savePasswordCredential(DefaultSVNPersistentAuthenticationProvider.java:403)         at org.tmatesoft.svn.core.internal.wc.DefaultSVNPersistentAuthenticationProvider.saveAuthentication(DefaultSVNPersistentAuthenticationProvider.java:310)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager$PersistentAuthenticationProviderProxy$4.compute(SvnAuthenticationManager.java:421)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager$PersistentAuthenticationProviderProxy$4.compute(SvnAuthenticationManager.java:411)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager.wrapNativeCall(SvnAuthenticationManager.java:1139)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager.access$1500(SvnAuthenticationManager.java:65)         at org.jetbrains.idea.svn.auth.SvnAuthenticationManager$PersistentAuthenticationProviderProxy.saveAuthentication(SvnAuthenticationManager.java:411)         ... 73 more
10 comments
Comment actions Permalink

Can you do any SVN operations from the command line svn client in the terminal?

https://youtrack.jetbrains.com/issue/IDEA-116033 may be related.

0
Comment actions Permalink

Yes svn from command line works fine, problem is IDEA interacting with GNOME keystore and now that the keystore is locked.

Does IDEA not report incorrect passwords to the keystore? so my unsucessful attempts to sync probally locked it?
Seems likely I may have given wrong password to keystore when I first started IDEA this morning - but saw no auth failure events nor popup messages.

Looking at ~/.subversion/config (same config IDEA should be using) It does not have any password stores configured? [auth] password-stores= all commented out? I don't use it from command line - this is something IDEA has added somewhere along the way.

I tried deleteing my ~/.subversion/ folder and restarting IDEA. But no joy, still says my GNOME keystore is locked - but only in idea.log, nothing helpful onscreen.

0
Comment actions Permalink

Found a way around my problem. If I delete all files from: ~/.gnome2/keyrings/ and ~/.subversion (just to be sure). Then start IDEA, then when I attempt to resync with svn in IDEA it prompts me for svn auth credentials and creates a new keystore and asks for another keystore  password. After re-entering everything I've got things running again.

That all was pretty cryptic and unhelpful from the IDEA side, lost most of my morning it.

0
Comment actions Permalink

Gah! might have spoken too soon. After opening another project (in the same window) the svn refresh is now spamming me with hundreds of "Cannot store credentials: forbidden by store-auth-creds=no"

What is wrong now? I've not changed any svn config/auth files since rebuilding them all this morning. Does IDEA change store creds to no? I told IDEA I wanted to store my credentials in the other project?

2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no" 2:24:08 PM Cannot store credentials: forbidden by "store-auth-creds=no"


If the password is stored in the GNOME keystore and the keystore is still not configured in ~/.subversion/config (all commented out) why am I getting this message? The password is already stored - I'm not trying to store another here and it would not be stored in ~/.subversion/ anyway but in the keystore? this message doesn't appear to relate to the keystore?

Why has IDEA reset store-auth-creds to no? Do I manually have to change this back every time I open and close IDEA windows?

0
Comment actions Permalink

I also note that IDEA appears to be creating auth files under ~/.subversion/auth with group and other read permissions? I'd set the parent folder to be only read/writable to my user only, seems like IDEA is ignoring this? I hope its not still storing password in here as plaintext?

0
Comment actions Permalink

Ah no, apologies its not IDEA that reset "store-auth-creds=no" (I don't think, opened and close a few windows). The module I had opened uses svnkit 1.7.4. When I run and deploy that webapp from IDEA then store-auth-creds changes in the default ~./subversion/config. Once this happens the next time I do a VCS refresh in IDEA (or open a new window) I'll get the "Cannot store credentials: forbidden by store-auth-creds=no" messages. Though I don't think IDEA is keeping passwords in subversion so I'm not sure how correct this message is?

So I also need some way to stop our apps SVNKit from interfereing with the default/IDEA subvrsion configuraion..?

0
Comment actions Permalink

You could navigate to "Subversion" settings, uncheck "Use system default Subversion configuration directory" and specify custom one. This way your application should not override subversion configs from that folder, but IDEA will use these configs for subversion operations.

0
Comment actions Permalink

Did think about that, but I believe that even though that is in settings its a per-module configuation. We have some 20 modules in this project some of which have 30 sub-modules... would take too long and I was bound to miss some and get very confused again some months later (or when I next had to take a branch).

Also didn't want to push an alternate subversion config dir onto all our users just because I'm the only dev using IDEA, so couldn't just flip the fix.

The issue seems to come several of our classes that use SVNKit like this:

        DefaultSVNOptions options = SVNWCUtil.createDefaultOptions(null, false);         options.setAuthStorageEnabled(AUTH_STORAGE_ENABLED); ...                 authManager = SVNWCUtil.createDefaultAuthenticationManager(null, username, password, false);


Flipping those falses (not read only configuration) to true (read only)  seems to stop it changing ~/.subversion/config - but I'm not so sure what regressions has caused. Had the JVM dump on me several times on me while using SVNKit, our app uses SASL auth which I think is why we messed with the AuthStorage. Mostly seems to work - mostly.

0
Comment actions Permalink

This is project setting (not module) and it should be stored in workspace.xml file which is ignored and not under version control (at least by default).
So you could apply this change just locally for your environment.

0
Comment actions Permalink

Ok some of our modules are so big I can only open modules as separate projects/windows so I use the term module a bit more interchangeably. I know I'd have a lot of project configs to change (each trunk and release/fix branches) and have to remember to keep changing on every future checkout. Can't even build some of these projects/modules without quitting IDEA first, or I run out of memory/patience, several gigs of code & test data in at least three of them.

But if the JVM linkage dumps continue its my only option.

0

Please sign in to leave a comment.