Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1188020 > unrolled thread

Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes

Started byZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
First post2024-02-28 17:10 +0100
Last post2024-03-01 18:10 +0100
Articles 5 — 3 participants

Back to article view | Back to linux.debian.bugs.dist


Contents

  Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2024-02-28 17:10 +0100
    Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes "Chris Lamb" <lamby@debian.org> - 2024-02-29 12:40 +0100
      Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2024-02-29 13:30 +0100
    Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes "Chris Lamb" <chris@reproducible-builds.org> - 2024-03-01 15:20 +0100
    Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes "Chris Lamb" <lamby@debian.org> - 2024-03-01 18:10 +0100

#1188020 — Bug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes

FromZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Date2024-02-28 17:10 +0100
SubjectBug#1064973: diffoscope fails with struct.error: unpack requires a buffer of 4 bytes
Message-ID<IcuFk-deZH-15@gated-at.bofh.it>
Package: diffoscope
Version: 257
Severity: normal

The package is really diffoscope-257-1.fc40.x86_64.

$ diffoscope cache/rpms/meson-1.3.2-1.fc41/meson-1.3.2-1.fc41.noarch.rpm cache/build/meson-1.3.2-1.fc41/rebuild/meson-1.3.2-1.fc41.noarch.rpm
...
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/diffoscope/main.py", line 766, in main
    sys.exit(run_diffoscope(parsed_args))
	     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/main.py", line 717, in run_diffoscope
    difference = compare_root_paths(path1, path2)
		 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/compare.py", line 69, in compare_root_paths
    difference = compare_files(file1, file2)
		 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/compare.py", line 149, in compare_files
    return file1.compare(file2, source)
	   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 532, in compare
    difference = self._compare_using_details(other, source)
		 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 467, in _compare_using_details
    details.extend(
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/container.py", line 197, in compare_pair
    difference = compare_files(
		 ^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/compare.py", line 149, in compare_files
    return file1.compare(file2, source)
	   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 532, in compare
    difference = self._compare_using_details(other, source)
		 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 467, in _compare_using_details
    details.extend(
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/container.py", line 197, in compare_pair
    difference = compare_files(
		 ^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/compare.py", line 149, in compare_files
    return file1.compare(file2, source)
	   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 532, in compare
    difference = self._compare_using_details(other, source)
		 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/utils/file.py", line 433, in _compare_using_details
    details.extend(self.compare_details(other, source))
		   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/python.py", line 52, in compare_details
    describe_pyc(other.path),
    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/python.py", line 65, in describe_pyc
    return "\n".join(parse_pyc(f))
	   ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/diffoscope/comparators/python.py", line 74, in parse_pyc
    modtime = time.asctime(time.gmtime(struct.unpack("<L", moddate)[0]))
				       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes

The two arguments are available at:
https://fedorapeople.org/~zbyszek/meson-1.3.2-1.fc41.noarch.rpm
https://fedorapeople.org/~zbyszek/meson-1.3.2-1.fc41.noarch.rpm.2

Zbyszek

[toc] | [next] | [standalone]


#1188398

From"Chris Lamb" <lamby@debian.org>
Date2024-02-29 12:40 +0100
Message-ID<IcMVC-drAl-83@gated-at.bofh.it>
In reply to#1188020
tags 1064973 + pending
thanks

The traceback/error is fixed in Git, pending upload:

  https://salsa.debian.org/reproducible-builds/diffoscope/commit/466523ac6fbd1437635f8393fb93c37ff59341b3

We should still fix it so the .pyc is actually parsed though.


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby@debian.org / chris-lamb.co.uk
       `-

[toc] | [prev] | [next] | [standalone]


#1188403

FromZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Date2024-02-29 13:30 +0100
Message-ID<IcNHY-ds6o-5@gated-at.bofh.it>
In reply to#1188398
On Thu, Feb 29, 2024 at 11:19:50AM +0000, Chris Lamb wrote:
> The traceback/error is fixed in Git, pending upload:
>   https://salsa.debian.org/reproducible-builds/diffoscope/commit/466523ac6fbd1437635f8393fb93c37ff59341b3

Thanks!

[toc] | [prev] | [next] | [standalone]


#1188642

From"Chris Lamb" <chris@reproducible-builds.org>
Date2024-03-01 15:20 +0100
Message-ID<IdbTX-dHLm-1@gated-at.bofh.it>
In reply to#1188020
Zbigniew Jędrzejewski-Szmek wrote:

>   File 
> "/usr/lib/python3.12/site-packages/diffoscope/comparators/python.py", 
> line 74, in parse_pyc
>     modtime = time.asctime(time.gmtime(struct.unpack("<L", moddate)[0]))
>                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> struct.error: unpack requires a buffer of 4 bytes

I'm trying to track this down further so I can fix the underlying
problem. However, I'm having difficulty reproducing locally. In the
first instance, it would be helpful to know exactly which file within
the .rpm is the one (previously) causing the traceback.

Can you run diffoscope --debug so we can see which .pyc file is the
offending one? I think it is "environment.cpython-312.pyc", but it
would be great to get confirmation. Also knowing your exact Python
version (using python3 --version) would be useful withal.


Best wishes,

-- 
      o
    ⬋   ⬊      Chris Lamb
   o     o     reproducible-builds.org 💠
    ⬊   ⬋
      o

[toc] | [prev] | [next] | [standalone]


#1188663

From"Chris Lamb" <lamby@debian.org>
Date2024-03-01 18:10 +0100
Message-ID<Ideyt-dJoh-3@gated-at.bofh.it>
In reply to#1188020
tags 1064973 + pending
thanks

Ah, I see the issue now; its to do with empty pyc files. Now
properly fixed in Git, pending upload:

  https://salsa.debian.org/reproducible-builds/diffoscope/commit/c885c24ad4807a0ec20c0cca9572b395812c85d9


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby@debian.org / chris-lamb.co.uk
       `-

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.bugs.dist


csiph-web