Steve Lawrence created DAFFODIL-3002:
----------------------------------------
Summary: CLI reading/writing a fifo file fails with 0 bytes
available error
Key: DAFFODIL-3002
URL: https://issues.apache.org/jira/browse/DAFFODIL-3002
Project: Daffodil
Issue Type: Bug
Components: CLI
Affects Versions: 3.10.0, 3.9.0
Reporter: Steve Lawrence
Daffodil 3.9.0 modified the CLI so that it would mmap file inputs, which gives
pretty significant performance improvements for large files (DAFFODIL-2921).
However, this does not properly detect that the file is actually normal file
where mmaping works.
For example, if you try to use a fifo file as the input like this:
{code}
daffodil parse -s ... fifo_file
{code}
Then we end up mmaping zero bytes (because a fifo file has a length of zero),
and daffodil will have zero bytes available for parsing.
We should fix our CLI so it detects if a file is a normal file, and if not fall
back to the normal non-mmap processing.
A workaround to disable mmap in the CLI is to parse data from stdin. For
example, the above can be replaced with this:
{code}
daffodil parse -s ... < fifo_file
{code}
This does make it impossible to debug data from a fifo file since the CLI
debugger uses stdin for debugger commands, so this does need a more permanent
fix.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)