** Description changed:
[ Impact ]
pycallgraph is completely unusable and crashes immediately when executed
by the user.
-
$ pycallgraph --help
Traceback (most recent call last):
- File "/usr/bin/pycallgraph", line 11, in <module>
- import pycallgraph as __pycallgraph
- File "/usr/lib/python3/dist-packages/pycallgraph/__init__.py", line 11, in
<module>
- from .pycallgraph import PyCallGraph
- File "/usr/lib/python3/dist-packages/pycallgraph/pycallgraph.py", line 3,
in <module>
- from .output import Output
- File "/usr/lib/python3/dist-packages/pycallgraph/output/__init__.py", line
3, in <module>
- from .output import Output
- File "/usr/lib/python3/dist-packages/pycallgraph/output/output.py", line 3,
in <module>
- from distutils.spawn import find_executable
+ File "/usr/bin/pycallgraph", line 11, in <module>
+ import pycallgraph as __pycallgraph
+ File "/usr/lib/python3/dist-packages/pycallgraph/__init__.py", line 11, in
<module>
+ from .pycallgraph import PyCallGraph
+ File "/usr/lib/python3/dist-packages/pycallgraph/pycallgraph.py", line 3,
in <module>
+ from .output import Output
+ File "/usr/lib/python3/dist-packages/pycallgraph/output/__init__.py", line
3, in <module>
+ from .output import Output
+ File "/usr/lib/python3/dist-packages/pycallgraph/output/output.py", line 3,
in <module>
+ from distutils.spawn import find_executable
ModuleNotFoundError: No module named 'distutils'
-
[ Test Plan ]
install python3-pycallgraph.
As a basic test, execute "pycallgraph --help"
If the package is not fixed,it will fail with the above error.
With the fixed package, it will display the help menu.
As a more complete test:
copy the attached basic.py and use the command:
pycallgraph graphviz basic.py
It will create two png files "basic.png" and "pycallgraph.png".
-
[ Where problems could occur ]
The 'distutils' module is not available in Python3.12. 'distutils' was used
previously to find the executable and was also used to get the path of the
python lib. Now, its being replaced with 'shutil' and using 'which' to find the
executable. And, 'sysconfig' is used to get the path of the python lib.
In the worst case, if 'which' or 'sysconfig' fails to find the path then the
user will still see pycallgraph is failing but with a different error message.
-
[ Other Info ]
- It has been fixed in Debian and so Oracular is also fixed now.
+ 1. It has been fixed in Debian and so Oracular is also fixed now.
+
+ 2. In Focal, the patch had to be modified to hardcode the path as I am unable
to get the path '/usr/lib/python3/dist-packages' from any of ths syconfig
opions. All the sysconfig variables and paths can be seen with the command
'python3 -m sysconfig' and there is no way to generate the required path from
sysconfig.
+ And, in Focal pycallgraph will be installed in that path, if 'tracer.py' does
not get the correct path then the generated 'pycallgraph.png' will not be same
as Jammy or Noble or Oracular with the same test file 'basic.py'.
[ Original Bug Description ]
pycallgraph fails to run with the error:
$ pycallgraph
Traceback (most recent call last):
File "/usr/bin/pycallgraph", line 11, in <module>
import pycallgraph as __pycallgraph
File "/usr/lib/python3/dist-packages/pycallgraph/__init__.py", line 11, in
<module>
from .pycallgraph import PyCallGraph
File "/usr/lib/python3/dist-packages/pycallgraph/pycallgraph.py", line 3,
in <module>
from .output import Output
File "/usr/lib/python3/dist-packages/pycallgraph/output/__init__.py", line
3, in <module>
from .output import Output
File "/usr/lib/python3/dist-packages/pycallgraph/output/output.py", line 3,
in <module>
from distutils.spawn import find_executable
ModuleNotFoundError: No module named 'distutils'
ProblemType: Crash
DistroRelease: Ubuntu 24.04
Package: python3-pycallgraph 1.1.3-2
ProcVersionSignature: Ubuntu 6.8.0-22.22-generic 6.8.1
Uname: Linux 6.8.0-22-generic x86_64
ApportVersion: 2.28.0-0ubuntu1
Architecture: amd64
CasperMD5CheckResult: pass
CrashCounter: 1
CurrentDesktop: ubuntu:GNOME
Date: Wed Apr 17 21:46:49 2024
ExecutablePath: /usr/bin/pycallgraph
InstallationDate: Installed on 2024-04-10 (7 days ago)
InstallationMedia: Ubuntu 24.04 LTS "Noble Numbat" - Beta amd64 (20240410)
InterpreterPath: /usr/bin/python3.12
JournalErrors: -- No entries --
PackageArchitecture: all
ProcCmdline: /usr/bin/python3 /usr/bin/pycallgraph
Python3Details: /usr/bin/python3.12, Python 3.12.3, python3-minimal,
3.12.3-0ubuntu1
PythonArgs: ['/usr/bin/pycallgraph']
PythonDetails: N/A
SourcePackage: pycallgraph
Title: pycallgraph crashed with AttributeError in strip_argv(): 'Config'
object has no attribute 'command'
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups: adm cdrom dip lpadmin plugdev sudo users
** Changed in: pycallgraph (Ubuntu Focal)
Assignee: Sudip Mukherjee (sudipmuk) => (unassigned)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2062065
Title:
[SRU] pycallgraph crashed with AttributeError
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pycallgraph/+bug/2062065/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs