Discussion:
svn password prompt hanging in PowerShell
David Gardiner
2018-06-27 01:13:15 UTC
Permalink
Sorry, just to clarify.. I just tried using cmd.exe and that had the same
problem - so not just a PowerShell problem.

Running Windows 10 1803 (17134.112)
I downloaded the latest TortoiseSVN build along with debug symbols and got
ntdll.dll!NtDeviceIoControlFile () Unknown
KernelBase.dll!ConsoleCallServerGeneric() Unknown
KernelBase.dll!GetConsoleInput() Unknown
KernelBase.dll!ReadConsoleInputW () Unknown
ucrtbase.dll!console_input_reopen_and_retry<<lambda_
bc4991f5022419389f2d00bcc230aada> >() Unknown
ucrtbase.dll!_getch_nolock () Unknown
ucrtbase.dll!_getch () Unknown
libsvn_tsvn.dll!terminal_getc(int * code, terminal_handle_t *
terminal, int can_erase, apr_pool_t *) Line 336 C
libsvn_tsvn.dll!prompt(const char * * result, const char *
prompt_msg, int hide, svn_cmdline_prompt_baton2_t * pb, apr_pool_t * pool)
Line 504 C
libsvn_tsvn.dll!svn_cmdline_auth_simple_prompt(svn_auth_cred_simple_t
* * cred_p, void * baton, const char * realm, const char * username, int
may_save, apr_pool_t * pool) Line 628 C
[Inline Frame] libsvn_tsvn.dll!prompt_for_simple_creds(svn_auth_cred_simple_t
* *) Line 640 C
libsvn_tsvn.dll!simple_prompt_first_creds(void * * credentials_p,
void * * iter_baton, void * provider_baton, apr_hash_t * parameters, const
char * realmstring, apr_pool_t * pool) Line 663 C
libsvn_tsvn.dll!svn_auth_next_credentials(void * * credentials,
svn_auth_iterstate_t * state, apr_pool_t * pool) Line 354 C
libsvn_tsvn.dll!svn_ra_serf__credentials_callback(char * * username,
char * * password, serf_request_t * request, void * baton, int code, const
char * authn_type, const char * realm, apr_pool_t * pool) Line 1211 C
[Inline Frame] libsvn_tsvn.dll!serf__provide_credentials(serf_context_t
* authn_type, char * * pool, char * *) Line 1022 C
libsvn_tsvn.dll!serf__handle_basic_auth(int code, serf_request_t *
request, serf_bucket_t * response, const char * auth_hdr, const char *
auth_attr, void * baton, apr_pool_t * pool) Line 97 C
[Inline Frame] libsvn_tsvn.dll!handle_auth_headers(int) Line 200 C
libsvn_tsvn.dll!dispatch_auth(int code, serf_request_t * request,
serf_bucket_t * response, void * baton, apr_pool_t * pool) Line 312 C
libsvn_tsvn.dll!serf__handle_auth_response(int * consumed_response,
serf_request_t * request, serf_bucket_t * response, void * baton,
apr_pool_t * pool) Line 370 C
[Inline Frame] libsvn_tsvn.dll!handle_response(serf_request_t *
pool, apr_pool_t *) Line 929 C
libsvn_tsvn.dll!read_from_connection(serf_connection_t * conn) Line
1136 C
[Inline Frame] libsvn_tsvn.dll!serf__process_connection(serf_connection_t
* events, short) Line 1257 C
libsvn_tsvn.dll!serf_event_trigger(serf_context_t * serf_baton, void
* desc, const apr_pollfd_t *) Line 232 C
[Inline Frame] libsvn_tsvn.dll!serf_context_run(serf_context_t *
ctx, int) Line 305 C
libsvn_tsvn.dll!svn_ra_serf__context_run(svn_ra_serf__session_t *
sess, __int64 * waittime_left, apr_pool_t *) Line 910 C
[Inline Frame] libsvn_tsvn.dll!svn_ra_serf__context_run_wait(int *
sess, svn_ra_serf__session_t *) Line 981 C
[Inline Frame] libsvn_tsvn.dll!svn_ra_serf__
context_run_one(svn_ra_serf__handler_t * handler, apr_pool_t *) Line
1021 C
libsvn_tsvn.dll!svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t
* serf_sess, const char * * corrected_url, apr_pool_t * result_pool,
apr_pool_t * scratch_pool) Line 544 C
libsvn_tsvn.dll!svn_ra_serf__open(svn_ra_session_t * session, const
char * * corrected_url, const char * session_URL, const svn_ra_callbacks2_t
* callbacks, void * callback_baton, svn_auth_baton_t * auth_baton,
apr_hash_t * config, apr_pool_t * result_pool, apr_pool_t * scratch_pool)
Line 601 C
libsvn_tsvn.dll!svn_ra_open4(svn_ra_session_t * * session_p, const
char * * corrected_url_p, const char * repos_URL, const char * uuid, const
svn_ra_callbacks2_t * callbacks, void * callback_baton, apr_hash_t *
config, apr_pool_t * pool) Line 384 C
libsvn_tsvn.dll!svn_client__open_ra_session_internal(svn_ra_session_t
* * ra_session, const char * * corrected_url, const char * base_url, const
char * base_dir_abspath, const apr_array_header_t * commit_items, int
write_dav_props, int read_dav_props, svn_client_ctx_t * ctx, apr_pool_t *
result_pool, apr_pool_t * scratch_pool) Line 421 C
libsvn_tsvn.dll!update_internal(long * result_rev, int *
timestamp_sleep, apr_hash_t * conflicted_paths, svn_ra_session_t * *
ra_session_p, const char * local_abspath, const char * anchor_abspath,
const svn_opt_revision_t * revision, svn_depth_t depth, int
depth_is_sticky, int ignore_externals, int allow_unver_obstructions, int
adds_as_modification, int notify_summary, svn_client_ctx_t * ctx,
apr_pool_t * result_pool, apr_pool_t * scratch_pool) Line 405 C
libsvn_tsvn.dll!svn_client__update_internal(long * result_rev, int *
timestamp_sleep, const char * local_abspath, const svn_opt_revision_t *
revision, svn_depth_t depth, int depth_is_sticky, int ignore_externals, int
allow_unver_obstructions, int adds_as_modification, int make_parents, int
innerupdate, svn_ra_session_t * ra_session, svn_client_ctx_t * ctx,
apr_pool_t * pool) Line 648 C
libsvn_tsvn.dll!svn_client_update4(apr_array_header_t * *
result_revs, const apr_array_header_t * paths, const svn_opt_revision_t *
revision, svn_depth_t depth, int depth_is_sticky, int ignore_externals, int
allow_unver_obstructions, int adds_as_modification, int make_parents,
svn_client_ctx_t * ctx, apr_pool_t * pool) Line 722 C
svn.exe!svn_cl__update(apr_getopt_t * os, void * baton, apr_pool_t *
scratch_pool) Line 169 C
svn.exe!sub_main(int * exit_code, int argc, const char * * argv,
apr_pool_t * pool) Line 3247 C
svn.exe!main(int argc, const char * * argv) Line 3336 C
[Inline Frame] svn.exe!invoke_main() Line 78 C++
svn.exe!__scrt_common_main_seh() Line 283 C++
kernel32.dll!BaseThreadInitThunk () Unknown
ntdll.dll!RtlUserThreadStart () Unknown
My AD domain password changed recently, and so running 'svn update' is
now prompting me to enter my new password.
If I run this from the PowerShell command prompt, I enter the first
character of my password and then the UI locks up.
eg.
D:\dev\svn\MyProject> svn update
Authentication realm: <https://svn.server.com:443> SVN Server
Password for 'dgardiner': *
A colleague has had the same experience. His workaround was to use
cmd.exe instead of PowerShell.
This used to work without issue. Not sure if it's a change in svn.exe or
PowerShell.
svn --version
svn, version 1.10.0-dev (under development)
compiled Apr 14 2018, 10:24:15 on x86-microsoft-windows
David
Johan Corveleyn
2018-06-27 10:05:13 UTC
Permalink
Post by David Gardiner
Sorry, just to clarify.. I just tried using cmd.exe and that had the same
problem - so not just a PowerShell problem.
Running Windows 10 1803 (17134.112)
I downloaded the latest TortoiseSVN build along with debug symbols and got
ntdll.dll!NtDeviceIoControlFile () Unknown
KernelBase.dll!ConsoleCallServerGeneric() Unknown
KernelBase.dll!GetConsoleInput() Unknown
KernelBase.dll!ReadConsoleInputW () Unknown
ucrtbase.dll!console_input_reopen_and_retry<<lambda_bc4991f5022419389f2d00bcc230aada>
() Unknown
ucrtbase.dll!_getch_nolock () Unknown
ucrtbase.dll!_getch () Unknown
libsvn_tsvn.dll!terminal_getc(int * code, terminal_handle_t *
terminal, int can_erase, apr_pool_t *) Line 336 C
libsvn_tsvn.dll!prompt(const char * * result, const char *
prompt_msg, int hide, svn_cmdline_prompt_baton2_t * pb, apr_pool_t * pool)
Line 504 C
libsvn_tsvn.dll!svn_cmdline_auth_simple_prompt(svn_auth_cred_simple_t
* * cred_p, void * baton, const char * realm, const char * username, int
may_save, apr_pool_t * pool) Line 628 C
[Inline Frame]
libsvn_tsvn.dll!prompt_for_simple_creds(svn_auth_cred_simple_t * *) Line 640
C
libsvn_tsvn.dll!simple_prompt_first_creds(void * * credentials_p,
void * * iter_baton, void * provider_baton, apr_hash_t * parameters, const
char * realmstring, apr_pool_t * pool) Line 663 C
libsvn_tsvn.dll!svn_auth_next_credentials(void * * credentials,
svn_auth_iterstate_t * state, apr_pool_t * pool) Line 354 C
libsvn_tsvn.dll!svn_ra_serf__credentials_callback(char * * username,
char * * password, serf_request_t * request, void * baton, int code, const
char * authn_type, const char * realm, apr_pool_t * pool) Line 1211 C
[Inline Frame]
libsvn_tsvn.dll!serf__provide_credentials(serf_context_t * authn_type, char
* * pool, char * *) Line 1022 C
libsvn_tsvn.dll!serf__handle_basic_auth(int code, serf_request_t *
request, serf_bucket_t * response, const char * auth_hdr, const char *
auth_attr, void * baton, apr_pool_t * pool) Line 97 C
[Inline Frame] libsvn_tsvn.dll!handle_auth_headers(int) Line 200 C
libsvn_tsvn.dll!dispatch_auth(int code, serf_request_t * request,
serf_bucket_t * response, void * baton, apr_pool_t * pool) Line 312 C
libsvn_tsvn.dll!serf__handle_auth_response(int * consumed_response,
serf_request_t * request, serf_bucket_t * response, void * baton, apr_pool_t
* pool) Line 370 C
[Inline Frame] libsvn_tsvn.dll!handle_response(serf_request_t * pool,
apr_pool_t *) Line 929 C
libsvn_tsvn.dll!read_from_connection(serf_connection_t * conn) Line
1136 C
[Inline Frame]
libsvn_tsvn.dll!serf__process_connection(serf_connection_t * events, short)
Line 1257 C
libsvn_tsvn.dll!serf_event_trigger(serf_context_t * serf_baton, void
* desc, const apr_pollfd_t *) Line 232 C
[Inline Frame] libsvn_tsvn.dll!serf_context_run(serf_context_t * ctx,
int) Line 305 C
libsvn_tsvn.dll!svn_ra_serf__context_run(svn_ra_serf__session_t *
sess, __int64 * waittime_left, apr_pool_t *) Line 910 C
[Inline Frame] libsvn_tsvn.dll!svn_ra_serf__context_run_wait(int *
sess, svn_ra_serf__session_t *) Line 981 C
[Inline Frame]
libsvn_tsvn.dll!svn_ra_serf__context_run_one(svn_ra_serf__handler_t *
handler, apr_pool_t *) Line 1021 C
libsvn_tsvn.dll!svn_ra_serf__exchange_capabilities(svn_ra_serf__session_t *
serf_sess, const char * * corrected_url, apr_pool_t * result_pool,
apr_pool_t * scratch_pool) Line 544 C
libsvn_tsvn.dll!svn_ra_serf__open(svn_ra_session_t * session, const
char * * corrected_url, const char * session_URL, const svn_ra_callbacks2_t
* callbacks, void * callback_baton, svn_auth_baton_t * auth_baton,
apr_hash_t * config, apr_pool_t * result_pool, apr_pool_t * scratch_pool)
Line 601 C
libsvn_tsvn.dll!svn_ra_open4(svn_ra_session_t * * session_p, const
char * * corrected_url_p, const char * repos_URL, const char * uuid, const
svn_ra_callbacks2_t * callbacks, void * callback_baton, apr_hash_t * config,
apr_pool_t * pool) Line 384 C
libsvn_tsvn.dll!svn_client__open_ra_session_internal(svn_ra_session_t
* * ra_session, const char * * corrected_url, const char * base_url, const
char * base_dir_abspath, const apr_array_header_t * commit_items, int
write_dav_props, int read_dav_props, svn_client_ctx_t * ctx, apr_pool_t *
result_pool, apr_pool_t * scratch_pool) Line 421 C
libsvn_tsvn.dll!update_internal(long * result_rev, int *
timestamp_sleep, apr_hash_t * conflicted_paths, svn_ra_session_t * *
ra_session_p, const char * local_abspath, const char * anchor_abspath, const
svn_opt_revision_t * revision, svn_depth_t depth, int depth_is_sticky, int
ignore_externals, int allow_unver_obstructions, int adds_as_modification,
int notify_summary, svn_client_ctx_t * ctx, apr_pool_t * result_pool,
apr_pool_t * scratch_pool) Line 405 C
libsvn_tsvn.dll!svn_client__update_internal(long * result_rev, int *
timestamp_sleep, const char * local_abspath, const svn_opt_revision_t *
revision, svn_depth_t depth, int depth_is_sticky, int ignore_externals, int
allow_unver_obstructions, int adds_as_modification, int make_parents, int
innerupdate, svn_ra_session_t * ra_session, svn_client_ctx_t * ctx,
apr_pool_t * pool) Line 648 C
libsvn_tsvn.dll!svn_client_update4(apr_array_header_t * *
result_revs, const apr_array_header_t * paths, const svn_opt_revision_t *
revision, svn_depth_t depth, int depth_is_sticky, int ignore_externals, int
allow_unver_obstructions, int adds_as_modification, int make_parents,
svn_client_ctx_t * ctx, apr_pool_t * pool) Line 722 C
svn.exe!svn_cl__update(apr_getopt_t * os, void * baton, apr_pool_t *
scratch_pool) Line 169 C
svn.exe!sub_main(int * exit_code, int argc, const char * * argv,
apr_pool_t * pool) Line 3247 C
svn.exe!main(int argc, const char * * argv) Line 3336 C
[Inline Frame] svn.exe!invoke_main() Line 78 C++
svn.exe!__scrt_common_main_seh() Line 283 C++
kernel32.dll!BaseThreadInitThunk () Unknown
ntdll.dll!RtlUserThreadStart () Unknown
My AD domain password changed recently, and so running 'svn update' is
now prompting me to enter my new password.
If I run this from the PowerShell command prompt, I enter the first
character of my password and then the UI locks up.
eg.
D:\dev\svn\MyProject> svn update
Authentication realm: <https://svn.server.com:443> SVN Server
Password for 'dgardiner': *
A colleague has had the same experience. His workaround was to use
cmd.exe instead of PowerShell.
This used to work without issue. Not sure if it's a change in svn.exe or
PowerShell.
svn --version
svn, version 1.10.0-dev (under development)
compiled Apr 14 2018, 10:24:15 on x86-microsoft-windows
Can you try another binary distribution, for instance
https://www.visualsvn.com/downloads/ ?
Just to rule out that it's related to one particular binary package / build.
--
Johan
Johan Corveleyn
2018-06-29 07:49:26 UTC
Permalink
I downloaded the visualsvn build as suggested, and that appears to work
without issue
Using the tortoisesvn svn.exe, I also had a merge conflict while running
'svn update' and the prompt for resolve the conflict also hung (so looks
like it's a general problem with user input, not just related to passwords)
Okay. In that case, please report this problem to one of the
TortoiseSVN lists: https://tortoisesvn.net/community.html

It appears to be something specific to their build.
--
Johan
Johan Corveleyn
2018-07-02 08:34:34 UTC
Permalink
Thanks! That's very useful information. Let's hope MS will fix this soon.
--
Johan
Just circling back with an update. The Tortoise folks discovered this is a
bug in a library that shipped in Windows 10 RS4, possibly related to VS2017.
See
https://developercommunity.visualstudio.com/content/problem/245451/unbuffered-console-io-is-broken-only-in-release-bu.html
As such I suspect it will probably affect other distributions if they use a
similar build tool chain.
David
Get Outlook for iOS
________________________________
Sent: Saturday, June 30, 2018 9:45:57 PM
To: Johan Corveleyn
Cc: Subversion
Subject: Re: svn password prompt hanging in PowerShell
Thanks for your help, I've raise it with TortoiseSVN
David
Post by Johan Corveleyn
I downloaded the visualsvn build as suggested, and that appears to work
without issue
Using the tortoisesvn svn.exe, I also had a merge conflict while running
'svn update' and the prompt for resolve the conflict also hung (so looks
like it's a general problem with user input, not just related to passwords)
Okay. In that case, please report this problem to one of the
TortoiseSVN lists: https://tortoisesvn.net/community.html
It appears to be something specific to their build.
--
Johan
Loading...