File: mergeall-products/unzipped/test/macos-bad-bdr-symlinks-3.2.txt

[3.2] Symlinks burned to BDRs by macOS produce errors when they are 
later read from the BDR, on both macOS and Windows.  Report, skip,
and continue everywhere in Mergeall.

These BDR errors occur in both shells and Python, and are reported as 
"Unknown error: 10000" on macOS, and either "Permission denied" or 
"Access is denied" on Windows.  On Windows this occurs whether running 
as administrator or not, and in Command Prompt, Cygwin, and WSL Linux.

This likely reflects a defect in macOS's BDR burning software.  macOS
tries to 'forge' symlinks on FAT32 and exFAT drives with a proprietary
encoding; this appears to write unreadable garbage when burning to BDRs. 
Symlink burns on Windows and Linux are untested, but links are rare in 
Windows (they require admin permission), and Linux generally refuses 
to insert platform-specific magic (e.g., symlink-to-exFAT writes fail).

To accommodate the error, catch and report its exception in diffall.py 
and continue; it will appear in the log and summary as "unreadable."
mergeall.py started skipping symlink read errors earlier in 3.2, and 
cpall.py has always caught all exceptions and continued with the copy.

For implementation of the work-around, see ../diffall.comparetrees() 
and ../mergeall.comparelinks().


 


=========================================================================================
MACOS CATALINA
=========================================================================================



--SHELL--


Last login: Wed Oct 27 14:52:12 on ttys010
~$ cd /Volumes/FULLOCT20/Websites/Author/Current
/Volumes/FULLOCT20/Websites/Author/Current$ ls -l
total 20
drwxr-xr-x  2 me  staff  892 Jul 31  2020 Complete

ls: ./Html-inserts: Unknown error: 10000
lrwxr-xr-x@ 1 me  staff   33 Jun  9  2017 Html-inserts
drwxr-xr-x  2 me  staff  688 Jul 31  2020 Html-templates

ls: ./TOOLS.txt: Unknown error: 10000
lrwxr-xr-x@ 1 me  staff   29 Jun 18  2017 TOOLS.txt

ls: ./_shrinkpix-info.txt: Unknown error: 10000
lrwxrwxrwx@ 1 me  staff   48 Apr 24  2020 _shrinkpix-info.txt
/Volumes/FULLOCT20/Websites/Author/Current$ 
/Volumes/FULLOCT20/Websites/Author/Current$ cat _shrinkpix-info.txt 
cat: _shrinkpix-info.txt: Unknown error: 10000
/Volumes/FULLOCT20/Websites/Author/Current$ 
/Volumes/FULLOCT20/Websites/Author/Current$ ls _shrinkpix-info.txt 
_shrinkpix-info.txt
/Volumes/FULLOCT20/Websites/Author/Current$ ls -l _shrinkpix-info.txt 

ls: _shrinkpix-info.txt: Unknown error: 10000
lrwxrwxrwx@ 1 me  staff  48 Apr 24  2020 _shrinkpix-info.txt
/Volumes/FULLOCT20/Websites/Author/Current$ cd
~$ 



--PYTHON--


