Thanks, that sounds great, Lukasz! -Daniel On 09/18/2014 07:06 AM, Lukasz Janyst wrote: > The problem is not there in master anymore. The reason you see it is > that your tag "4.0.0rc3-qsClient2.lsst1" gets concatenated with > "first_cache_imp_alja". The resulting string exceeds the number of > allowed characters. In master and in v4.0.1 this has been changed to > XrdFileCache, and the problem is not there anymore. The following > commit shortens the version string length to 25 characters. > > https://github.com/xrootd/xrootd/commit/0df6150bfbae4d7ff5c3edc6944e5abfe499c3a3 > > > Lukasz > > On 09/18/2014 02:21 PM, Andrew Hanushevsky wrote: >> Hi Lukasz, >> >> It's much more generous. The string allows for 40 bytes. So, it has to >> be truncated at 39 to allow for the null byte. >> >> Andy >> >> On Thu, 18 Sep 2014, Lukasz Janyst wrote: >> >>> 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 >>> > ######################################################################## 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