git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Test "t0300-credentials" is failing on Arch/Artix: asks to enter the Username/Password in an infinite loop

From
IIIvan Ivanov <qmastery16@gmail.com>
Date
Mar 6, 2026, 01:05 UTC
Message-ID
<CAAaskFANnrqTAjQOHhAgzES9=S+y7w9u-LMWbRbi8FayVdvzFw@mail.gmail.com>
In-Reply-To
<CAAaskFBp+A9pOhd8O6owd6k0cDj66ipXrqH2Hj_c7j3d=HM10Q@mail.gmail.com>

To clarify, in addition to t0300-credentials.out , t0301-credential-cache.out and t0302-credential-store.out are also failing, however a similar-by-nature t0303-credential-external.out succeeds fine. Very strange. Seeing how it's leaking to the primary console, I suspect something may be wrong with shell handling: i.e. for t0302-credential-store test I am seeing these prompts that are waiting input for a user (could write any message here or just press Enter to get a new prompt) :

Username for 'https://example.com': Password for 'https://%20@example.com': Username for 'http://example.com': Password for 'http://example.com': Username for 'https://other.tld': Password for 'https://other.tld': Password for 'https://other@example.com': Username for 'http://path.tld/bar.git': Password for 'http://path.tld/bar.git': Password for 'https://user-overwrite@example.com': Username for 'https://example.com': Password for 'https://example.com': Password for 'https://user1@example.com': Username for 'https://example.com': ...

On Fri, Mar 6, 2026 at 3:42 AM Ivan Ivanov <qmastery16@gmail.com> wrote:
Show 251 quoted lines
>
> Good day! While trying to rebuild git for Arch/Artix, I run into the
> following problem: shortly after "*** prove (shell & unit tests) ***"
> I get asked the Username/Password in an endless loop. Below are the
> full logs, as well as the contents of
> ./test-results/t0300-credentials.out file, hope this is helpful for
> debugging. Please note that I have all the dependencies installed,
> even the optional ones like Apache HTTPD (some online manuals
> suggested doing that, but didn't help to pass this test)
>
> ==> Starting check()...
>     GEN git-difftool--helper
>     GEN git-filter-branch
>     GEN git-merge-octopus
>     GEN git-merge-one-file
>     GEN git-merge-resolve
>     GEN git-mergetool
>     GEN git-quiltimport
>     GEN git-request-pull
>     GEN git-submodule
>     GEN git-web--browse
>     GEN git-archimport
>     GEN git-cvsexportcommit
>     GEN git-cvsimport
>     GEN git-cvsserver
>     GEN git-send-email
>     GEN git-svn
>     GEN git-p4
>     GEN git-instaweb
>     GEN git-mergetool--lib
>     GEN git-sh-i18n
>     GEN git-sh-setup
>     SUBDIR git-gui
>     SUBDIR gitk-git
>     SUBDIR templates
>     GEN perl/build/lib/Git.pm
>     GEN perl/build/lib/Git/I18N.pm
>     GEN perl/build/lib/Git/IndexInfo.pm
>     GEN perl/build/lib/Git/LoadCPAN.pm
>     GEN perl/build/lib/Git/Packet.pm
>     GEN perl/build/lib/Git/SVN.pm
>     GEN perl/build/lib/Git/LoadCPAN/Error.pm
>     GEN perl/build/lib/Git/SVN/Editor.pm
>     GEN perl/build/lib/Git/SVN/Fetcher.pm
>     GEN perl/build/lib/Git/SVN/GlobSpec.pm
>     GEN perl/build/lib/Git/SVN/Log.pm
>     GEN perl/build/lib/Git/SVN/Migration.pm
>     GEN perl/build/lib/Git/SVN/Prompt.pm
>     GEN perl/build/lib/Git/SVN/Ra.pm
>     GEN perl/build/lib/Git/SVN/Utils.pm
>     GEN perl/build/lib/Git/LoadCPAN/Mail/Address.pm
>     GEN perl/build/lib/Git/SVN/Memoize/YAML.pm
> make -C t/ all
> make[1]: Entering directory '/home/username/artix_git/src/git/t'
> rm -f -r 'test-results'
> *** prove (shell & unit tests) ***
> Username for 'http://example.com':
> Password for 'http://example.com':
> Username for 'http://example.com':
> Password for 'http://example.com':
>
> /src/git/t$ cat ./test-results/t0300-credentials.out
> Initialized empty Git repository in /dev/shm/git-test/trash
> directory.t0300-credentials/.git/
> expecting success of 0300.1 'setup helper scripts':
>     cat >dump <<-\EOF &&
>     whoami=$(echo $0 | sed s/.*git-credential-//)
>     echo >&2 "$whoami: $*"
>     OIFS=$IFS
>     IFS==
>     while read key value; do
>         echo >&2 "$whoami: $key=$value"
>         if test -z "${key%%*\[\]}"
>         then
>             key=${key%%\[\]}
>             eval "$key=\"\$$key $value\""
>         else
>             eval "$key=$value"
>         fi
>     done
>     IFS=$OIFS
>     EOF
>
>     write_script git-credential-useless <<-\EOF &&
>     . ./dump
>     exit 0
>     EOF
>
>     write_script git-credential-quit <<-\EOF &&
>     . ./dump
>     echo quit=1
>     EOF
>
>     write_script git-credential-verbatim <<-\EOF &&
>     user=$1; shift
>     pass=$1; shift
>     . ./dump
>     test -z "$user" || echo username=$user
>     test -z "$pass" || echo password=$pass
>     EOF
>
>     write_script git-credential-verbatim-cred <<-\EOF &&
>     authtype=$1; shift
>     credential=$1; shift
>     . ./dump
>     echo capability[]=authtype
>     echo capability[]=state
>     test -z "${capability##*authtype*}" || exit 0
>     test -z "$authtype" || echo authtype=$authtype
>     test -z "$credential" || echo credential=$credential
>     test -z "${capability##*state*}" || exit 0
>     echo state[]=verbatim-cred:foo
>     EOF
>
>     write_script git-credential-verbatim-ephemeral <<-\EOF &&
>     authtype=$1; shift
>     credential=$1; shift
>     . ./dump
>     echo capability[]=authtype
>     test -z "${capability##*authtype*}" || exit 0
>     test -z "$authtype" || echo authtype=$authtype
>     test -z "$credential" || echo credential=$credential
>     echo "ephemeral=1"
>     EOF
>
>     write_script git-credential-verbatim-with-expiry <<-\EOF &&
>     user=$1; shift
>     pass=$1; shift
>     pexpiry=$1; shift
>     . ./dump
>     test -z "$user" || echo username=$user
>     test -z "$pass" || echo password=$pass
>     test -z "$pexpiry" || echo password_expiry_utc=$pexpiry
>     EOF
>
>     write_script git-credential-cntrl-in-username <<-\EOF &&
>     printf "username=\\007latrix Lestrange\\n"
>     EOF
>
>     PATH="$PWD:$PATH"
>
> ok 1 - setup helper scripts
>
> expecting success of 0300.2 'credential_fill invokes helper':
>     check fill "verbatim foo bar" <<-\EOF
>     protocol=http
>     host=example.com
>     --
>     protocol=http
>     host=example.com
>     username=foo
>     password=bar
>     --
>     verbatim: get
>     verbatim: protocol=http
>     verbatim: host=example.com
>     EOF
>
> --- expect-stdout    2026-03-06 00:33:02.009338195 +0000
> +++ stdout    2026-03-06 00:33:07.569338321 +0000
> @@ -1,4 +1,4 @@
>  protocol=http
>  host=example.com
> -username=foo
> -password=bar
> +username=
> +password=
> not ok 2 - credential_fill invokes helper
> #
> #        check fill "verbatim foo bar" <<-\EOF
> #        protocol=http
> #        host=example.com
> #        --
> #        protocol=http
> #        host=example.com
> #        username=foo
> #        password=bar
> #        --
> #        verbatim: get
> #        verbatim: protocol=http
> #        verbatim: host=example.com
> #        EOF
> #
>
> expecting success of 0300.3 'credential_fill invokes helper with credential':
>     check fill "verbatim-cred Bearer token" <<-\EOF
>     capability[]=authtype
>     protocol=http
>     host=example.com
>     --
>     capability[]=authtype
>     authtype=Bearer
>     credential=token
>     protocol=http
>     host=example.com
>     --
>     verbatim-cred: get
>     verbatim-cred: capability[]=authtype
>     verbatim-cred: protocol=http
>     verbatim-cred: host=example.com
>     EOF
>
> --- expect-stdout    2026-03-06 00:33:07.581338322 +0000
> +++ stdout    2026-03-06 00:33:08.191338336 +0000
> @@ -1,5 +1,4 @@
> -capability[]=authtype
> -authtype=Bearer
> -credential=token
>  protocol=http
>  host=example.com
> +username=
> +password=
> not ok 3 - credential_fill invokes helper with credential
> #
> #        check fill "verbatim-cred Bearer token" <<-\EOF
> #        capability[]=authtype
> #        protocol=http
> #        host=example.com
> #        --
> #        capability[]=authtype
> #        authtype=Bearer
> #        credential=token
> #        protocol=http
> #        host=example.com
> #        --
> #        verbatim-cred: get
> #        verbatim-cred: capability[]=authtype
> #        verbatim-cred: protocol=http
> #        verbatim-cred: host=example.com
> #        EOF
> #
>
> expecting success of 0300.4 'credential_fill invokes helper with
> ephemeral credential':
>     check fill "verbatim-ephemeral Bearer token" <<-\EOF
>     capability[]=authtype
>     protocol=http
>     host=example.com
>     --
>     capability[]=authtype
>     authtype=Bearer
>     credential=token
>     ephemeral=1
>     protocol=http
>     host=example.com
>     --
>     verbatim-ephemeral: get
>     verbatim-ephemeral: capability[]=authtype
>     verbatim-ephemeral: protocol=http
>     verbatim-ephemeral: host=example.com
>     EOF
Previous: Ivan IvanovNext: brian m. carlson
Message 2 of 12 in “Test "t0300-credentials" is failing on Arch/Artix: asks to enter the Username/Password in an infinite loop”
  1. Ivan IvanovMar 6, 2026
  2. Ivan IvanovMar 6, 2026
  3. brian m. carlsonMar 6, 2026
  4. Ivan IvanovMar 6, 2026
  5. brian m. carlsonMar 6, 2026
  6. Ivan IvanovMar 6, 2026
  7. Ivan IvanovMar 6, 2026
  8. Jeff KingMar 6, 2026
  9. Ivan IvanovMar 6, 2026
  10. Jeff KingMar 6, 2026
  11. Ivan IvanovMar 6, 2026
  12. brian m. carlsonMar 6, 2026

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.