plk/biber

warning: Use of uninitialized value - but only on new entries in bib file

NelisW opened this issue · 3 comments

New Installation running biber under:

Ubuntu 22.04 on WSL, Windows 10, released 25 April (a few days ago).
biber 2.17
texlive-binaries 2021.20210626.59705-1build1 amd64

Use of uninitialized value within %Biber::Config::CONFIG_OPTSCOPE_BIBLATEX in hash dereference at /usr/share/perl5/Biber/Config.pm line 972.
Use of uninitialized value $opt in hash element at /usr/share/perl5/Biber/Config.pm line 977.

strange thing: biber only reports uninitialized value warnings on new additions to bib files, added after upgrading and building docs from old config below.

new entry seems legit:

@misc{PlatformIO2022,
author = {PlatformIO},
title       = {{PlatformIO}},
url         = {https://platformio.org/},
year        = {2022}
}

Files are edited with VS-Code on windows side, and all entries (old and new) have windows \r\n line endings.

Older installation running biber under:

Ubuntu 20.04 on WSL, Windows 10
biber 2.14
texlive-binaries 2019.20190605.51237-3build2 amd64

Same files (even with new additions) as above give no error.

I'm guessing this is the same issue as #403. I think we established that these messages are warnings only and are harmless for us, but they will be fixed in the next release.

If you find that the warnings do have an impact (because the output is wrong or they cause errors later on), an example document would be appreciated.

Thanks for prompt reply. Yes, I saw #403.
The doc builds correctly so we just wait for the next release - thanks to all concerned!

I just thought perhaps this case added an additional perspective because 'old' entries do not give errors, only 'new' entries.
How does biber know about old (pre-install) and new (post-install) entries to the biber file? It makes me think there might be a cache somewhere (which #403 indicates is note the case).

Mhhh, yeah I read what you said about old files. As far as I know there is no persistent data cache that would keep your .bib files in store for later use. The cache only stores the program files (and a very elusive working copy of your .bib file that is immediately deleted after the run). My working hypothesis would be that you are using a build tool (like latexmk) that runs Biber only when necessary, so Biber is not invoked on old unchanged .bib files and issues no warnings. But as you start changing stuff, Biber is run and the warnings appear.