Issue with istream read

41 views
Skip to first unread message

Bruno Santos

unread,
May 12, 2026, 4:00:36 AMMay 12
to iRODS-Chat
Hi,

I found 'strange' behavior with the istream read command.

If the collection name contains a single quota in the name, it does not work.
Using the same path, other icommands work.

Example:
$ istream read "/zone/home/user/37/cc'cc/file.txt"
Error: iRODS Exception:
    file: /usr/include/irods/replica.hpp
    function: irods::experimental::replica::query_value_type irods::experimental::replica::detail::get_data_object_info_impl(RcComm &, const irods::experimental::filesystem::path &, std::string_view) [RcComm = RcComm]
    line: 222
    code: -808000 (CAT_NO_ROWS_FOUND)
    message:
        no replica information found
stack trace:
--------------
 0# irods::stacktrace::dump() const in /lib/libirods_common.so.4.3.4
 1# irods::exception::assemble_full_display_what() const in /lib/libirods_common.so.4.3.4
 2# irods::exception::what() const in /lib/libirods_common.so.4.3.4
 3# main in istream
 4# 0x00007FBD356E3D90 in /lib/x86_64-linux-gnu/libc.so.6
 5# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
 6# _start in istream


$ ils -l  "/zone/home/user/37/cc'cc/file.txt"
  user          0 hot_1;local_filestorage_1711_2         1212 2026-05-12.09:14 & file.txt
$ iget -f  "/zone/home/user/37/cc'cc/file.txt"
$ ls file.txt
file.txt


Here, the collection name has a lot of different chars, but no single quote and it works:
$ istream read '/zone/home/user/37/bb !-_.*()+ ~@#$%^&{}|:<>?`=[];,"€bb/contents.txt'
(file content here!)
$ ils '/zone/home/user/37/bb !-_.*()+ ~@#$%^&{}|:<>?`=[];,"€bb/contents.txt'
  /zone/home/user/37/bb !-_.*()+ ~@#$%^&{}|:<>?`=[];,"€bb/contents.txt


Any ideas?

Thanks in advance,
Bruno

Terrell Russell

unread,
May 12, 2026, 7:09:56 AMMay 12
to irod...@googlegroups.com
Hi Bruno,

Can you reproduce in 4.3.5 or 5.0.2?

Terrell



--
--
The Integrated Rule-Oriented Data System (iRODS) - https://irods.org
 
iROD-Chat: http://groups.google.com/group/iROD-Chat
---
You received this message because you are subscribed to the Google Groups "iRODS-Chat" group.
To unsubscribe from this group and stop receiving emails from it, send an email to irod-chat+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/irod-chat/2f7642bd-3bf5-4583-896f-2d83eb1a0024n%40googlegroups.com.

Bruno Santos

unread,
May 15, 2026, 9:32:40 AMMay 15
to iRODS-Chat
Hi Terrell,

I haven’t checked in those versions.
I’m not sure if I will be able to do the tests soon due to priorities, time constraints, and available infrastructure. 
I will check, but I cannot promise when.

This issue is not blocking. I just want to share the finding.
And, if the functionality is really needed, it can be achieved in several steps.


Regards,
Bruno

Terrell Russell

unread,
May 15, 2026, 9:41:41 AMMay 15
to irod...@googlegroups.com
understood.   thanks.

Terrell

Terrell Russell

unread,
May 15, 2026, 9:44:39 AMMay 15
to irod...@googlegroups.com
appears to be okay with 4.3.5...

$ echo "hi bruno" > "with'single'quote.txt"
$ iput "with'single'quote.txt"
$ istream read "with'single'quote.txt"
hi bruno
$ imiscsvrinfo
RCAT_ENABLED
relVersion=rods4.3.5
apiVersion=d
rodsZone=tempZone
up 24 days, 16:12
SSL/TLS Info:
    enabled: false



Bruno Santos

unread,
May 15, 2026, 10:06:16 AMMay 15
to iRODS-Chat
yes, it does look like so.

Assuming the istream behaves the same whether the data object name or the collection name contains a single quote.

A bit more detail on our plans:
We are considering upgrading from version 4.3.4 to version 5 skipping 4.3.5.
That means I might not even have 4.3.5 to test.
But, we will have version 5, and once that is ready, I can test it.

Terrell Russell

unread,
May 15, 2026, 10:16:29 AMMay 15
to irod...@googlegroups.com
Good point.    Collection name also appears okay in 4.3.5.

$ imkdir "coll'with'single"
$ iput "with'single'quote.txt" "coll'with'single"
$ istream read "coll'with'single/with'single'quote.txt"
hi bruno
$




Terrell Russell

unread,
May 15, 2026, 11:21:56 AMMay 15
to irod...@googlegroups.com
This finding was confusing to me - as we have not 'fixed' the GenQuery1 parser in iRODS 4.x.  We replaced it in iRODS 5 (and expected this issue to be fixed there).

But in iRODS 4.3.5... I expected it to still fail... and so I tried again... and it DID fail, as you saw.

$ echo "hello bruno as alice"
hello bruno as alice
$ echo "hello bruno as alice" > "with'single'file.txt"
$ imkdir "with'single"
$ iput "with'single'file.txt" "with'single/"
$ ils "with'single"
/tempZone/home/alice/with'single:
  with'single'file.txt
$ istream read "with'single/with'single'file.txt"

Error: iRODS Exception:
    file: /usr/include/irods/replica.hpp
    function: irods::experimental::replica::query_value_type irods::experimental::replica::detail::get_data_object_info_impl(RcComm &, const irods::experimental::files
ystem::path &, std::string_view) [RcComm = RcComm]
    line: 222
    code: -808000 (CAT_NO_ROWS_FOUND)
    message:
        no replica information found
stack trace:
--------------
 0# irods::stacktrace::dump() const in /usr/lib/libirods_common.so.4.3.5
 1# irods::exception::assemble_full_display_what() const in /usr/lib/libirods_common.so.4.3.5
 2# irods::exception::what() const in /usr/lib/libirods_common.so.4.3.5
 3# main in istream
 4# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
 5# _start in istream


ERROR(1) $ 


We will not be fixing this in 4.x.  iRODS 4.3.5 was the last release of the 4 series.

So there will be no action taken on this, but wanted to report my findings here for consistency.

Terrell



Terrell Russell

unread,
May 15, 2026, 11:24:46 AMMay 15
to irod...@googlegroups.com
And... with two single quotes... it works.     Something about the pairing of single quotes apparently matters...

Alas, not great.

Good news, the future is bright :P

$ imv "with'single" "with'two'singles"
$ istream read "with'two'singles/with'single'file.txt"

hello bruno as alice
$

 Terrell



Reply all
Reply to author
Forward
0 new messages