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

Clone and fetch fail with "protocol error: impossibly long line"

      When cloning or fetching a repository with pull requests, the operation fails with the following error:

      $ git clone https://user@stash.example.com/scm/PROJECT/repo.git
      fatal: protocol error: impossibly long line
      fatal: Could not read from remote repository.
      
      Please make sure you have the correct access rights
      

      The same failure also affects SSH.

            [BSERV-4101] Clone and fetch fail with "protocol error: impossibly long line"

            Update: 1.8.4.4 and 1.8.5-rc3 have both been released. Both versions include the fix for this bug.

            Bryan Turner (Inactive) added a comment - Update: 1.8.4.4 and 1.8.5-rc3 have both been released. Both versions include the fix for this bug .

            Mark,

            Yes, it has been. The thread can be viewed in Nabble at: http://git.661346.n2.nabble.com/Symbolic-refs-break-ref-advertisement-on-1-8-4-3-tp7599457.html

            Git does not maintain an issue tracker; bugs are simply reported to the mailing list where anyone is welcome to address them (or not). In this case, Jeff King and Junio Hamano have both responded. The commit that introduced the bug has been reverted and the 1.8.5 final release (I'd imagine there will at least be an RC3 before that) as well as 1.8.4.4 (if such a release happens) should both be fine.

            Stash 2.9 includes a hard check for version 1.8.4.3 which will prevent the server from starting when it is detected. The same check will be included in any subsequent release of 2.5, 2.6, 2.7 and 2.8 if/when they happen.

            Best regards,
            Bryan Turner
            Atlassian Stash

            Bryan Turner (Inactive) added a comment - Mark, Yes, it has been. The thread can be viewed in Nabble at: http://git.661346.n2.nabble.com/Symbolic-refs-break-ref-advertisement-on-1-8-4-3-tp7599457.html Git does not maintain an issue tracker; bugs are simply reported to the mailing list where anyone is welcome to address them (or not). In this case, Jeff King and Junio Hamano have both responded. The commit that introduced the bug has been reverted and the 1.8.5 final release (I'd imagine there will at least be an RC3 before that) as well as 1.8.4.4 (if such a release happens) should both be fine. Stash 2.9 includes a hard check for version 1.8.4.3 which will prevent the server from starting when it is detected. The same check will be included in any subsequent release of 2.5, 2.6, 2.7 and 2.8 if/when they happen. Best regards, Bryan Turner Atlassian Stash

            Mark Fox added a comment -

            Has this been raised as an issue with the git development team? Link please?

            Mark Fox added a comment - Has this been raised as an issue with the git development team? Link please?

            To clarify the affects version, due to how pull requests work, this bug affects every version of Stash since they were introduced in 1.3.

            Bryan Turner (Inactive) added a comment - To clarify the affects version, due to how pull requests work, this bug affects every version of Stash since they were introduced in 1.3.

            This is caused by a bug introduced in Git 1.8.4.3. 1.8.4.3 and higher include a list of all symbolic refs in the repository in the ref advertisement. However, the list of symbolic refs is not split to make it fit into a "packet", which has a limit of 996 bytes prefixed by a 4 byte size. Stash's pull requests rely on symbolic refs, creating one symbolic ref for each. In repositories with more than a handful of pull requests (10 or 12 seems to be enough), all hosting operations fail.

            The issue has been reported on the mailing list. It is not possible to work around in Stash. The only solution is to downgrade to 1.8.4.2 or older (while remaining above 1.7.6, which is still the minimum supported version).

            All future releases of Stash will lock out 1.8.4.3 and higher until a version is released which fixes the bug.

            Bryan Turner (Inactive) added a comment - This is caused by a bug introduced in Git 1.8.4.3. 1.8.4.3 and higher include a list of all symbolic refs in the repository in the ref advertisement. However, the list of symbolic refs is not split to make it fit into a "packet", which has a limit of 996 bytes prefixed by a 4 byte size. Stash's pull requests rely on symbolic refs, creating one symbolic ref for each. In repositories with more than a handful of pull requests (10 or 12 seems to be enough), all hosting operations fail. The issue has been reported on the mailing list . It is not possible to work around in Stash. The only solution is to downgrade to 1.8.4.2 or older (while remaining above 1.7.6, which is still the minimum supported version). All future releases of Stash will lock out 1.8.4.3 and higher until a version is released which fixes the bug.

              bturner Bryan Turner (Inactive)
              bturner Bryan Turner (Inactive)
              Affected customers:
              0 This affects my team
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: