Hi Michal,

There were two reasons that we adopted the “-n” convention. One was so that we could supports more than one version of a plugin at the same time (i.e. filenames would not conflict and could exist in parallel); the plugin manager automatically loads a compatible version, and b) to make it harder for people to link against the plugin (strictly forbidden by EPEL). As for the latter, I wanted to actual create non-“so” files for plugins since the dlsym doesn’t care what the file name is (e.g. <libname>.pi) but apparently cmake couldn’t handle that kind of thing, sigh. So, for consistency’s sake with server-side plugins it would probably make sense to add the “-n” suffix. Anyway, give it a try and see what happened with the “pinloader”.

Andy

From: simonmichal
Sent: Tuesday, March 28, 2017 6:39 AM
To: xrootd/xrootd
Cc: Andrew Hanushevsky ; Comment
Subject: Re: [xrootd/xrootd] XrdApp: Add XrdClProxyPlugin implementation (#487)

Hi Andy,

The version check is done properly for the XrdClProxyPlugin:

When the plugin version doesn't match it is rejected:

[simonm@idefix XrdCl]$ strings -a $XRD_PLUGIN | grep "@V"
@V:XrdClGetPlugIn v3.9.9
[simonm@idefix XrdCl]$ strings -a libXrdCl.so | grep "@V"
@V:client v4.9.9
[simonm@idefix XrdCl]$ ./xrdcp -f -d 1 root://esvm000//tmp/file1.dat /tmp/dump
[2017-03-28 15:14:19.234129 +0200][Debug ][Utility ] Unable to process user config file: [ERROR] OS Error: No such file or directory
[2017-03-28 15:14:19.234302 +0200][Info ][Utility ] Env: Importing from shell XRD_PLUGIN=/home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so as PlugIn
[2017-03-28 15:14:19.234335 +0200][Debug ][PlugInMgr ] Initializing plug-in manager...
[2017-03-28 15:14:19.234387 +0200][Debug ][PlugInMgr ] Loading default plug-in from /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so...
[2017-03-28 15:14:19.234611 +0200][Debug ][PlugInMgr ] Error while loading /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so: Unable to load client plugin /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so
[2017-03-28 15:14:19.234625 +0200][Debug ][PlugInMgr ] Failed to load default plug-in from /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so
[3.015kB/3.015kB][100%][==================================================][3.015kB/s]

If the plugin version does match it is loaded:

[simonm@idefix XrdCl]$ strings -a $XRD_PLUGIN | grep "@V"
@V:XrdClGetPlugIn v4.9.9
[simonm@idefix XrdCl]$ strings -a libXrdCl.so | grep "@V"
@V:client v4.9.9
[simonm@idefix XrdCl]$ ./xrdcp -f -d 1 root://esvm000//tmp/file1.dat /tmp/dump
[2017-03-28 15:15:05.885847 +0200][Debug ][Utility ] Unable to process user config file: [ERROR] OS Error: No such file or directory
[2017-03-28 15:15:05.885951 +0200][Info ][Utility ] Env: Importing from shell XRD_PLUGIN=/home/simonm/test/xrootd-4.9.9/build/src/libXrdClProxyPlugin.so as PlugIn
[2017-03-28 15:15:05.885971 +0200][Debug ][PlugInMgr ] Initializing plug-in manager...
[2017-03-28 15:15:05.885992 +0200][Debug ][PlugInMgr ] Loading default plug-in from /home/simonm/test/xrootd-4.9.9/build/src/libXrdClProxyPlugin.so...
[3.015kB/3.015kB][100%][==================================================][3.015kB/s]

To be honest the XrdClProxyPlugin is the first plugin that will be included with xrootd core, so there is no convention yet. Hence, it's up to you whether we should follow the "-4" naming convention, or not ;-)

Cheers,
Michal


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/xrootd/xrootd","title":"xrootd/xrootd","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/xrootd/xrootd"}},"updates":{"snippets":[{"icon":"PERSON","message":"@abh3 in #487: Hi Michal,\n\nThere were two reasons that we adopted the “-n” convention. One was so that we could supports more than one version of a plugin at the same time (i.e. filenames would not conflict and could exist in parallel); the plugin manager automatically loads a compatible version, and b) to make it harder for people to link against the plugin (strictly forbidden by EPEL). As for the latter, I wanted to actual create non-“so” files for plugins since the dlsym doesn’t care what the file name is (e.g. \u003clibname\u003e.pi) but apparently cmake couldn’t handle that kind of thing, sigh. So, for consistency’s sake with server-side plugins it would probably make sense to add the “-n” suffix. Anyway, give it a try and see what happened with the “pinloader”.\n\nAndy \n\nFrom: simonmichal \nSent: Tuesday, March 28, 2017 6:39 AM\nTo: xrootd/xrootd \nCc: Andrew Hanushevsky ; Comment \nSubject: Re: [xrootd/xrootd] XrdApp: Add XrdClProxyPlugin implementation (#487)\n\nHi Andy,\n\nThe version check is done properly for the XrdClProxyPlugin:\n\nWhen the plugin version doesn't match it is rejected:\n\n [simonm@idefix XrdCl]$ strings -a $XRD_PLUGIN | grep \"@V\"\n @V:XrdClGetPlugIn v3.9.9\n [simonm@idefix XrdCl]$ strings -a libXrdCl.so | grep \"@V\"\n @V:client v4.9.9\n [simonm@idefix XrdCl]$ ./xrdcp -f -d 1 root://esvm000//tmp/file1.dat /tmp/dump\n [2017-03-28 15:14:19.234129 +0200][Debug ][Utility ] Unable to process user config file: [ERROR] OS Error: No such file or directory\n [2017-03-28 15:14:19.234302 +0200][Info ][Utility ] Env: Importing from shell XRD_PLUGIN=/home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so as PlugIn\n [2017-03-28 15:14:19.234335 +0200][Debug ][PlugInMgr ] Initializing plug-in manager...\n [2017-03-28 15:14:19.234387 +0200][Debug ][PlugInMgr ] Loading default plug-in from /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so...\n [2017-03-28 15:14:19.234611 +0200][Debug ][PlugInMgr ] Error while loading /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so: Unable to load client plugin /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so\n [2017-03-28 15:14:19.234625 +0200][Debug ][PlugInMgr ] Failed to load default plug-in from /home/simonm/test/xrootd-3.9.9/build/src/libXrdClProxyPlugin.so\n [3.015kB/3.015kB][100%][==================================================][3.015kB/s]\n\nIf the plugin version does match it is loaded:\n\n [simonm@idefix XrdCl]$ strings -a $XRD_PLUGIN | grep \"@V\"\n @V:XrdClGetPlugIn v4.9.9\n [simonm@idefix XrdCl]$ strings -a libXrdCl.so | grep \"@V\"\n @V:client v4.9.9\n [simonm@idefix XrdCl]$ ./xrdcp -f -d 1 root://esvm000//tmp/file1.dat /tmp/dump\n [2017-03-28 15:15:05.885847 +0200][Debug ][Utility ] Unable to process user config file: [ERROR] OS Error: No such file or directory\n [2017-03-28 15:15:05.885951 +0200][Info ][Utility ] Env: Importing from shell XRD_PLUGIN=/home/simonm/test/xrootd-4.9.9/build/src/libXrdClProxyPlugin.so as PlugIn\n [2017-03-28 15:15:05.885971 +0200][Debug ][PlugInMgr ] Initializing plug-in manager...\n [2017-03-28 15:15:05.885992 +0200][Debug ][PlugInMgr ] Loading default plug-in from /home/simonm/test/xrootd-4.9.9/build/src/libXrdClProxyPlugin.so...\n [3.015kB/3.015kB][100%][==================================================][3.015kB/s]\n\nTo be honest the XrdClProxyPlugin is the first plugin that will be included with xrootd core, so there is no convention yet. Hence, it's up to you whether we should follow the \"-4\" naming convention, or not ;-)\n\nCheers,\nMichal\n\n—\nYou are receiving this because you commented.\nReply to this email directly, view it on GitHub, or mute the thread.\n"}],"action":{"name":"View Pull Request","url":"https://github.com/xrootd/xrootd/pull/487#issuecomment-289888203"}}}

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