Bug 1866858 - sphinx is crashing building docs post f33 mass rebuild
Summary: sphinx is crashing building docs post f33 mass rebuild
Keywords:
Status: CLOSED DUPLICATE of bug 1823532
Alias: None
Product: Fedora
Classification: Fedora
Component: python-sphinx
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Michel Lind
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-08-06 15:31 UTC by Peter Robinson
Modified: 2020-08-07 08:42 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-08-07 08:42:03 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Peter Robinson 2020-08-06 15:31:26 UTC
On a number of package sphinx is crashing when generating docs:

jansson:
https://koji.fedoraproject.org/koji/taskinfo?taskID=48811539
====
+ make html
Making html in doc
make[1]: Entering directory '/builddir/build/BUILD/jansson-2.12/doc'
sphinx-build -b html -d _build/doctrees  . _build/html
Running Sphinx v3.1.1
Exception occurred:
  File "/builddir/build/BUILD/jansson-2.12/doc/ext/refcounting.py", line 60, in setup
    app.add_directive('refcounting', refcounting_directive, 0, (1, 0, 0))
TypeError: add_directive() takes from 3 to 4 positional arguments but 5 were given
The full traceback has been saved in /tmp/sphinx-err-ln5s_rm1.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make[1]: *** [Makefile:447: html-local] Error 2
make[1]: Leaving directory '/builddir/build/BUILD/jansson-2.12/doc'
====

libiio:
https://koji.fedoraproject.org/koji/taskinfo?taskID=48541908
====
building [html]: targets for 11 source files that are out of date
updating environment: [new config] 11 added, 0 changed, 0 removed
reading sources... [  9%] buffer
Exception occurred:
  File "/usr/lib64/python3.9/ctypes/__init__.py", line 392, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/bin/python3: undefined symbol: iio_get_backends_count
The full traceback has been saved in /tmp/sphinx-err-4j5lxn8p.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
gmake[2]: *** [bindings/python/CMakeFiles/libiio-py.dir/build.make:84: libiio-py] Error 2
gmake[2]: Leaving directory '/builddir/build/BUILD/libiio-0.21/x86_64-redhat-linux-gnu'
gmake[1]: *** [CMakeFiles/Makefile2:493: bindings/python/CMakeFiles/libiio-py.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
[ 37%] Linking C shared library libiio.so
====

Comment 1 Miro Hrončok 2020-08-06 16:12:51 UTC
Those appear as 2 unrelated issues.



The first is jansson-2.12/doc/ext/refcounting.py using a removed API of sphinx:

https://www.sphinx-doc.org/en/2.0/extdev/appapi.html#sphinx.application.Sphinx.add_directive
https://www.sphinx-doc.org/en/3.x/extdev/appapi.html#sphinx.application.Sphinx.add_directive

This would match https://koschei.fedoraproject.org/package/jansson?collection=f33 -- the failure started with Sphinx 3.

In fact, this was reporte to the package maintainers via bz1823532 but ignored.



The second package was not tested with Sphinx 3 because the dependency on sphinx was added after we've collected dependent packages.

However it seem like: https://github.com/analogdevicesinc/libiio/issues/557

"""So the problem is that the bindings need to have access to the library, so it needs to be on path and findable through find_library in python."""

This doesn't seem like a sphinx issue, but rather like a LD_LIBRARY_PATH problem. How can I help you debug it?

Comment 2 Peter Robinson 2020-08-06 16:30:20 UTC
> The first is jansson-2.12/doc/ext/refcounting.py using a removed API of
> sphinx:

Why isn't Sphinx 3 a Fedora 33 change (I don't see it in the listed changes) and this more widely announced? 

> The second package was not tested with Sphinx 3 because the dependency on
> sphinx was added after we've collected dependent packages.
> 
> However it seem like: https://github.com/analogdevicesinc/libiio/issues/557
> 
> """So the problem is that the bindings need to have access to the library,
> so it needs to be on path and findable through find_library in python."""
> 
> This doesn't seem like a sphinx issue, but rather like a LD_LIBRARY_PATH
> problem. How can I help you debug it?

It was building fine in late June and I saw 2 (and I think actually others which I didn't remember) issues around sphinx and I hadn't see any announcement around a new major version of it so I assumed (clearly incorrectly) it was something around the mass rebuild changes that had caused issues. TBH I know little about sphinx so I'm not sure how to debug it.

Comment 3 Miro Hrončok 2020-08-06 17:59:10 UTC
> Why isn't Sphinx 3 a Fedora 33 change (I don't see it in the listed changes) and this more widely announced? 

As with many other packages that get updated and don't have change proposals I guess.

When the updated was prepared, it was communicated with individual package maintainers via bugzillas in https://bugzilla.redhat.com/showdependencytree.cgi?id=SPHINX3&hide_resolved=0

When it was updated, it was announced in https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/46D6OHIGYOMUASFP6H446TCOT2T3RJRP/

I'll have a look at libiio.

Comment 4 Miro Hrončok 2020-08-06 18:09:07 UTC
It appears to be a race condition. Apparently, the shared library may not be built before the documentation is built and the documentation executes the Python code that tries to load the library:


[ 37%] Linking C shared library libiio.so
/usr/bin/cmake -E cmake_link_script CMakeFiles/iio.dir/link.txt --verbose=1
/usr/bin/gcc -fPIC -O2 -flto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fvisibility=hidden -Wall -Wextra -Wno-unused-parameter -Wpedantic -O2 -g -DNDEBUG -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libiio.so.0 -o libiio.so.0.21 CMakeFiles/iio.dir/backend.c.o CMakeFiles/iio.dir/channel.c.o CMakeFiles/iio.dir/device.c.o CMakeFiles/iio.dir/context.c.o CMakeFiles/iio.dir/buffer.c.o CMakeFiles/iio.dir/utilities.c.o CMakeFiles/iio.dir/scan.c.o CMakeFiles/iio.dir/sort.c.o CMakeFiles/iio.dir/usb.c.o CMakeFiles/iio.dir/local.c.o CMakeFiles/iio.dir/libini/libini.c.o CMakeFiles/iio.dir/serial.c.o CMakeFiles/iio.dir/network.c.o CMakeFiles/iio.dir/xml.c.o CMakeFiles/iio.dir/lock.c.o CMakeFiles/iio.dir/iiod-client.c.o  -lusb-1.0 -lrt -lserialport -L/usr/lib -lxml2 -lpthread -llzma -lz -lm -lpthread 
making output directory... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 11 source files that are out of date
updating environment: [new config] 11 added, 0 changed, 0 removed
reading sources... [  9%] buffer
Exception occurred:
  File "/usr/lib64/python3.9/ctypes/__init__.py", line 392, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/bin/python3: undefined symbol: iio_get_backends_count
The full traceback has been saved in /tmp/sphinx-err-ppmjaxvu.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
gmake[2]: Leaving directory '/builddir/build/BUILD/libiio-0.21/x86_64-redhat-linux-gnu'
gmake[2]: *** [bindings/python/CMakeFiles/libiio-py.dir/build.make:84: libiio-py] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:493: bindings/python/CMakeFiles/libiio-py.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....


This makes it build:

    %global _smp_ncpus_max 1

Comment 5 Miro Hrončok 2020-08-07 08:42:03 UTC
This is a duplicate of bz1823532 and bz1864001. I've posted my findings to bz1864001.

*** This bug has been marked as a duplicate of bug 1823532 ***


Note You need to log in before you can comment on or make changes to this bug.