Subject: [Tools-discuss] idnits dies on draft-ietf-quic-transport-28

From: Lars Eggert <[email-masked]>
Date: Tue, 2 Jun 2020 13:30:09 +0300

Hi,

idnits seems to die on draft-ietf-quic-transport-28:

# idnits -d draft-ietf-quic-transport.txt
Inspecting file draft-ietf-quic-transport.txt
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/idnits/checks.py", line 153, in any_text_has_nonascii_char
    txt.decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 6: ordinal not in range(128)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/idnits", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/idnits/run.py", line 91, in main
    result = checker.check()
  File "/usr/local/lib/python3.7/site-packages/idnits/checks.py", line 108, in check
    res = check.func(self)
  File "/usr/local/lib/python3.7/site-packages/idnits/checks.py", line 155, in any_text_has_nonascii_char
    code = ord(e.args[1][e.start])
TypeError: ord() expected string of length 1, but int found

The online version also seems to have problems, since https://www.ietf.org/tools/idnits?url=https://www.ietf.org/archive/id/draft-ietf-quic-transport-28.txt doesn't load.

Lars

---

From: Lars Eggert <[email-masked]>
Date: Tue, 2 Jun 2020 13:37:50 +0300

> idnits seems to die on draft-ietf-quic-transport-28:

Related: Which version of idnits is the canonical one? I had been using https://pypi.org/project/idnits/ locally, which claims to be "idnits 3.0.0" but is from 2018.

The tools page at https://tools.ietf.org/tools/idnits/ has version 2.16.04, but that is from April 2020.

I'm guessing the latter is what I should have been using? (But can we then please take down the former?)

Thanks,
Lars

---

From: Lars Eggert <[email-masked]>
Date: Tue, 2 Jun 2020 13:45:55 +0300

On 2020-6-2, at 13:37, Lars Eggert <[email-masked]> wrote:
> I'm guessing the latter is what I should have been using?

Trying to use that, it seems like it wants to download a state file for *every single RFC* first?

Lars

idnits --debug draft-ietf-quic-transport.txt
idnits 2.16.04
Status file /Users/lars/.idnits/rfc-status is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc-wordlist is dated 2020-06-02.
Status file /Users/lars/.idnits/rfcs-obsoleted is dated 2020-06-02.
Status file /Users/lars/.idnits/downref-exceptions is dated 2020-06-02.

draft-ietf-quic-transport.txt:
Status file /Users/lars/.idnits/draft-hamilton-quic-transport-protocol.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-invariants.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-manageability.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-recovery.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-tls.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-tls.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-quic-transport.state is dated 2020-06-02.
Status file /Users/lars/.idnits/draft-ietf-tsvwg-datagram-plpmtud.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc0791.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc100.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1007.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1009.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc101.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1010.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1015.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1016.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1018.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc102.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1023.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc103.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1030.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1034.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1036.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1038.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc104.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1043.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1048.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc105.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1050.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1052.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1053.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc106.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1065.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1067.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc107.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1070.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1074.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1079.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc108.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1082.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1086.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1089.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc109.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1090.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1091.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1094.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1095.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc110.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc111.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc112.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc113.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1137.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc114.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1146.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc115.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1151.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc116.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1165.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1166.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc117.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1174.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1178.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1179.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc118.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1185.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc119.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1190.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1191.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1193.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1194.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1197.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc120.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1200.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc121.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc122.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc123.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1232.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1233.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc124.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1242.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1243.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1249.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc125.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1251.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1252.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1258.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc126.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1262.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1264.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1265.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1267.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc127.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1271.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1274.state is dated 2020-06-02.
Status file /Users/lars/.idnits/rfc1276.state is dated 2020-06-02.
...

---

From: Henrik Levkowetz <[email-masked]>
Date: Tue, 2 Jun 2020 13:37:02 +0200

Hi Lars,

> Trying to use that, it seems like it wants to download a state file for *every single RFC* first?

It tries to extract what it thinks are references to RFCs from the
draft, and then checks if it has info about those in cache; otherwise
it will try to get that info.

	Henrik

> ....
> ___________________________________________________________
> Tools-discuss mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tools-discuss
> 
> Please report datatracker.ietf.org and mailarchive.ietf.org
> bugs at http://tools.ietf.org/tools/ietfdb
> or send email to [email-masked]
> 
> Please report tools.ietf.org bugs at
> http://tools.ietf.org/tools/issues
> or send email to [email-masked]
>

---

From: Henrik Levkowetz <[email-masked]>
Date: Tue, 2 Jun 2020 13:37:59 +0200

Hi Lars,

> Related: Which version of idnits is the canonical one? I had been
> using https://pypi.org/project/idnits/ locally, which claims to be
> "idnits 3.0.0" but is from 2018.
> 

Yes, and I'll update the former to indicate that it's an incomplete
prerelease.

	Henrik

---

From: Lars Eggert <[email-masked]>
Date: Tue, 2 Jun 2020 14:39:25 +0300

Hi,

> it will try to get that info.

that's what I thought I remembered it doing, but it sure looks like it is getting an awful lot more than those cited. Could you run it at your end to confirm?

Thanks,
Lars