~$ cd /Volumes/FULLOCT20/Websites/Author/Current 
/Volumes/FULLOCT20/Websites/Author/Current$ py3
Python 3.8.2 (v3.8.2:7b3ab5921f, Feb 24 2020, 17:52:18) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import os
>>> open('_shrinkpix-info.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 10000] Unknown error: 10000: '_shrinkpix-info.txt'
>>> 
>>> os.listdir()
['.DS_Store', '_shrinkpix-info.txt', 'Complete', 'Html-inserts', 'Html-templates', 'TOOLS.txt']
>>> 
>>> for f in os.listdir():
...   if not os.path.isdir(f):
...      try:
...         t =open(f)
...      except:
...         print('FAIL:', f)
...      else:
...         print(f)
... 
.DS_Store
FAIL: _shrinkpix-info.txt
FAIL: Html-inserts
FAIL: TOOLS.txt
>>> ^D
/Volumes/FULLOCT20/Websites/Author/Current$ cd
~$ 



=========================================================================================
WINDOWS 10
=========================================================================================



--WSL LINUX UNUNTU--


me@DESKTOP-3PC51JV:~$ ls /mnt/
c/   d/   wsl/
me@DESKTOP-3PC51JV:~$ ls /mnt/d/Websites/Author/Current/
ls: cannot access '/mnt/d/Websites/Author/Current/_shrinkpix-info.txt': Permission denied
ls: cannot access '/mnt/d/Websites/Author/Current/Html-inserts': Permission denied
ls: cannot access '/mnt/d/Websites/Author/Current/TOOLS.txt': Permission denied
Complete  Html-inserts  Html-templates  TOOLS.txt  _shrinkpix-info.txt
me@DESKTOP-3PC51JV:~$
me@DESKTOP-3PC51JV:~$ ls -l /mnt/d/Websites/Author/Current/
ls: cannot access '/mnt/d/Websites/Author/Current/_shrinkpix-info.txt': Permission denied
ls: cannot access '/mnt/d/Websites/Author/Current/Html-inserts': Permission denied
ls: cannot access '/mnt/d/Websites/Author/Current/TOOLS.txt': Permission denied
total 0
drwxrwxrwx 1 me me 2048 Jul 31  2020 Complete
-????????? ? ?  ?     ?            ? Html-inserts
drwxrwxrwx 1 me me 2048 Jul 31  2020 Html-templates
-????????? ? ?  ?     ?            ? TOOLS.txt
-????????? ? ?  ?     ?            ? _shrinkpix-info.txt
me@DESKTOP-3PC51JV:~$



--COMMAND PROMPT--


C:\Users\lutz>d:

d:\>cd Websites\Author\Current

dd:\Websites\Author\Current>dir
 Volume in drive D is FULLOCT20
 Volume Serial Number is F101-686E

 Directory of d:\Websites\Author\Current

07/31/2020  04:24 PM    <DIR>          .
03/10/2020  05:00 PM    <DIR>          ..
03/10/2020  03:12 PM            10,244 .DS_Store
04/24/2020  05:45 PM                48 _shrinkpix-info.txt
07/31/2020  04:24 PM    <DIR>          Complete
06/09/2017  07:46 AM                33 Html-inserts
07/31/2020  04:24 PM    <DIR>          Html-templates
06/18/2017  06:36 AM                29 TOOLS.txt
               4 File(s)         10,354 bytes
               4 Dir(s)               0 bytes free

d:\Websites\Author\Current>dir _shrinkpix-info.txt
 Volume in drive D is FULLOCT20
 Volume Serial Number is F101-686E

 Directory of d:\Websites\Author\Current

04/24/2020  05:45 PM                48 _shrinkpix-info.txt
               1 File(s)             48 bytes
               0 Dir(s)               0 bytes free

d:\Websites\Author\Current>type _shrinkpix-info.txt
Access is denied.



--COMMAND PROMPT PYTHON--


d:\Websites\Author\Current>py -3
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> open('_shrinkpix-info.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '_shrinkpix-info.txt'

>>> open('_shrinkpix-info.txt', 'r')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '_shrinkpix-info.txt'

>>> import os
>>> os.listdir()
['.DS_Store', '_shrinkpix-info.txt', 'Complete', 'Html-inserts', 'Html-templates', 'TOOLS.txt']
>>>
>>> for f in os.listdir():
...    t = open(f)
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
PermissionError: [Errno 13] Permission denied: '_shrinkpix-info.txt'
>>>
>>> for f in os.listdir():
...   if not os.path.isdir(f):
...      print(f)
...      try:
...         t = open(f)
...      except:
...         print('   FAIL')
...
.DS_Store
_shrinkpix-info.txt
   FAIL
Html-inserts
   FAIL
TOOLS.txt
   FAIL
>>> ^Z



=========================================================================================
WINDOWS 10 RUN AS ADMIN (NO DIFF)
=========================================================================================



--COMMAND PROMPT--


C:\WINDOWS\system32>d:

D:\>cd Websites\Author\Current

D:\Websites\Author\Current>dir
 Volume in drive D is FULLOCT20
 Volume Serial Number is F101-686E

 Directory of D:\Websites\Author\Current

07/31/2020  04:24 PM    <DIR>          .
03/10/2020  05:00 PM    <DIR>          ..
03/10/2020  03:12 PM            10,244 .DS_Store
04/24/2020  05:45 PM                48 _shrinkpix-info.txt
07/31/2020  04:24 PM    <DIR>          Complete
06/09/2017  07:46 AM                33 Html-inserts
07/31/2020  04:24 PM    <DIR>          Html-templates
06/18/2017  06:36 AM                29 TOOLS.txt
               4 File(s)         10,354 bytes
               4 Dir(s)               0 bytes free

D:\Websites\Author\Current>dir _shrinkpix-info.txt
 Volume in drive D is FULLOCT20
 Volume Serial Number is F101-686E

 Directory of D:\Websites\Author\Current

04/24/2020  05:45 PM                48 _shrinkpix-info.txt
               1 File(s)             48 bytes
               0 Dir(s)               0 bytes free

D:\Websites\Author\Current>type _shrinkpix-info.txt
Access is denied.



--COMMAND PROMPT PYTHON--


D:\Websites\Author\Current>py -3
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit 
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> open('_shrinkpix-info.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '_shrinkpix-info.txt'
>>> import os
>>> os.path.isfile('_shrinkpix-info.txt')
True
>>> os.path.islink('_shrinkpix-info.txt')
False
>>> os.path.getmtime('_shrinkpix-info.txt')
1587775512.0
>>> os.path.getsize('_shrinkpix-info.txt')
48
>>> open('_shrinkpix-info.txt')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '_shrinkpix-info.txt'
>>>




=========================================================================================
CYGWIN ON WINDOWS - WITHOUT AND WITH ADMIN
=========================================================================================



--NOT ADMIN--


lutz@DESKTOP-3PC51JV ~
$ cd /cygdrive/d/Websites/Author/Current/

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ ls
Complete  Html-inserts  Html-templates  TOOLS.txt  _shrinkpix-info.txt

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ ls -l
total 10
drwxr-xr-x 1 lutz lutz  0 Jul 31  2020 Complete
-rw-r--r-- 1 lutz lutz 33 Jun  9  2017 Html-inserts
drwxr-xr-x 1 lutz lutz  0 Jul 31  2020 Html-templates
-rw-r--r-- 1 lutz lutz 29 Jun 18  2017 TOOLS.txt
-rw-r--r-- 1 lutz lutz 48 Apr 24  2020 _shrinkpix-info.txt

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ type _shrinkpix-info.txt
-bash: type: _shrinkpix-info.txt: not found

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ cat _shrinkpix-info.txt
cat: _shrinkpix-info.txt: Permission denied

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ ls -l _shrinkpix-info.txt
-rw-r--r-- 1 lutz lutz 48 Apr 24  2020 _shrinkpix-info.txt

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current



--ADMIN--


$ cd /cygdrive/d/Websites/Author/Current/

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ ls
Complete  Html-inserts  Html-templates  TOOLS.txt  _shrinkpix-info.txt

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ ls -l _shrinkpix-info.txt
-rw-r--r-- 1 lutz lutz 48 Apr 24  2020 _shrinkpix-info.txt

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ cat _shrinkpix-info.txt
cat: _shrinkpix-info.txt: Permission denied

lutz@DESKTOP-3PC51JV /cygdrive/d/Websites/Author/Current
$ ^C



[Home page] Books Code Blog Python Author Train Find ©M.Lutz