Skip to content
  • Steven Murray's avatar
    cta/CTA#139 cta af ls --vid XXXXX command times out if there are many files on a tape · 72810551
    Steven Murray authored
    The CTA front-ends code for replying to requests is currently
    incompatible with streaming back large reply messages such as
    the contents of a tape.
    
    Executing the "cta" command-line tool results in the CTA
    front-end creating a temporary server side representation of
    a file.  The XrdCtaFile class implements this server side
    representation of a file.
    
    The constructor of the XrdCtaFile class generates the entire
    contents of the file in one shot.  The contents of the file
    are in fact the message a user of the "cta" command-line
    eventually sees on their screen (standard out).
    
    The entire single shot contents of the file are presented to
    the XRootD framework as a memory mapped file which is in
    fact a simple "one-shot" array of bytes.  This memory mapped
    file approach is implemented by the XrdCtaFile::getMmap()
    method returning SFS_OK and setting the Addr and Size
    variables.
    
    This commit replaces the memory mapped file approach of
    XrdCtaFile::getMmap() with the stream interface approach of
    XrdCtaFile::read().
    
    Please note that the CTA front-end is still not actually
    streaming the result of "cta af ls --vid XXXX".  This
    commit is one step closer.  The whole reply message is
    still generated in one shot by the constructor of
    XrdCtaFile.  The contents are however now streamed off
    to the "cta" command-line tool via multiple calls to
    XrdCtaFile::read().
    72810551