Package: s3cmd
Version: 2.0.0-1
Severity: important

Dear Maintainer,

My backup scripts invocation of s3cmd is resulting in two warnings/errors. I
report them together here since I am unsure if the second is a consequence of
the first.

First warning is:

    WARNING: !!!!!!! Support for python3 is currently in a 'Work In Progress' 
state.
    Please don't use s3cmd with python3 on production tasks or with sensitive 
data as unexpected behaviors could occur !!!!!!!

And the second error is:

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        An unexpected error has occurred.
      Please try reproducing the error using
      the latest s3cmd code from the git master
      branch found at:
        https://github.com/s3tools/s3cmd
      and have a look at the known issues list:
        
https://github.com/s3tools/s3cmd/wiki/Common-known-issues-and-their-solutions
      If the error persists, please report the
      following lines (removing any private
      info as necessary) to:
       s3tools-b...@lists.sourceforge.net
    
    
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Invoked as: /usr/bin/s3cmd --ssl --config=/path/to/config --acl-private put 
--cache-file=/path/to/cache --encrypt <a few dozon paths> s3://<my bucket>/
    Problem: <class 'TypeError: a bytes-like object is required, not 'str'
    S3cmd:   2.0.0
    python:   3.5.4 (default, Aug 12 2017, 14:08:14) 
    [GCC 7.1.0]
    environment LANG=en_GB.UTF-8
    
    Traceback (most recent call last):
      File "/usr/bin/s3cmd", line 2996, in <module>
        rc = main()
      File "/usr/bin/s3cmd", line 2915, in main
        rc = cmd_func(args)
      File "/usr/bin/s3cmd", line 352, in cmd_object_put
        local_list, single_file_local, exclude_list, total_size_local = 
fetch_local_list(args, is_src = True)
      File "/usr/lib/python3/dist-packages/S3/FileLists.py", line 319, in 
fetch_local_list
        cache.load(cfg.cache_file)
      File "/usr/lib/python3/dist-packages/S3/HashCache.py", line 63, in load
        d = pickle.load(f)
    TypeError: a bytes-like object is required, not 'str'

I suspect that the cache (specified via --cache-file) is incompatible between
this version and the last.  I'm unsure if this is an s3cmd change or a
consequence of switching to Python3 (maybe pickling is not compatible?)

Reverting to 1.6.1-1 in Stretch resolves this for me.

Given the first warning (which I pressume reflects upstream's view) are we sure
it is wise to be shipping with #!/usr/bin/python3 in Debian at this point?
Given the wording which upstream has used I considered filing bug this with
severity grave or serious, but in the end I went with important, although it
seems to me that we cannot ship s3cmd in a stable release while it is printing
such a warning.

Thanks,
Ian.

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf, armel, arm64

Kernel: Linux 4.12.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages s3cmd depends on:
ii  python3           3.5.3-3
ii  python3-dateutil  2.6.1-1
ii  python3-magic     1:5.32-1

s3cmd recommends no packages.

s3cmd suggests no packages.

-- no debconf information

Reply via email to