<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hello Robert, <br>
      <br>
      you are totally right!<br>
      <br>
      We investigated this for a bit and found that due to our oversight
      in the grammar of the config, it was only possible to write a <b>single</b>
      option in the thread group block.<br>
      <br>
      It should be fixed on a branch here:
<a class="moz-txt-link-freetext" href="https://gitlab.nic.cz/labs/bird/-/tree/dp-fix-thead-group-conf?ref_type=heads">https://gitlab.nic.cz/labs/bird/-/tree/dp-fix-thead-group-conf?ref_type=heads</a><br>
      <br>
      We will try to back-port this patch to v3.1 so hopefully it will
      land in v3.1.3.<br>
      <br>
      Thanks a lot for the bug report!<br>
      <br>
      Have a good rest of the week, <br>
      David</p>
    <pre class="moz-signature" cols="72">David Petera (he/him) | BIRD Tech Support | CZ.NIC, z.s.p.o.</pre>
    <div class="moz-cite-prefix">On 8/21/25 21:16, Robert Lister wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:0cb40b60-4636-47a2-9fbf-e64753eb714c@lonap.net">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <meta name="viewport"
        content="width=device-width, initial-scale=1.0">
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Hello,</span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">According
        to the docs for v3.1.2 and v3.1.1:</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><a
          href="https://bird.nic.cz/doc/bird-3.1.2.html#global-opts"
          moz-do-not-send="true" class="moz-txt-link-freetext">https://bird.nic.cz/doc/bird-3.1.2.html#global-opts</a> </span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><b>Thread
          setup</b></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">[..]</span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Thread
        groups are configured by writing <span style="font-family:;"
          courier="" new_,="" courier,="" monospace;_="">thread group</span>
        <i>name </i>{} blocks, which contain </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">the
        following options:</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">threads </span><i>number</i></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">default </span><i>bool</i></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><i>[...]</i></span>
      <br>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">It also
        notes the following:</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:inter-regular, sans-serif;"><span
            style="color:#00252E;"><span
              style="background-color:#00000000;">There is also a
              "simple" thread group setting. If you write </span></span></span><b><span
style="font-family:sfmono-regular, menlo, monaco, consolas, ;"
            liberation="" mono_,="" _courier="" new_,="" monospace;_=""><span
              style="color:#D63384;"><span
                style="background-color:#00000000;">threads </span></span></span></b><i><span
            style="font-family:inter-regular, sans-serif;"><span
              style="color:#00252E;"><span
                style="background-color:#00000000;">number</span></span></span></i><span
          style="font-family:inter-regular, sans-serif;"><span
            style="color:#00252E;"><span
              style="background-color:#00000000;"> on top level, it is
              equivalent to</span></span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:inter-regular, sans-serif;"><span
            style="color:#00252E;"><span
              style="background-color:#00000000;">setting the worker
              group thread count to that number, and the express group
              thread count to one.</span></span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:inter-regular, sans-serif;"><span
            style="color:#00252E;"><span
              style="background-color:#00000000;">This setting is
              deprecated and may disappear in some future version.</span></span></span></span>
      <br>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">So.. now I
        come to setting up a new server, I thought I'd better try to use
        this</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">"new"
        config style. But whatever I try doesn't seem to work. I've
        tried various</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">iterations
        of:</span> <br>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:55:10">bird.conf:55:10</a> No default thread
            group configured</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:43:2">bird.conf:43:2</a> syntax error,
            unexpected THREADS, expecting '}'</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default yes;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:43:2">bird.conf:43:2</a> syntax error,
            unexpected DEFAULT, expecting '}'</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="color:#E03E2D;"><span style="font-family:;" courier=""
            new_,="" courier,="" monospace;_="">--> <FATAL>
            /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:43:2">bird.conf:43:2</a> syntax error, unexpected DEFAULT,
            expecting '}'</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Weirdly, if
        I configure only "default;" with no other options, it accepts
        the config:</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#169179;">root@<a class="moz-txt-link-freetext" href="rc01:/#">rc01:/#</a>
            /usr/local/sbin/bird -c /etc/bird/bird.conf -p</span></span></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#169179;">root@<a class="moz-txt-link-freetext" href="rc01:/#">rc01:/#</a></span></span></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">If I add
        the (deprecated) top-level "threads", it complains I've got them
        both configured:</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""> </span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:41:14">bird.conf:41:14</a> Mixing of `threads
            NUM` and `threads worker {}` is not allowed.</span></span></span>
      <br>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">As soon as
        I try any other config options, it doesn't accept it:</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        wakeup time 31415 s;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:43:2">bird.conf:43:2</a> syntax error,
            unexpected WAKEUP, expecting '}'</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Also tried:</span>
      <br>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">                threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">                default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        };</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">---</span>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">- nope.</span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""> </span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group express {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 1;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:45:14">bird.conf:45:14</a> syntax error,
            unexpected EXPRESS, expecting CF_SYM_KNOWN or
            CF_SYM_UNDEFINED</span></span></span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">---</span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">thread group worker {</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        threads 2;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">        default;</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_="">}</span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:43:2">bird.conf:43:2</a> syntax error,
            unexpected DEFAULT, expecting '}'</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:verdana, geneva, sans-serif;"><span
            style="color:#000000;">---</span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;"><span
              style="color:#000000;">thread worker {</span></span></span></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;"><span
              style="color:#000000;">        threads 2;</span></span></span></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;"><span
              style="color:#000000;">        default;</span></span></span></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;"><span
              style="color:#000000;">}</span></span></span></span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><span
          style="font-family:;" courier="" new_,="" courier,=""
          monospace;_=""><span style="color:#E03E2D;">-->
            <FATAL> /etc/bird/<a class="moz-txt-link-freetext" href="bird.conf:41:8">bird.conf:41:8</a> syntax error,
            unexpected CF_SYM_UNDEFINED, expecting GROUP</span></span></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">So, it
        seems the "default" option must be present, but if I add <i>any
        </i>other option,</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">it doesn't
        accept it. Oddly, if I put another option before default, it
        doesn't complain</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">about that,
        but instead complains about "default" being there.</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">I tried
        various 3.x versions 3.1.1, 3.1.2 and a couple of recent
        branches from git repo.</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">As for the
        config - I just have the default bird.conf which ships with the
        BIRD</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">debian
        package, and I've added the thread group option somewhere near
        the top.</span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Any hints
        on the correct config would be appreciated. Or is this maybe a
        bug?</span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Thanks!</span>
      <br>
      <br>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Rob</span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"> </span> <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">-- </span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">Rob Lister</span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;"><a class="moz-txt-link-abbreviated" href="mailto:rob@lonap.net">rob@lonap.net</a></span>
      <br>
      <span dir="ltr" style="margin-top:0; margin-bottom:0;">+44 20 3137
        8330</span> <br>
      <br>
    </blockquote>
  </body>
</html>