Bug 9515 - docbook xsltproc recursion causing manpage build failures
Summary: docbook xsltproc recursion causing manpage build failures
Status: RESOLVED WONTFIX
Alias: None
Product: Samba 4.0
Classification: Unclassified
Component: Build (show other bugs)
Version: 4.0.0
Hardware: x64 Linux
: P5 normal (vote)
Target Milestone: ---
Assignee: Andreas Schneider
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-12-20 12:52 UTC by towel
Modified: 2017-10-12 07:21 UTC (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description towel 2012-12-20 12:52:11 UTC
Hi all,

Now, i download the release package samba-4.0.0.tar.gz from the website.

when i build this samba on my machines, it' will report an error for build manpages/smb.conf.5.

[3814/3895] Generating manpages/smb.conf.5
Error: no ID for constraint linkend: NAMEMANGLING.
Error: no ID for constraint linkend: NAMEMANGLING.
Error: no ID for constraint linkend: NAMEMANGLING.
Error: no ID for constraint linkend: NAMEMANGLING.
Error: no ID for constraint linkend: LOCKSPINCOUNT.
Error: no ID for constraint linkend: READ-ONLY.
Error: no ID for constraint linkend: RPC_SERVER.
Error: no ID for constraint linkend: PRINTERS.
Error: no ID for constraint linkend: WIDESMBCONFOPTIONS.
Error: no ID for constraint linkend: ENCRYPTEDPASSWORDS.
Error: no ID for constraint linkend: ENCRYPTEDPASSWORDS.
Error: no ID for constraint linkend: ENCRYPTEDPASSWORDS.
Error: no ID for constraint linkend: ENCRYPTEDPASSWORDS.
Error: no ID for constraint linkend: ENCRYPTEDPASSWORDS.
Error: no ID for constraint linkend: ENCRYPTEDPASSWORDS.
Error: no ID for constraint linkend: WIDESMBCONFOPTIONS.
Error: no ID for constraint linkend: IDMAPCONFIG*:BACKEND.
Error: no ID for constraint linkend: IDMAPCONFIG.
Error: no ID for constraint linkend: IDMAPCONFIG.
Error: no ID for constraint linkend: IDMAPCONFIG*:RANGE.
Error: no ID for constraint linkend: IDMAPCONFIG.
Error: no ID for constraint linkend: IDMAPCONFIG*:RANGE.
Error: no ID for constraint linkend: IDMAPCONFIG.
runtime error: file file:///usr/share/sgml/docbook/xsl-stylesheets-1.69.1-5.1/lib/lib.xsl line 55 element param
xsltApplyXSLTTemplate: A potential infinite template recursion was detected.
You can adjust xsltMaxDepth (--maxdepth) in order to raise the maximum number of nested template calls and variables/params (currently set to 3000).
Templates:
#0 name string.subst 
#1 name string.subst 
#2 name string.subst 
#3 name string.subst 
#4 name string.subst 
#5 name string.subst 
#6 name string.subst 
#7 name string.subst 
#8 name string.subst 
#9 name string.subst 
#10 name string.subst 
#11 name string.subst 
#12 name string.subst 
#13 name string.subst 
#14 name string.subst 
Variables:
#0
replacement   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE newstring
      TEXT
        content=\\

target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fIuser.csh\fR\fI \fR   message command (...

#1
target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fIuser.csh\fR\fI \fR   message command (...

#2
string   Object is a string : fIuser.csh\fR\fI \fR   message command (...

#3
replacement   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE newstring
      TEXT
        content=\\

target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fR\fIuser.csh\fR\fI \fR   message comman...

#4
target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fR\fIuser.csh\fR\fI \fR   message comman...

#5
string   Object is a string : fR\fIuser.csh\fR\fI \fR   message comman...

#6
replacement   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE newstring
      TEXT
        content=\\

target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fI = \fR\fIuser.csh\fR\fI \fR   message ...

#7
target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fI = \fR\fIuser.csh\fR\fI \fR   message ...

#8
string   Object is a string : fI = \fR\fIuser.csh\fR\fI \fR   message ...

#9
replacement   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE newstring
      TEXT
        content=\\

target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fR\fI = \fR\fIuser.csh\fR\fI \fR   messa...

#10
target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fR\fI = \fR\fIuser.csh\fR\fI \fR   messa...

#11
string   Object is a string : fR\fI = \fR\fIuser.csh\fR\fI \fR   messa...

#12
replacement   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE newstring
      TEXT
        content=\\

target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fR\fR\fI = \fR\fIuser.csh\fR\fI \fR   me...

#13
target   Object is a Node Set :
Set contains 1 nodes:
  1    ATTRIBUTE oldstring
      TEXT
        content=\

string   Object is a string : fR\fR\fI = \fR\fIuser.csh\fR\fI \fR   me...

#14
string   Object is a string : fR\fR\fI = \fR\fIuser.csh\fR\fI \fR   me...

Writing smb.conf.5 for refentry(smb.conf.5)
error: file default/docs-xml/manpages/smb.conf.5.xml
xsltRunStylesheet : run failed
Waf: Leaving directory `/root/samba/samba-4.0.0/bin


I had installed the related packages according to the wiki

libacl-devel libblkid-devel gnutls-devel \
   readline-devel python-devel gdb pkgconfig krb5-workstation \ 
   zlib-devel setroubleshoot-server \
   setroubleshoot-plugins policycoreutils-python \
   libsemanage-python setools-libs-python setools-libs \
   popt-devel libpcap-devel sqlite-devel libidn-devel \
   libxml2-devel libacl-devel libsepol-devel libattr-devel \
   keyutils-libs-devel cyrus-sasl-devel

My machines's info is
[root@master samba-4.0.0]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 5.3 (Tikanga)

Please tell me how to reslove it.


Thanks 

-Chang
Comment 1 michael 2013-01-30 00:13:40 UTC
I have this same issue with version 4.0.1 on Gentoo Linux. I have followed the build instructions and OS requirements from the Wiki. My package versions are listed below.

I have tried building through the Gentoo portage and also manually with the options --enable-developer --enable-debug --enable-selftest. I have verified the signature of the tarball as well. I am not getting as much error text as is shown above, just an error #-7 on manpages/smb.conf.5

I have also attempted to use the GIT version with the options above to see if it makes a difference, but it did not.

=== Package versions ===
sys-libs/tevent-0.9.17
sys-libs/ldb-1.1.14
sys-libs/talloc-2.0.8
sys-libs/tdb-1.2.11
app-text/docbook-xml-dtd-4.1.2-r6
app-text/docbook-xml-dtd-4.2-r2
app-text/docbook-xsl-stylesheets-1.77.1-r1
dev-lang/python-2.7.3-r2


=== Output from GIT version ===
[3881/3963] Generating manpages/smb.conf.5
Waf: Leaving directory '/usr/src/samba-master/bin'
Build failed: -> task failed (err #-7):
  {task: manpages/smb.conf.5 smb.conf.5.xml -> smb.conf.5}
make: *** [all] Error 1
Comment 2 michael 2013-09-24 03:37:38 UTC
This bug has been open now for 9 months without any feedback from the assignee or the Samba team. Is there a specific version of xsltproc required? Is this an OOM issue (the kernel logs don't indicate this)?

=== COMMANDS EXECUTED ===
[2881/2963] Generating manpages/smb.conf.5
19:17:52 runner  XML_CATALOG_FILES="file:///etc/xml/catalog file:///usr/local/share/xml/catalog file:///var/tmp/portage/net-fs/samba-4.0.9/work/samba-4.0.9/bin/default/docs-xml/build/catalog.xml"
export XML_CATALOG_FILES
/usr/bin/xsltproc --xinclude --stringparam noreference 0 -o default/docs-xml/manpages/smb.conf.5.xml --nonet /var/tmp/portage/net-fs/samba-4.0.9/work/samba-4.0.9/docs-xml/xslt/expand-sambadoc.xsl ../docs-xml/manpages/smb.conf.5.xml
/usr/bin/xsltproc --nonet -o default/docs-xml/manpages/smb.conf.5 /var/tmp/portage/net-fs/samba-4.0.9/work/samba-4.0.9/docs-xml/xslt/man.xsl default/docs-xml/manpages/smb.conf.5.xml 



=== Result from last command with verbose flag enabled ===
creating attribute set table
add attribute to list olink.properties
updated attribute list olink.properties
add attribute to list shade.verbatim.style
add attribute to list shade.verbatim.style
updated attribute list shade.verbatim.style
updated attribute list book.titlepage.recto.style
updated attribute list book.titlepage.verso.style
updated attribute list article.titlepage.recto.style
updated attribute list article.titlepage.verso.style
updated attribute list set.titlepage.recto.style
updated attribute list set.titlepage.verso.style
updated attribute list part.titlepage.recto.style
updated attribute list part.titlepage.verso.style
updated attribute list partintro.titlepage.recto.style
updated attribute list partintro.titlepage.verso.style
updated attribute list reference.titlepage.recto.style
updated attribute list reference.titlepage.verso.style
updated attribute list refentry.titlepage.recto.style
updated attribute list refentry.titlepage.verso.style
updated attribute list dedication.titlepage.recto.style
updated attribute list dedication.titlepage.verso.style
updated attribute list acknowledgements.titlepage.recto.style
updated attribute list acknowledgements.titlepage.verso.style
updated attribute list preface.titlepage.recto.style
updated attribute list preface.titlepage.verso.style
updated attribute list chapter.titlepage.recto.style
updated attribute list chapter.titlepage.verso.style
updated attribute list appendix.titlepage.recto.style
updated attribute list appendix.titlepage.verso.style
updated attribute list bibliography.titlepage.recto.style
updated attribute list bibliography.titlepage.verso.style
updated attribute list glossary.titlepage.recto.style
updated attribute list glossary.titlepage.verso.style
updated attribute list index.titlepage.recto.style
updated attribute list index.titlepage.verso.style
updated attribute list setindex.titlepage.recto.style
updated attribute list setindex.titlepage.verso.style
updated attribute list sidebar.titlepage.recto.style
updated attribute list sidebar.titlepage.verso.style
updated attribute list topic.titlepage.recto.style
updated attribute list topic.titlepage.verso.style
updated attribute list section.titlepage.recto.style
updated attribute list section.titlepage.verso.style
xsl:attribute-set : sect1.titlepage.recto.style adds use section.titlepage.recto.style
updated attribute list sect1.titlepage.recto.style
xsl:attribute-set : sect1.titlepage.verso.style adds use section.titlepage.verso.style
updated attribute list sect1.titlepage.verso.style
xsl:attribute-set : sect2.titlepage.recto.style adds use section.titlepage.recto.style
updated attribute list sect2.titlepage.recto.style
xsl:attribute-set : sect2.titlepage.verso.style adds use section.titlepage.verso.style
updated attribute list sect2.titlepage.verso.style
xsl:attribute-set : sect3.titlepage.recto.style adds use section.titlepage.recto.style
updated attribute list sect3.titlepage.recto.style
xsl:attribute-set : sect3.titlepage.verso.style adds use section.titlepage.verso.style
updated attribute list sect3.titlepage.verso.style
xsl:attribute-set : sect4.titlepage.recto.style adds use section.titlepage.recto.style
updated attribute list sect4.titlepage.recto.style
xsl:attribute-set : sect4.titlepage.verso.style adds use section.titlepage.verso.style
updated attribute list sect4.titlepage.verso.style
xsl:attribute-set : sect5.titlepage.recto.style adds use section.titlepage.recto.style
updated attribute list sect5.titlepage.recto.style
xsl:attribute-set : sect5.titlepage.verso.style adds use section.titlepage.verso.style
updated attribute list sect5.titlepage.verso.style
xsl:attribute-set : simplesect.titlepage.recto.style adds use section.titlepage.recto.style
updated attribute list simplesect.titlepage.recto.style
xsl:attribute-set : simplesect.titlepage.verso.style adds use section.titlepage.verso.style
updated attribute list simplesect.titlepage.verso.style
updated attribute list table.of.contents.titlepage.recto.style
updated attribute list table.of.contents.titlepage.verso.style
updated attribute list list.of.tables.titlepage.recto.style
updated attribute list list.of.tables.contents.titlepage.verso.style
updated attribute list list.of.figures.titlepage.recto.style
updated attribute list list.of.figures.contents.titlepage.verso.style
updated attribute list list.of.equations.titlepage.recto.style
updated attribute list list.of.equations.contents.titlepage.verso.style
updated attribute list list.of.examples.titlepage.recto.style
updated attribute list list.of.examples.contents.titlepage.verso.style
updated attribute list list.of.unknowns.titlepage.recto.style
updated attribute list list.of.unknowns.contents.titlepage.verso.style
Resolving attribute sets references
creating attribute set table
attribute set part.titlepage.verso.style moved to top stylesheet
attribute set partintro.titlepage.recto.style moved to top stylesheet
attribute set preface.titlepage.recto.style moved to top stylesheet
attribute set chapter.titlepage.verso.style moved to top stylesheet
attribute set bibliography.titlepage.recto.style moved to top stylesheet
attribute set setindex.titlepage.recto.style moved to top stylesheet
attribute set sidebar.titlepage.recto.style moved to top stylesheet
attribute set section.titlepage.verso.style moved to top stylesheet
attribute set list.of.figures.contents.titlepage.verso.style moved to top stylesheet
attribute set list.of.examples.titlepage.recto.style moved to top stylesheet
attribute set refentry.titlepage.recto.style moved to top stylesheet
attribute set refentry.titlepage.verso.style moved to top stylesheet
attribute set acknowledgements.titlepage.verso.style moved to top stylesheet
attribute set glossary.titlepage.recto.style moved to top stylesheet
attribute set sect3.titlepage.recto.style moved to top stylesheet
attribute set sect5.titlepage.recto.style moved to top stylesheet
attribute set article.titlepage.recto.style moved to top stylesheet
attribute set part.titlepage.recto.style moved to top stylesheet
attribute set reference.titlepage.verso.style moved to top stylesheet
attribute set section.titlepage.recto.style moved to top stylesheet
attribute set list.of.equations.contents.titlepage.verso.style moved to top stylesheet
attribute set preface.titlepage.verso.style moved to top stylesheet
attribute set chapter.titlepage.recto.style moved to top stylesheet
attribute set bibliography.titlepage.verso.style moved to top stylesheet
attribute set table.of.contents.titlepage.verso.style moved to top stylesheet
attribute set list.of.examples.contents.titlepage.verso.style moved to top stylesheet
attribute set reference.titlepage.recto.style moved to top stylesheet
attribute set topic.titlepage.verso.style moved to top stylesheet
attribute set sect3.titlepage.verso.style moved to top stylesheet
attribute set simplesect.titlepage.verso.style moved to top stylesheet
attribute set list.of.tables.contents.titlepage.verso.style moved to top stylesheet
attribute set list.of.unknowns.contents.titlepage.verso.style moved to top stylesheet
attribute set set.titlepage.verso.style moved to top stylesheet
attribute set dedication.titlepage.verso.style moved to top stylesheet
attribute set acknowledgements.titlepage.recto.style moved to top stylesheet
attribute set appendix.titlepage.verso.style moved to top stylesheet
attribute set index.titlepage.recto.style moved to top stylesheet
attribute set sect4.titlepage.verso.style moved to top stylesheet
attribute set list.of.unknowns.titlepage.recto.style moved to top stylesheet
attribute set book.titlepage.recto.style moved to top stylesheet
attribute set book.titlepage.verso.style moved to top stylesheet
attribute set article.titlepage.verso.style moved to top stylesheet
attribute set glossary.titlepage.verso.style moved to top stylesheet
attribute set index.titlepage.verso.style moved to top stylesheet
attribute set topic.titlepage.recto.style moved to top stylesheet
attribute set sect2.titlepage.verso.style moved to top stylesheet
attribute set sect5.titlepage.verso.style moved to top stylesheet
attribute set list.of.tables.titlepage.recto.style moved to top stylesheet
attribute set setindex.titlepage.verso.style moved to top stylesheet
attribute set sect1.titlepage.verso.style moved to top stylesheet
attribute set olink.properties moved to top stylesheet
attribute set set.titlepage.recto.style moved to top stylesheet
attribute set partintro.titlepage.verso.style moved to top stylesheet
attribute set sidebar.titlepage.verso.style moved to top stylesheet
attribute set simplesect.titlepage.recto.style moved to top stylesheet
attribute set table.of.contents.titlepage.recto.style moved to top stylesheet
attribute set list.of.figures.titlepage.recto.style moved to top stylesheet
attribute set list.of.equations.titlepage.recto.style moved to top stylesheet
attribute set shade.verbatim.style moved to top stylesheet
attribute set dedication.titlepage.recto.style moved to top stylesheet
attribute set appendix.titlepage.recto.style moved to top stylesheet
attribute set sect1.titlepage.recto.style moved to top stylesheet
attribute set sect2.titlepage.recto.style moved to top stylesheet
attribute set sect4.titlepage.recto.style moved to top stylesheet
Importing attribute list section.titlepage.verso.style
Importing attribute list section.titlepage.recto.style
Importing attribute list section.titlepage.verso.style
Importing attribute list section.titlepage.verso.style
Importing attribute list section.titlepage.verso.style
Importing attribute list section.titlepage.verso.style
Importing attribute list section.titlepage.recto.style
Importing attribute list section.titlepage.recto.style
Importing attribute list section.titlepage.recto.style
Importing attribute list section.titlepage.recto.style
Importing attribute list section.titlepage.recto.style
Importing attribute list section.titlepage.verso.style
Bus error
Comment 3 Björn Jacke 2013-09-24 07:43:31 UTC
with 4.1 RHEL5's python will be too old but 4.0 should work and I think I saw it building without error also. Assigning to Andreas, who works for Red Hat to have a look.
Comment 4 Andreas Schneider 2013-09-24 10:41:24 UTC

    commit 9b02862fc8845ec16f45e52d49a0c1854c5a26b7
    Author: Günther Deschner <gd@samba.org>
    Date:   Fri Jul 19 15:59:33 2013 +0200
     
        FIXME: build smb.conf
     
    diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
    index caa6fb1..a459ab5 100644
    --- a/buildtools/wafsamba/wafsamba.py
    +++ b/buildtools/wafsamba/wafsamba.py
    @@ -821,7 +821,7 @@ def SAMBAMANPAGES(bld, manpages):
                                 rule='''XML_CATALOG_FILES="${SAMBA_CATALOGS}"
                                         export XML_CATALOG_FILES
                                         ${XSLTPROC} --xinclude --stringparam noreference 0 -o ${TGT}.xml --nonet ${SAMBA_EXPAND_XSL} ${SRC}
    -                                    ${XSLTPROC} --nonet -o ${TGT} ${SAMBA_MAN_XSL} ${TGT}.xml'''
    +                                    ${XSLTPROC} --maxdepth 99999 --nonet -o ${TGT} ${SAMBA_MAN_XSL} ${TGT}.xml'''
                                 )
             bld.INSTALL_FILES('${MANDIR}/man%s' % m[-1], m, flat=True)
     Build.BuildContext.SAMBAMANPAGES = SAMBAMANPAGES

This might work as a temporary workaround.
Comment 5 Andreas Schneider 2013-09-24 16:46:26 UTC
Alexander, I think you know this stuff better, could you take a look?
Comment 6 michael 2013-09-26 08:14:58 UTC
I manually tried performing the appropriate command with the added --maxdepth option.

/usr/bin/xsltproc --maxdepth 99999 --nonet -o default/docs-xml/manpages/smb.conf.5
/var/tmp/portage/net-fs/samba-4.0.9/work/samba-4.0.9/docs-xml/xslt/man.xsl
default/docs-xml/manpages/smb.conf.5.xml

The command still failed. Please note that this does not seem to be restricted to RHEL5.3. I'm performing this on a Gentoo Linux box and getting the results I posted.

I think the bigger question is how to track the template recursion problem and fixing that. When I changed the recursion depth to 150 I noted the following:

runtime error: file file:///usr/share/sgml/docbook/xsl-stylesheets/lib/lib.xsl line 54 element param
xsltApplyXSLTTemplate: A potential infinite template recursion was detected.

The file path above suggests that the version of docbook-xsl-stylesheets used may be a potential cause. Can someone list the version of this package used to build Samba 4 documentation? This package may simply be called docbook-xsl on other platforms. I used version 1.78.0 during my own builds.
Comment 7 Alexander Bokovoy 2013-09-26 09:12:20 UTC
1.78.1 works fine on Fedora 19.I used 'release-scripts/build-docs' script that only builds documentation.

Here is the output:
-----
xsltproc --xinclude --stringparam noreference 0 --output tmp/manpages/smb.conf.5.xml xslt/expand-sambadoc.xsl manpages/smb.conf.5.xml
xsltproc --output output/manpages/smb.conf.5 xslt/man.xsl tmp/manpages/smb.conf.5.xml
Note: Writing smb.conf.5
-----
Comment 8 michael 2013-10-16 06:26:22 UTC
I've since tested and confirmed that this is a Gentoo specific issue, and most likely an issue specific to my particular machine. When I configured a Fedora 19 machine with sufficient development tools I could get it to build the manpage without an issue. I've raised a bug with the Gentoo Bugzilla (https://bugs.gentoo.org/show_bug.cgi?id=488168) should another Gentoo user suffer from this issue.
Comment 9 Alexander Bokovoy 2017-10-12 07:21:34 UTC
We now have an alternative implementation of the string.subst in Fedora and Debian docbook-style-xsl packages that should prevent recoursive expansion.

For the reference, https://src.fedoraproject.org/rpms/docbook-style-xsl/pull-request/1 is the fix in Fedora (https://bugzilla.redhat.com/show_bug.cgi?id=1491307 is the bug in Fedora).

I'm closing this bug as there is nothing samba could do about it. The links above should help other vendors to unblock themselves.