Slow processing on large Python 3.4 bytecode with lots of nesting

Open
#318 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
python

Research direction

Reproduce the hang with the attached MEA_v1.1.0_PV.zip using Python 3.4.3 bytecode and compare commit f008b8f with the last working commit, 2e81ee5. Trace the nested control-flow processing that fails to terminate, then verify that the archive completes and produces usable output without regressing the earlier if-else behavior.

Written by the indexing model from the issue text.

Description

Control Flow Python 3.x Volunteer wanted

Hello,

I'm trying to recover some old source code for archiving purposes from bytecode which was created by Python 3.4.3 (3310) years ago.

I'm using Windows 10 1809 x64, Python 3.4.3 and latest uncompyle6 40a653c.

The issue looks like some sort of infinite loop because uncompyle6 processing never ends.

Capture

I've narrowed down the issue to commit f008b8f (Mar 20, 2018) or newer versions. Meaning, the last "working" commit was 2e81ee5 (Mar 20, 2018). I say "working" because the output code has obvious issues with if-else (maybe more that I missed). Probably why you added the f008b8f changes but it causes the aforementioned problem in my case.

To perfectly reproduce the bug, I have included both the .py and .pyc of another old version for which I have the source code for, compiled via Python 3.4.3.

MEA_v1.1.0_PV.zip

Dominant language
Python
Stars
4.3k
Forks
463
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rocky/python-uncompyle6

All issues in rocky/python-uncompyle6

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.