Odd build error in 1.85 pre-release - filesystem

When building for windows against the 1.85.0 nightly snapshot, I'm seeing an odd error with no info around it: - type_erasure : building - url : building - wave : building ...patience... ...patience... ...patience... ...patience... ...patience... ...patience... ...patience... [errno 22] failed to scan file '': Invalid argument...found 39744 targets... Upping the verbosity in B2, I was able to find that it appears to happen in filesystem: bind -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp: boost\filesystem\detail\type_traits\disjunction.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp: 2024-02-22 07:18:09.000000000 +0000 make -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp: unbound made stable <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp bind -- [errno 22] failed to scan file '': Invalid argument <object(c-scanner)@8602>boost\filesystem\detail\header.hpp: boost\filesystem\detail\header.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp: 2024-02-22 07:18:09.000000000 +0000 make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp: unbound made stable <object(c-scanner)@8602>boost\filesystem\detail\header.hpp Anyone have ideas on what this can be? Why it doesn't show up more like a normal error? Thanks, Tom

On 2/23/24 05:07, Tom Kent via Boost wrote:
When building for windows against the 1.85.0 nightly snapshot, I'm seeing an odd error with no info around it:
- type_erasure : building - url : building - wave : building
...patience... ...patience... ...patience... ...patience... ...patience... ...patience... ...patience... [errno 22] failed to scan file '': Invalid argument...found 39744 targets...
Upping the verbosity in B2, I was able to find that it appears to happen in filesystem:
bind -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp: boost\filesystem\detail\type_traits\disjunction.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp: 2024-02-22 07:18:09.000000000 +0000 make -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp: unbound made stable <object(c-scanner)@8602>boost\filesystem\detail\type_traits\disjunction.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp bind -- [errno 22] failed to scan file '': Invalid argument <object(c-scanner)@8602>boost\filesystem\detail\header.hpp: boost\filesystem\detail\header.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp: 2024-02-22 07:18:09.000000000 +0000 make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp make -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp time -- <object(c-scanner)@8602>boost\filesystem\detail\header.hpp: unbound made stable <object(c-scanner)@8602>boost\filesystem\detail\header.hpp
Anyone have ideas on what this can be? Why it doesn't show up more like a normal error?
It looks like the error happens in b2 while it is scanning headers for dependencies. I don't know b2 internals enough to understand why that happens and whether there is something specific in Boost.Filesystem to trigger it. In any case, boost\filesystem\detail\header.hpp is not new and hasn't changed for more than a year, so I don't think it's the header. I think, this should be reported to Boost.Build. https://github.com/bfgroup/b2/issues PS: I'm not seeing this locally or in CI: https://github.com/boostorg/filesystem/actions/runs/7970405370/job/217579379... https://github.com/boostorg/filesystem/actions/runs/7970405370/job/217579389... https://github.com/boostorg/filesystem/actions/runs/7970405370/job/217579392...

Andrey Semashev wrote:
On 2/23/24 05:07, Tom Kent via Boost wrote:
When building for windows against the 1.85.0 nightly snapshot, I'm seeing an odd error with no info around it:
- type_erasure : building - url : building - wave : building
...patience... ...patience... ...patience... ...patience... ...patience... ...patience... ...patience... [errno 22] failed to scan file '': Invalid argument...found 39744 targets...
Upping the verbosity in B2, I was able to find that it appears to happen in filesystem: ... It looks like the error happens in b2 while it is scanning headers for dependencies. I don't know b2 internals enough to understand why that happens and whether there is something specific in Boost.Filesystem to trigger it. In any case, boost\filesystem\detail\header.hpp is not new and hasn't changed for more than a year, so I don't think it's the header. I think, this should be reported to Boost.Build.
https://github.com/bfgroup/b2/issues
PS: I'm not seeing this locally or in CI:
The problem is not in Filesystem, but in Wave. I've verified that b2 --without-wave does not give the error, and b2 --with-wave does. For me, the latter outputs ...patience... ...patience... [errno 22] failed to scan file '': Invalid argument[errno 2] failed to scan file 'boost/wave\': No such file or directory...found 6224 targets...

On 2/23/24 16:53, Peter Dimov via Boost wrote:
Andrey Semashev wrote:
On 2/23/24 05:07, Tom Kent via Boost wrote:
When building for windows against the 1.85.0 nightly snapshot, I'm seeing an odd error with no info around it:
- type_erasure : building - url : building - wave : building
...patience... ...patience... ...patience... ...patience... ...patience... ...patience... ...patience... [errno 22] failed to scan file '': Invalid argument...found 39744 targets...
Upping the verbosity in B2, I was able to find that it appears to happen in filesystem: ... It looks like the error happens in b2 while it is scanning headers for dependencies. I don't know b2 internals enough to understand why that happens and whether there is something specific in Boost.Filesystem to trigger it. In any case, boost\filesystem\detail\header.hpp is not new and hasn't changed for more than a year, so I don't think it's the header. I think, this should be reported to Boost.Build.
https://github.com/bfgroup/b2/issues
PS: I'm not seeing this locally or in CI:
The problem is not in Filesystem, but in Wave. I've verified that
b2 --without-wave
does not give the error, and
b2 --with-wave
does.
For me, the latter outputs
...patience... ...patience... [errno 22] failed to scan file '': Invalid argument[errno 2] failed to scan file 'boost/wave\': No such file or directory...found 6224 targets...
Indeed, and I believe this is triggered by these lines: https://github.com/boostorg/wave/blob/737c1e07eedda7f0131ec601df1a34300a1f38... If I change those comments to "#include <header>" and "#include "header"" then the error disappears. The bug is in b2 though, as it should not be triggered by comments (or anything that isn't an actual #include directive).

On 2/23/24 17:06, Andrey Semashev wrote:
On 2/23/24 16:53, Peter Dimov via Boost wrote:
Andrey Semashev wrote:
On 2/23/24 05:07, Tom Kent via Boost wrote:
When building for windows against the 1.85.0 nightly snapshot, I'm seeing an odd error with no info around it:
- type_erasure : building - url : building - wave : building
...patience... ...patience... ...patience... ...patience... ...patience... ...patience... ...patience... [errno 22] failed to scan file '': Invalid argument...found 39744 targets...
Upping the verbosity in B2, I was able to find that it appears to happen in filesystem: ... It looks like the error happens in b2 while it is scanning headers for dependencies. I don't know b2 internals enough to understand why that happens and whether there is something specific in Boost.Filesystem to trigger it. In any case, boost\filesystem\detail\header.hpp is not new and hasn't changed for more than a year, so I don't think it's the header. I think, this should be reported to Boost.Build.
https://github.com/bfgroup/b2/issues
PS: I'm not seeing this locally or in CI:
The problem is not in Filesystem, but in Wave. I've verified that
b2 --without-wave
does not give the error, and
b2 --with-wave
does.
For me, the latter outputs
...patience... ...patience... [errno 22] failed to scan file '': Invalid argument[errno 2] failed to scan file 'boost/wave\': No such file or directory...found 6224 targets...
Indeed, and I believe this is triggered by these lines:
https://github.com/boostorg/wave/blob/737c1e07eedda7f0131ec601df1a34300a1f38...
If I change those comments to "#include <header>" and "#include "header"" then the error disappears.
The bug is in b2 though, as it should not be triggered by comments (or anything that isn't an actual #include directive).
I've created a PR with a fix here: https://github.com/bfgroup/b2/pull/362
participants (3)
-
Andrey Semashev
-
Peter Dimov
-
Tom Kent