Mail Archives: cygwin/2014/02/06/10:33:05
On Thu, Feb 6, 2014 at 12:56 PM, Andrey Repin wrote:
> Greetings, Robert Klemme!
Hello Andrey!
>> I should have mentioned that I did just that - to no avail.
>
>> $ echo exit | bash --login -i -x 2>|log
>> $ egrep -n 'PATH=(.:|.*:\.($|:))' log | head
>> 1:+ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.
>> 140:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 145:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 152:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 159:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 166:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 171:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 178:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 183:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>> 190:+++ PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:/usr/local/sbin
>
>> Also manual inspection does not show any line where the dot is
>> introduced. The first line with an assignment to PATH which contains
>> the dot in the trace output is this one in /etc/profile:
>
>> PATH="/usr/local/bin:/usr/bin:${PATH}"
>
>> In the trace (see above):
>
>> + PATH=/usr/local/bin:/usr/bin:/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.
>
>> As you can see the dot is already there. It seems it appears
>> somewhere in the mintty launching process.
>
> This seems much like you have an imposter somewhere in your system.
> Please start cmd.exe alone, and do the following in order:
Good idea to do it in cmd.exe!
> echo %PATH% > "%USERPROFILE%/bash-startup.log"
> bash --login -x 2>&1 | tee -a "%USERPROFILE%/bash-startup.log"
Why use tee here? I did this:
C:\Users\rklemme>path >log
C:\Users\rklemme>echo exit | c:\cygwin64\bin\bash.exe --login -x -i >>log 2>&1
> Then check the logfile for issues.
Same story. These are the first lines of the log
$ head -10 log | cut -c 1-80
PATH=C:\PROGRAM FILES (X86)\NVIDIA CORPORATION\PHYSX\COMMON;C:\PROGRAM FILES (X8
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
+ PATH='/usr/local/bin:/usr/bin:/cygdrive/c/PROGRAM FILES (X86)/NVIDIA CORPORATI
+ MANPATH=/usr/local/man:/usr/share/man:/usr/man:
+ INFOPATH=/usr/local/info:/usr/share/info:/usr/info:
++ id -un
+ USER=rklemme
+ ORIGINAL_TMP=/cygdrive/c/Users/rklemme/AppData/Local/Temp
+ ORIGINAL_TEMP=/cygdrive/c/Users/rklemme/AppData/Local/Temp
The first line does not contain the dot. The fourth line contains the
dot at the end:
$ sed -nre '4s#^(.{20}).*(.{80})$#\1...\2#p' log
+ PATH='/usr/local/b...Intel/WirelessCommon:/cygdrive/c/Users/rklemme/Applications/SysinternalsSuite:.'
Concluding from the context (following lines) this is, as written
before, this line from /etc/profile:
PATH="/usr/local/bin:/usr/bin:${PATH}"
MANPATH="/usr/local/man:/usr/share/man:/usr/man:${MANPATH}"
INFOPATH="/usr/local/info:/usr/share/info:/usr/info:${INFOPATH}"
There is clearly no dot there. It's a mystery.
Wait, I tested with strace:
C:\Users\rklemme>echo exit | c:\cygwin64\bin\strace.exe -f /bin/bash
--login -x -i >str 2>&1
I found
...
36 6393 [main] bash 8028 getwinenv: can't set native for PATH=
since no environ yet
...
12 7518 [main] bash 8028 mount_info::conv_to_posix_path:
conv_to_posix_path (C:\Users\rklemme\Applications\SysinternalsSuite,
keep-rel, no-add-slash)
12 7530 [main] bash 8028 normalize_win32_path:
C:\Users\rklemme\Applications\SysinternalsSuite = normalize_win32_path
(C:\Users\rklemme\Applications\SysinternalsSuite)
14 7544 [main] bash 8028 mount_info::conv_to_posix_path:
/cygdrive/c/Users/rklemme/Applications/SysinternalsSuite =
conv_to_posix_path (C:\Users\rklemme\Applications\SysinternalsSuite)
14 7558 [main] bash 8028 mount_info::conv_to_posix_path:
conv_to_posix_path (., keep-rel, no-add-slash)
12 7570 [main] bash 8028 mount_info::conv_to_posix_path: . =
conv_to_posix_path (.)
12 7582 [main] bash 8028 __set_errno: ssize_t
env_PATH_to_posix(const void*, void*, size_t):3570 setting errno 36
...
12 12308 [main] bash 8028 mount_info::conv_to_win32_path:
src_path /cygdrive/c/Users/rklemme/Applications/SysinternalsSuite, dst
C:\Users\rklemme\Applications\SysinternalsSuite, flags 0x4022, rc 0
35 12343 [main] bash 8028 symlink_info::check: 0x0 = NtCreateFile
(\??\C:\Users\rklemme\Applications\SysinternalsSuite)
18 12361 [main] bash 8028 symlink_info::check: not a symlink
21 12382 [main] bash 8028 symlink_info::check: 0 =
symlink.check(C:\Users\rklemme\Applications\SysinternalsSuite,
0x228DC0) (0x804022)
13 12395 [main] bash 8028 path_conv::check:
this->path(C:\Users\rklemme\Applications\SysinternalsSuite),
has_acls(1)
14 12409 [main] bash 8028 normalize_posix_path: src .
11 12420 [main] bash 8028 cwdstuff::get: posix /cygdrive/c/Users/rklemme
12 12432 [main] bash 8028 cwdstuff::get:
(/cygdrive/c/Users/rklemme) = cwdstuff::get (0x600000010, 32768, 1,
0), errno 36
13 12445 [main] bash 8028 normalize_posix_path:
/cygdrive/c/Users/rklemme/ = normalize_posix_path (.)
11 12456 [main] bash 8028 mount_info::conv_to_win32_path:
conv_to_win32_path (/cygdrive/c/Users/rklemme)
12 12468 [main] bash 8028 mount_info::cygdrive_win32_path: src
'/cygdrive/c/Users/rklemme', dst 'C:\Users\rklemme'
12 12480 [main] bash 8028 set_flags: flags: binary (0x2)
11 12491 [main] bash 8028 mount_info::conv_to_win32_path:
src_path /cygdrive/c/Users/rklemme, dst C:\Users\rklemme, flags
0x4022, rc 0
33 12524 [main] bash 8028 symlink_info::check: 0x0 = NtCreateFile
(\??\C:\Users\rklemme)
17 12541 [main] bash 8028 symlink_info::check: not a symlink
20 12561 [main] bash 8028 symlink_info::check: 0 =
symlink.check(C:\Users\rklemme, 0x228DC0) (0x804022)
13 12574 [main] bash 8028 path_conv::check:
this->path(C:\Users\rklemme), has_acls(1)
33 12607 [main] bash 8028 cwdstuff::get: posix /cygdrive/c/Users/rklemme
12 12619 [main] bash 8028 cwdstuff::get: (C:\Users\rklemme) =
cwdstuff::get (0x600058F70, 32768, 0, 0), errno 36
35 12654 [main] bash 8028 win_env::add_cache: posix
/cygdrive/c/PROGRAM FILES
(X86)/NVIDIA...Common:/cygdrive/c/Users/rklemme/Applications/SysinternalsSuite:.
22 12676 [main] bash 8028 win_env::add_cache: native
PATH=C:\PROGRAM FILES
(X86)\NVIDIA...Common;C:\Users\rklemme\Applications\SysinternalsSuite;.
39 12715 [main] bash 8028 posify_maybe: env var converted to
PATH=/cygdrive/c/PROGRAM FILES
(X86)/NVIDIA...lessCommon:/cygdrive/c/Users/rklemme/Applications/SysinternalsSuite:.
41 12756 [main] bash 8028 environ_init: 0x600069CD0:
PATH=/cygdrive/c/PROGRAM FILES
(X86)/NVIDIA...elessCommon:/cygdrive/c/Users/rklemme/Applications/SysinternalsSuite:.
(Few items replaced by "..." to avoid extremely long lines.)
Can anybody make sense of that? I can share the complete log with
individuals if it helps.
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -