I can put this in. Andy, what is the size limit for the tag? Is it 24
characters?
Cheers,
Lukasz
On 09/18/2014 03:13 AM, Daniel L. Wang wrote:
> Um, I recognize that the "ideal" solution may be difficult. Did you see
> the "realistic" solution I proposed (report a warning and creatively
> shorten)? I think this could be implemented in genversion.sh .
>
> Incidentally, I looked for the documentation, and I didn't see it on the
> web pages or in the source tree, *except* in XrdVersion.hh.in, which has
> a declaration for a 40-byte char-array, and if you follow the code, you
> might infer that XrdVERSION is token-pasted together with a few other
> fields to fill that char-array. One might also guess (luckily) that
> genversion.sh computes XrdVersion.hh from XrdVersion.hh.in . I was the
> only one in the group lucky enough to connect the dots, perhaps only
> because of a hallway conversation several months ago where you mentioned
> that you figured out how to derive a version number from git tags.
>
> Anyway, I think that having genversion.sh warn/complain/bail-out on a
> too-long tag is not super hard to do. I don't know exactly what the
> limit is (I never got comfy with token pasting with the cpp), but
> putting this sort of code in genversion.sh should be of great help to
> the average user/sysadmin to go from "wha? initializer string too long?
> I didn't touch that part of the code." to "Ah. tags are used in xrootd
> for internal version numbers. I guess I can't use whatever tag I want. I
> can fix that.".
>
> We've worked around this by shortening the tag, but it might be nice to
> preventatively add a warning so as to avoid a future bug report from
> somebody else who used a tag too long (which could be us, if we forget).
>
> Cheers,
> -Daniel
>
> On 09/17/2014 02:24 PM, Andrew Hanushevsky wrote:
>> Indeed, I think this is documented. The field length is fixed at a
>> certain number of characters (usually long enough). Since the setting
>> is done using a simple macro, there is no way to do the suggested
>> calculations. Changing it would be deemed an ABO change which we are
>> prohibited from doing in EPEL. So, it would be wise to shorten the tag.
>>
>> Andyx==
>>
>> On Wed, 17 Sep 2014, Daniel L. Wang wrote:
>>
>>> Hello,
>>>
>>> We have encountered what looks like a bug while building Xrootd that
>>> seems to be triggered by having a long git tag.
>>>
>>> Here is a build log snippet:
>>> Building CXX object
>>> src/CMakeFiles/XrdFileCache.dir/XrdFileCache/XrdFileCacheFactory.cc.o
>>> [ 97%] [ 97%] [ 97%] [ 97%] Building CXX object
>>> src/CMakeFiles/XrdFileCache.dir/XrdFileCache/XrdFileCacheIOEntireFile.cc.o
>>>
>>> Building CXX object
>>> src/CMakeFiles/XrdFileCache.dir/XrdFileCache/XrdFileCacheIOFileBlock.cc.o
>>>
>>> Building CXX object
>>> src/CMakeFiles/XrdFileCache.dir/XrdFileCache/XrdFileCachePrefetch.cc.o
>>> Building CXX object
>>> src/CMakeFiles/XrdFileCache.dir/XrdFileCache/XrdFileCacheInfo.cc.o
>>> Linking CXX executable xrdadler32
>>> Linking CXX shared library libXrdPosixPreload.so
>>> Linking CXX shared library libXrdSecgsi.so
>>> [ 97%] Built target XrdPosixPreload
>>> [ 97%] Built target xrdadler32
>>> [ 97%] Built target XrdSecgsi
>>> Linking CXX executable xrdfs
>>> Scanning dependencies of target XrdSecgsiGMAPDN
>>> [ 97%] Building CXX object
>>> src/CMakeFiles/XrdSecgsiGMAPDN.dir/XrdSecgsi/XrdSecgsiGMAPFunDN.cc.o
>>> Linking CXX shared library libXrdFfs.so
>>> /lsst/home/lsstsw/build/xrootd/src/XrdFileCache/XrdFileCacheFactory.cc:49:
>>> error: initializer-string for array of chars is too long
>>> [ 97%] Built target xrdfs
>>> [ 97%] Built target XrdFfs
>>> make[2]: ***
>>> [src/CMakeFiles/XrdFileCache.dir/XrdFileCache/XrdFileCacheFactory.cc.o]
>>> Error 1
>>> make[2]: *** Waiting for unfinished jobs....
>>>
>>> The tag we are using is: 4.0.0rc3-qsClient2.lsst1 , which is 24
>>> characters. XrdFileCacheFactory.cc:49 has a line that uses the
>>> XrdVERSIONINFO macro, which apparently joins strings together based
>>> on a discovered git tag. It's interesting that the length limit was
>>> only hit when compiling XrdFileCacheFactory.cc -- I'm sure the macro
>>> was referenced in many parts of code that successfully compiled.
>>>
>>> Ideally, I think the code should be robust enough to handle
>>> arbitrarily-long tags. But realistically, I think a warning and some
>>> creative tag shortening: "SomebodysReallyReallyLongTag" -->
>>> "SomebodysRe...gTag" would suffice, and be simpler to implement.
>>>
>>> I'm not positive that the issue exists on the mainline xrootd--if
>>> there have been updates to the tag/version handling, I should
>>> certainly pull a new version. The version I'm using is in my
>>> repository on github: wangd/xrootd, tag: qsClient2 (but re-tagged to
>>> the long string above).
>>>
>>> Have a nice day,
>>>
>>> -Daniel
>>>
>>> ########################################################################
>>> Use REPLY-ALL to reply to list
>>>
>>> To unsubscribe from the XROOTD-DEV list, click the following link:
>>> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
>>>
>
> ########################################################################
> Use REPLY-ALL to reply to list
>
> To unsubscribe from the XROOTD-DEV list, click the following link:
> https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1
|