armhf Bionic python3-pygraphviz package errors for simple use case

Bug #1834379 reported by Emerson Knapp
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-pygraphviz (Ubuntu)
Fix Released
Medium
Unassigned
Bionic
Fix Released
Medium
Unassigned

Bug Description

[Impact]

python3-pygraphviz does not work for even simple use cases on armhf Bionic. See error output in Test Case section from adding an edge to a graph.

This package is currently being used as a dependency of ROS2, which is now including armhf as a target platform. The functionality that depends on this package fails to run.

Conclusion from below testing is that the current package is somehow corrupted.

A no-change rebuild in ppa:emersonknapp/ppa works properly on armhf.

[Test Case]

Using the following test file, and running python3 test.py, the program raises an error. However program exits with no output as expected on x86_64 and aarch64

```
# test.py
#!/usr/bin/env python3

import pygraphviz

graph = pygraphviz.AGraph()
graph.add_node('foo')
graph.add_node('bar')
graph.add_edge('foo', 'bar')
```

Error seen

```
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 1561, in __new__
    nh = gv.agnode(graph.handle, n.encode(graph.encoding), _Action.find)
KeyError: 'agnode: no key'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    graph.add_edge('foo', 'bar')
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 478, in add_edge
    e = Edge(self, eh=eh)
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 1625, in __new__
    s = Node(graph, nh=source)
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 1563, in __new__
    raise KeyError("Node %s not in graph." % n)
KeyError: 'Node None not in graph.'
```

[Regression Potential]

This is a no-change rebuild, regression potential is very low.

[Other Info]

If I upgrade to 1.5 via pip after installing the apt dependency libgraphviz-dev, this same snippet works on all of these platforms.

It also works if I install pygraphviz 1.4rc1 from pip. Also, it seems to work with the debian package python3-pygraphviz 1.4 from cosmic. As far as I can tell, there are no differences between the cosmic and the bionic packages, other than it was rebuilt for Python 3.7.

Here's a summary:

Bionic 1.4~rc1 Debian Broken
Cosmic 1.4~rc1 Debian Works
Disco 1.5 Debian Works
Bionic 1.4~rc1 pip Works
Bionic 1.5 pip Works

And one more data point; if I pull down the debian sources (apt-get source python3-pygraphviz ; apt-get build-dep python3-pygraphviz), build with no modifications (debuild -uc -us), and then install (dpkg -i python3-pygraphviz_1.4~rc1-1build2_armhf.deb), it works just fine.

From all of this, I can only conclude that the Ubuntu Bionic armhf debian package is somehow corrupt. Perhaps a rebuild of the package would solve the problem.

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: python3-pygraphviz 1.4~rc1-1build2
ProcVersionSignature: Ubuntu 4.15.0-1041.43-aws 4.15.18
Uname: Linux 4.15.0-1041-aws aarch64
ApportVersion: 2.20.9-0ubuntu7.6
Architecture: armhf
Date: Wed Jun 26 22:23:47 2019
ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 LANG=en_US.UTF-8
SourcePackage: python-pygraphviz
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Emerson Knapp (emersonknapp) wrote :
description: updated
summary: - armhf python3-pygraphviz package errors for simple use case
+ armhf Bionic python3-pygraphviz package errors for simple use case
Revision history for this message
Kyle Fazzari (kyrofa) wrote :

Can you try getting a no-change rebuild in a PPA?

Revision history for this message
Emerson Knapp (emersonknapp) wrote :

Ok - I created a PPA and did a no-change rebuild (correctly to the best of my knowledge, this is my first time uploading to a PPA)

Build: https://launchpad.net/~emersonknapp/+archive/ubuntu/ppa/+build/17197601

If I use that build, the test file works now.

```
add-apt-repository ppa:emersonknapp/ppa
apt-get update
apt-get install -y python3-pygraphviz
python3 test.py
```

Seems pretty conclusive - what are the next steps?

description: updated
description: updated
description: updated
Kyle Fazzari (kyrofa)
description: updated
Revision history for this message
Emerson Knapp (emersonknapp) wrote :

