Oops, forgot to reply to all...

-------- Original Message --------
Subject: Re: [Virtuoso-users] VAD_PACK file_to_string problem with + in path
List-Post: virtuoso-users@lists.sourceforge.net
Date:   Tue, 08 Jul 2008 20:59:25 +0300
From:   Will Daniels <m...@willdaniels.co.uk>
To:     Hugh Williams <hwilli...@openlinksw.com>
References: <4870af34.5040...@willdaniels.co.uk> <0805bf07-2319-4109-b959-befffa3b1...@openlinksw.com>



Hi Hugh,

This is using GNU/Linux, specifically, Ubuntu Hardy (8.04) 64-bit.

I remembered after I sent the message that "+" decodes to " " only in a few specific (and old) cases of URI encoding, which would not seem to apply here even if there is any form of encoding/decoding going on at all anyway (if there is then I don't see it in the code, albeit with only a cursory glance). So I am at a loss to explain the problem logically, other than as a general "bug", and I still don't know where exactly the problem occurs. I can only tell you that this happens consistently if I try to build Virtuoso 5.0.6 in a path containing a plus symbol. Remove the "+", and all works fine.

I think I will take another look at the problem this evening, but to be perfectly honest I don't have a lot of energy for it right now and am tempted to simply avoid the issue for the time being. As such, any help you can offer would be very much appreciated!

Thanks,
Will

Hugh Williams wrote:
Hi Will,

What OS are you compiling on ?

Best Regards
Hugh Williams
Professional Services
OpenLink Software

On 6 Jul 2008, at 12:40, Will Daniels wrote:

Hello!

I've encountered a problem when building Virtuoso in a path that has a
plus (+) symbol. Where the sticker URI is passed into VAD_PACK as
relative, it all seems to work fine:

VAD Sticker vad_dav.xml creation...

VAD Sticker vad_fs.xml creation...
PASSED: DB.DBA.VAD_PACK('vad_fs.xml', '.', 'bpel_filesystem.vad')
PASSED: commit work
PASSED: checkpoint
PASSED: DB.DBA.VAD_PACK('vad_dav.xml', '.', 'bpel_dav.vad')
PASSED: commit work
PASSED: checkpoint

But when an absolute path is used containing a plus symbol:

***FAILED: execution of
DB.DBA.VAD_PACK('/build/buildd/virtuoso-opensource-5.0.6+wgd1~ppa2/binsrc/tutorial/make_tutorial_fs_vad.xml',
'.', 'tutorial_filesystem.vad')
------------ SQL ERROR -------------

*** Error 42000: [Virtuoso Driver][Virtuoso Server]FA004: Access to
/build/buildd/virtuoso-opensource-5.0.6
wgd1~ppa2/binsrc/tutorial/make_tutorial_fs_vad.xml is denied due to
access control in ini file
in
file_to_string:(BIF),
DB.DBA.VAD_PACK,
<Top Level>
at line 0 of Top-Level:
DB.DBA.VAD_PACK('/build/buildd/virtuoso-opensource-5.0.6
wgd1~ppa2/binsrc/tutorial/make_tutorial_fs_vad.xml', '.',
'tutorial_filesystem.vad')
------------------------------------

Note that the plus sign between 5.0.6 and wgd1 in the path has become as
space in the FA004 error message, which is taken directly from the same
fname variable that is used in the call to is_allowed.

I have tried digging through the code to find out where exactly the
problem lies, but I've never looked at this code base before and my head
is starting to spin now, so I thought I'd post the problem here and hope
that some nice person gives me a few pointers on this.

I guess it must have something to do with the path being treated as a
URI, so the + is interpreted as a space, as per the spec. Anyway, this
is presumably what causes is_allowed to return false in
bif_file_to_string (since it all builds correctly without a plus sign in
the path), and that would seem to make enough sense given that it's
actually the wrong path, only I can't quite work out where the + is
getting converted to a space.

Can anybody help me out here?

Thanks,
Will

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


Reply via email to