Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-8211

Master branch renamed/moved may cause java.io.IOException: Is a directory

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Low
    • None
    • None
    • None

    Description

      Problem

      If you move your master branch then create one with a name like master/alternate instead then push it back to origin, Stash will throw a HTTP 500 error stating:
      Error opening/reading [/var/atlassian/application-data/stash/shared/data/repositories/1/refs/heads/master]

      The logs will show:

      2015-12-04 12:15:39,342 WARN  [threadpool:thread-9] admin @6JC3HDx735x117x0 127.0.0.1 "POST /scm/test/testrepo.git/git-receive-pack HTTP/1.1" c.a.s.i.h.DefaultBuiltInHookHandlerFactory Hook com.atlas
      sian.stash.internal.plugin.hooks.branchlinks.PrintBranchLinksHook failed.
      java.lang.RuntimeException: Error opening/reading [/var/atlassian/application-data/stash/shared/data/repositories/1/refs/heads/master]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.execute(RawGitAgent.java:260) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.execute(RawGitAgent.java:251) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.resolveBranch(RawGitAgent.java:368) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.resolveHead(RawGitAgent.java:225) ~[na:na]
              at com.atlassian.stash.internal.scm.git.DefaultGitCommandFactory$1.call(DefaultGitCommandFactory.java:198) ~[na:na]
              at com.atlassian.stash.internal.scm.git.DefaultGitCommandFactory$1.call(DefaultGitCommandFactory.java:194) ~[na:na]
              at com.atlassian.stash.internal.repository.RepositoryMetadataServiceImpl.getDefaultBranch(RepositoryMetadataServiceImpl.java:93) ~[stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.plugin.hooks.branchlinks.PrintBranchLinksHook.getDefaultBranchId(PrintBranchLinksHook.java:66) ~[na:na]
              at com.atlassian.stash.internal.plugin.hooks.branchlinks.PrintBranchLinksHook.shouldPrint(PrintBranchLinksHook.java:57) ~[na:na]
              at com.atlassian.stash.internal.plugin.hooks.branchlinks.PrintBranchLinksHook.onReceive(PrintBranchLinksHook.java:44) ~[na:na]
              at com.atlassian.stash.internal.hook.DefaultBuiltInHookHandlerFactory$2.handle(DefaultBuiltInHookHandlerFactory.java:71) ~[stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.hook.DefaultHookService.doHandleRequest(DefaultHookService.java:345) [stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.hook.DefaultHookService.handleRequest(DefaultHookService.java:331) [stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.hook.DefaultHookService.handleRawRequest(DefaultHookService.java:239) [stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.hook.DefaultHookService$2$1.run(DefaultHookService.java:205) [stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.concurrent.StateTransferringExecutor$StateTransferringRunnable.run(StateTransferringExecutor.java:73) [stash-platform-3.9.1.jar:na]
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_66]
              at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_66]
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_66]
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_66]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
              ... 66 frames trimmed
      Caused by: java.io.IOException: Is a directory
              at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_66]
              at sun.nio.ch.FileDispatcherImpl.read(FileDispatcherImpl.java:46) ~[na:1.8.0_66]
              at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_66]
              at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.8.0_66]
              at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:159) ~[na:1.8.0_66]
              at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65) ~[na:1.8.0_66]
              at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109) ~[na:1.8.0_66]
              at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) ~[na:1.8.0_66]
              at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) ~[na:1.8.0_66]
              at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) ~[na:1.8.0_66]
              at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[na:1.8.0_66]
              at java.io.InputStreamReader.read(InputStreamReader.java:184) ~[na:1.8.0_66]
              at java.io.BufferedReader.fill(BufferedReader.java:161) ~[na:1.8.0_66]
              at java.io.BufferedReader.readLine(BufferedReader.java:324) ~[na:1.8.0_66]
              at java.io.BufferedReader.readLine(BufferedReader.java:389) ~[na:1.8.0_66]
              at com.atlassian.stash.internal.scm.git.RawGitAgent$FirstLineCallback.doWithReader(RawGitAgent.java:473) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent$FirstLineCallback.doWithReader(RawGitAgent.java:469) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.execute(RawGitAgent.java:256) ~[na:na]
              ... 22 common frames omitted
      2015-12-04 12:15:46,723 ERROR [http-nio-7990-exec-3] admin @6JC3HDx735x118x0 151ydgu 127.0.0.1 "GET /projects/TEST/repos/testrepo/browse HTTP/1.1" c.a.s.i.w.HandlerExceptionResolverImpl Error opening/reading [/var/atlassian/application-data/stash/shared/data/repositories/1/refs/heads/master]
      java.lang.RuntimeException: Error opening/reading [/var/atlassian/application-data/stash/shared/data/repositories/1/refs/heads/master]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.execute(RawGitAgent.java:260) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.execute(RawGitAgent.java:251) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.resolveBranch(RawGitAgent.java:368) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.resolveHead(RawGitAgent.java:225) ~[na:na]
              at com.atlassian.stash.internal.scm.git.DefaultGitCommandFactory$1.call(DefaultGitCommandFactory.java:198) ~[na:na]
              at com.atlassian.stash.internal.scm.git.DefaultGitCommandFactory$1.call(DefaultGitCommandFactory.java:194) ~[na:na]
              at com.atlassian.stash.internal.repository.RepositoryMetadataServiceImpl.getDefaultBranch(RepositoryMetadataServiceImpl.java:93) ~[stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.web.repos.RepositoryController.browseFilePath(RepositoryController.java:271) ~[RepositoryController.class:na]
              at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25) [applinks-plugin-4.3.5_1427859172000.jar:na]
              at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:83) [StashAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:111) [BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:77) [BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:103) [atlassian-trusted-apps-core-4.0.0.jar:na]
             at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:79) [atlassian-oauth-service-provider-plugin-1.9.10_1427859174000.jar:na]
              at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:32) [analytics-client-3.65.1_1428700568000.jar:na]
              at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:32) [analytics-client-3.65.1_1428700568000.jar:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:89) [BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75) [BeforeLoginPluginAuthenticationFilter.class:na]
              at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:85) [stash-service-impl-3.9.1.jar:na]
              at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38) [ConfigurableWebFilter.class:na]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
              ... 273 frames trimmed
      Caused by: java.io.IOException: Is a directory
              at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_66]
              at sun.nio.ch.FileDispatcherImpl.read(FileDispatcherImpl.java:46) ~[na:1.8.0_66]
              at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_66]
              at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.8.0_66]
              at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:159) ~[na:1.8.0_66]
              at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:65) ~[na:1.8.0_66]
              at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:109) ~[na:1.8.0_66]
              at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:103) ~[na:1.8.0_66]
              at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) ~[na:1.8.0_66]
              at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) ~[na:1.8.0_66]
              at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) ~[na:1.8.0_66]
              at java.io.InputStreamReader.read(InputStreamReader.java:184) ~[na:1.8.0_66]
              at java.io.BufferedReader.fill(BufferedReader.java:161) ~[na:1.8.0_66]
              at java.io.BufferedReader.readLine(BufferedReader.java:324) ~[na:1.8.0_66]
              at java.io.BufferedReader.readLine(BufferedReader.java:389) ~[na:1.8.0_66]
              at com.atlassian.stash.internal.scm.git.RawGitAgent$FirstLineCallback.doWithReader(RawGitAgent.java:473) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent$FirstLineCallback.doWithReader(RawGitAgent.java:469) ~[na:na]
              at com.atlassian.stash.internal.scm.git.RawGitAgent.execute(RawGitAgent.java:256) ~[na:na]
              ... 24 common frames omitted
      

      Steps to reproduce

      1. Create a repository
      2. Clone the newly created repository to a local
      3. Add something to the local repository and commit it
      4. git branch -m tmp
      5. git branch master/alternate
      6. git checkout master/alternate
      7. git branch -D tmp
      8. git push origin master/alternate

      Proposed solution

      This scenario should be handled the same way as it is described in the following article: https://confluence.atlassian.com/display/STASHKB/NoDefaultBranchException+error+regarding+the+default+branch+-+this+branch+does+not+exist.

      Attachments

        Activity

          People

            Unassigned Unassigned
            pkoczan Peter Koczan (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:

              Backbone Issue Sync