diff -Nru python-pygraphviz-1.4~rc1/debian/changelog python-pygraphviz-1.4~rc1/debian/changelog
--- python-pygraphviz-1.4~rc1/debian/changelog 2017-08-05 02:38:34.000000000 -0700
+++ python-pygraphviz-1.4~rc1/debian/changelog 2019-06-27 17:08:25.000000000 -0700
@@ -1,3 +1,9 @@
+python-pygraphviz (1.4~rc1-1build3) bionic; urgency=medium
+
+ * No change rebuild (LP: #1834379)
+
+ -- Emerson Knapp (aubdsk) <email address hidden> Thu, 27 Jun 2019 17:08:25 -0700
+
 python-pygraphviz (1.4~rc1-1build2) artful; urgency=medium

   * No change rebuild to drop Python 3.5 support.

Revision history for this message
Emerson Knapp (emersonknapp) wrote :
Kyle Fazzari (kyrofa)
Changed in python-pygraphviz (Ubuntu Bionic):
status: New → Confirmed
Kyle Fazzari (kyrofa)
Changed in python-pygraphviz (Ubuntu Cosmic):
status: New → Fix Released
Kyle Fazzari (kyrofa)
Changed in python-pygraphviz (Ubuntu Disco):
status: New → Fix Released
Kyle Fazzari (kyrofa)
Changed in python-pygraphviz (Ubuntu Eoan):
status: New → Fix Released
Revision history for this message
Kyle Fazzari (kyrofa) wrote :

I've confirmed that this issue is only present in Bionic.

Thomas Ward (teward)
Changed in python-pygraphviz (Ubuntu Cosmic):
status: Fix Released → Invalid
Changed in python-pygraphviz (Ubuntu Disco):
status: Fix Released → Invalid
Changed in python-pygraphviz (Ubuntu Eoan):
status: Fix Released → In Progress
status: In Progress → Invalid
Revision history for this message
Graham Inggs (ginggs) wrote :

Hi Emerson

I'm looking to sponsor this upload. The version number in your change log conflicts with version 1.4~rc1-1build3 in Cosmic. I've looked at the security team's versioning guidelines [1], and this is an unusual case since Cosmic already has a no-change rebuild. I suggest using 1.4~rc1-1build2.1 for the Bionic upload.

Regards
Graham

[1] https://wiki.ubuntu.com/SecurityTeam/UpdatePreparation#Update_the_packaging

Revision history for this message
Graham Inggs (ginggs) wrote :

Uploaded as version 1.4~rc1-1build2.1.

Graham Inggs (ginggs)
Changed in python-pygraphviz (Ubuntu Bionic):
status: Confirmed → In Progress
Mathew Hodson (mhodson)
no longer affects: python-pygraphviz (Ubuntu Cosmic)
no longer affects: python-pygraphviz (Ubuntu Disco)
no longer affects: python-pygraphviz (Ubuntu Eoan)
Changed in python-pygraphviz (Ubuntu):
status: Invalid → Fix Released
importance: Undecided → Medium
Changed in python-pygraphviz (Ubuntu Bionic):
importance: Undecided → Medium
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Emerson, or anyone else affected,

Accepted python-pygraphviz into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/python-pygraphviz/1.4~rc1-1build2.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in python-pygraphviz (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-bionic
Revision history for this message
Kyle Fazzari (kyrofa) wrote :

Just finished taking this for a spin, both on armhf (to ensure it now works) and amd64 (to smoke test for no regressions).

Here is an up-to-date amd64 using 1.4~rc1-1build2:

$ cat << EOF >> test.py
> #!/usr/bin/env python3
>
> import pygraphviz
>
> graph = pygraphviz.AGraph()
> graph.add_node('foo')
> graph.add_node('bar')
> graph.add_edge('foo', 'bar')
> print('success!')
> EOF
$ chmod a+x test.py
$ ./test.py
success!

After installing 1.4~rc1-1build2.1 the results are unchanged-- it continues working:

$ sudo apt install python3-pygraphviz/bionic-proposed
<snip>
Setting up python3-pygraphviz (1.4~rc1-1build2.1) ...
$ ./test.py
success!

Now, here is an up-to-date armhf using 1.4~rc1-1build2:

$ cat << EOF >> test.py
> #!/usr/bin/env python3
>
> import pygraphviz
>
> graph = pygraphviz.AGraph()
> graph.add_node('foo')
> graph.add_node('bar')
> graph.add_edge('foo', 'bar')
> print('success!')
> EOF
$ chmod a+x test.py
$ ./test.py
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 1561, in __new__
    nh = gv.agnode(graph.handle, n.encode(graph.encoding), _Action.find)
KeyError: 'agnode: no key'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./test.py", line 8, in <module>
    graph.add_edge('foo', 'bar')
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 478, in add_edge
    e = Edge(self, eh=eh)
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 1625, in __new__
    s = Node(graph, nh=source)
  File "/usr/lib/python3/dist-packages/pygraphviz/agraph.py", line 1563, in __new__
    raise KeyError("Node %s not in graph." % n)
KeyError: 'Node None not in graph.'

Broken, as mentioned in the bug report. Now with 1.4~rc1-1build2.1:

$ sudo apt install python3-pygraphviz/bionic-proposed
<snip>
Setting up python3-pygraphviz (1.4~rc1-1build2.1) ...
$ ./test.py
success!

Fixed! Marking verification done.

tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python-pygraphviz - 1.4~rc1-1build2.1

---------------
python-pygraphviz (1.4~rc1-1build2.1) bionic; urgency=medium

  * No change rebuild (LP: #1834379)

 -- Emerson Knapp (aubdsk) <email address hidden> Thu, 27 Jun 2019 17:08:25 -0700

Changed in python-pygraphviz (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for python-pygraphviz has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.