#1  
Old 9th September 2016, 05:21 AM
obeltrami obeltrami is offline
Member
 
Join Date: Feb 2011
Posts: 35
Default RFS Plugin 64-bit

I have been having problems with the 4.10 version of the RFS Plugin when compiled in 64-bit (server and client). After a few hours of debugging I identified the source as the one mentioned in a post of last year by Thorsten Engler (http://www.nexusdb.com/forums/showth...t=18945&page=2).

Quote:
7th February 2015, 01:17 AM - Thorsten Engler [NDA]
TpsnxActiveRFSList.OpenStream seems to return aHandle by casting an object pointer (64bit) to a RFSFileId (32bit). That handle is passed to the client, and passed from the client to the server again when the client wants to access the stream. As normal objects will all be allocated from above 4GB in the 64bit server, this will truncate the pointer value and result in crashes. TpsnxActiveRFSItem needs to derive from TnxLowObject (always allocated below4GB) instead of TnxObject.
As that post was from February 2015, but the RFS code from May 2016 still has the issue, I was wondering if there were any patched source files for the RFS plugin that address this bug ?

Very best regards,

Olivier Beltrami
  #2  
Old 9th September 2016, 10:56 AM
Eivind Bakkestuen [NDD]
 
Posts: n/a
Default Re: RFS Plugin 64-bit

> > 7th February 2015, 01:17 AM - Thorsten Engler [NDA]
> > TpsnxActiveRFSList.OpenStream seems to return aHandle by casting an
> > object pointer (64bit) to a RFSFileId (32bit). That handle is
> > passed to the client, and passed from the client to the server
> > again when the client wants to access the stream. As normal objects
> > will all be allocated from above 4GB in the 64bit server, this will
> > truncate the pointer value and result in crashes.
> > TpsnxActiveRFSItem needs to derive from TnxLowObject (always
> > allocated below4GB) instead of TnxObject.


I've updated the sources in our repository as per Thorsten's comment.
Just make the change in your local source and verify that it fixes the
issue.

--
Eivind Bakkestuen [NDD]
  #3  
Old 9th September 2016, 03:29 PM
obeltrami obeltrami is offline
Member
 
Join Date: Feb 2011
Posts: 35
Default

How do we access this repository ?

Just making the change

Code:
TpsnxActiveRFSItem = class(TnxLowObject)
does not fix the issue. Should I also change:


Code:
TpsnxActiveRFSList = class(TnxObject)
Very best regards,

Olivier
  #4  
Old 9th September 2016, 04:48 PM
Eivind Bakkestuen [NDD]
 
Posts: n/a
Default Re: RFS Plugin 64-bit

> does not fix the issue. Should I also change:
> TpsnxActiveRFSList = class(TnxObject)


Try it and let me know. From Thorsten's message, any class that has
it's address passed "across the wire" needs to derive from TnxLowObject.

--
Eivind Bakkestuen [NDD]
  #5  
Old 9th September 2016, 07:36 PM
obeltrami obeltrami is offline
Member
 
Join Date: Feb 2011
Posts: 35
Default

RFS Plugin now seems to work in 64-bit with the 2 following changes to class declarations in psRFSPlugin.pas:

Code:
TpsnxActiveRFSItem = class(TnxLowObject)
...
...
...
TpsnxActiveRFSList = class(TnxLowObject)
Olivier
  #6  
Old 10th September 2016, 12:12 AM
Eivind Bakkestuen [NDD]
 
Posts: n/a
Default Re: RFS Plugin 64-bit

> TnxLowObject

Thanks, the changes will be in the next update.

--
Eivind Bakkestuen [NDD]


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
RFS Plugin or FTP... Yuri Maggi nexusdb.public.support 12 30th March 2011 11:34 AM
RFS Plugin Luigi Amorini nexusdb.public.support.thirdparty 3 7th July 2010 09:47 PM
messaging plugin - plugin engine? Germain C. nexusdb.public.support 2 21st October 2008 11:33 AM
RFS PlugIn Arnd Iffland nexusdb.public.support 4 18th May 2004 06:00 PM
2nd: RFS-Plugin and BCB 6 Holger Franke Support Newsgroups 2 7th May 2004 07:11 AM


All times are GMT +11. The time now is 03:57 PM.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.