There's actually a trick to get rid of this problem: - go to PluginsPage.cpp, and comment out line 158: "ui.enableAll->setEnabled(false);" - restart RS. In the GUI you can now allow to *not check* for plugin hash. Check it and Quit. - now RS-nogui should load your plugin without checking the hash.
On 10/24/16 12:51, Cave wrote: > Dear Jeetu, > > it looks like the hash check for plugins. > I guess you have to allow/approve the new hash once in the gui. > > And then it should also pass the nogui-client check(which seems to miss the > functionality to ask for approval). > > ?Anyway have you received my mail which was sent directly to you(instead to > the mailing list?) . Afaik also Gio wrote to you. > > > Best regards > Cave > > > Am 24. Oktober 2016 12:30:36 MESZ, schrieb "jeetu.gol...@gmail.com" > <jeetu.gol...@gmail.com>: > > Hi, > > As stated in my last mail, when I run retroshare-nogui, it rejects my > plugin with the following message : > > RsPluginManager::loadList(): > Reference executable hash: 2bf0bcb5ace17e7dfad6681b051ff083cee1e531 > Accepted hash: 89dc2a00adae7a2b4e7bce01d287b6457b3d8eea > (WW) Executable hashes do not match. Executable hash has changed. > Discarding the list of accepted/rejected plugins. > Found plugin /home/jeetu/.retroshare/extensions6/libEmptyPlugin.so > <http://libEmptyPlugin.so> > Loading plugin... > Loading plugin /home/jeetu/.retroshare/extensions6/libEmptyPlugin.so > <http://libEmptyPlugin.so> > -> hashing. > -> hash = 89dc2a00adae7a2b4e7bce01d287b6457b3d8eea > -> hash rejected. Giving up plugin. > Examined a total of 1 plugins. > PluginManager: saving list. > Saving current executable hash: 537e4a87038d4b18df08f9ab00b0ef7069e82985 > > 89dc2a00adae7a2b4e7bce01d287b6457b3d8eea : REJECTED > > > Is there something I need to do in my plugin to get it to work within > retroshare-nogui? > > I need to test out this plugin with retroshare running in headless mode. > > Would appreciate if someone could help me here. > > Thank you. > > Regards, > Jeetu > > > > On Mon, Oct 17, 2016 at 7:20 PM, jeetu.gol...@gmail.com > <jeetu.gol...@gmail.com> wrote: > > Hi Cyril, > > *Warning - a really really long read below, am truly sorry for that* > > I suggest that you use your SSH tunnel manually: send clear > packets with some ID in them (packet > number, whatever you prefer) > and make sure that you get them all on the other end of the > tunnel, without major delay. Normally > this should work, > > > I have been trying to get my head around this issue (yet). I have been > taking a lot of trials, including what you suggested above. The > following are my findings : > > - I wrote a python client and server to stress test the tunnel in a > few ways and didn't find anything untoward. Of course, one thing I > would probably like to do at some point is repeat this along with a > hash of each packet being sent to verify integrity of data. Right now, > my tests were a little crude. > > - SSH X Forwarding through my tunnel works absolutely well if I am > using the Chromium browser remotely, for some strange reason. It > routinely fails with gnome-calculator, gedit, libreoffice. > > > - I have been in discussion with the Xorg team too to see if this had > any co-relation with a possible graphics and / or the X server and > they have been very helpful and we have tried out various tests to > check if this was related to GL, etc. Have tried different desktop > environments - Xfce, Enlightenment,etc. So far all of that has turned > up empty. > > > - I have collected Wireshark data to see what is happening on the > wire. These packets show that failure always occurs (so far) when : > > SSH Server sends a packet (Usually 118 bytes) -> this gets received by > the SSH client through the tunnel. > The SSH Client then sends a packet (Usually 166 bytes) -> this gets > received by the SSH server through the tunnel > > From here on there is a lot of traffic going on where the SSH client > keeps sending stuff to the RS tunnel port on the same machine, however > this data doesn't get received by the server. > > The SSH server also sends a few packets down the pipe, but these don't > get received by the client. > > *The above is (almost) consistently what I see when the desktop has > frozen and I stop recording Wireshark data.* > > Please feel free to ask for the wireshark data if need be. > > > > - What is most interesting, and this is what I realized just this > weekend, is that the following network configurations causes the X > forwarding over my RS tunnel to predictably and consistently either > succeed or fail : > > Scenario a) > > Machine 1 - Desktop with Debian Unstable; acting as X Server; SSH > client connects to this end of the RS tunnel > > Machine 2 - Laptop with Debian Testing; hosts the X clients, SSH > server is at this end. > > Result : If the program being run is Chromium or something simple like > xterm, sclock all is well, otherwise the X client will surely hang at > some point. > > Scenario b) > > Machine 1 (Host VM) - Desktop with Debian Unstable as host; > Retroshare's GUI and my tunnel plugin will run here; neither SSH > client nor server will run on this machine. > > Machine 2 (Guest VM) - Ubuntu / Debian Testing / Debian Unstable as > guest in a VM; SSH client will connect from here to the RS tunnel end > point on Machine 1. X server will be inside the VM. > > Machine 3 - Laptop with Debian Testing; hosts the X clients, SSH > server is at this end. > > Result: All applications will work absolutely perfectly without > hanging at all. > > Scenario c) > > Machine 1 (Guest VM) - Ubuntu / Debian Testing / Debian Unstable as > guest in a VM (OS is same as above); RS GUI and my tunnel plugin will > run inside the VM; SSH client connects to this end of the RS tunnel; > X server will be inside this VM. > > Machine 2 - Laptop with Debian Testing; hosts the X clients, SSH > server is at this end. > > Result : If the program being run is Chromium or something simple like > xterm, sclock all is well, otherwise the X client will surely hang at > some point. > > > Scenario b) had lead me to believe this could be an issue related to X > server, GL / GLX or the graphics drivers running on bare metal with > accelerated graphics, however Scenario c) behaving exactly like > Scenario a) puts a spanner in the works to that theory. > > I am unable to see the full picture here. If my tunnel is faulty then > why work in Scenario b)? Why do things fail in configuration such as > Scenario c) and a)? > > One co-relation "could" be that as soon as the X server is the same > as the machine with the RS GUI things fail. Yes I know this is a > stretch. > > The RS client is a Qt client and could it be that when the X server > for the remote X client is on the same machine there is a lock up > somewhere causing a freeze. I really don't know how / why this could > be....but am desperate. > > To rule out the above I wanted to run RS in non-gui mode with my > plugin coming up and then try out the tests. > > When running retroshare-nogui however my plugin doesn't come up. I see > the following on the console : > > Found plugin /home/jeetu/.retroshare/extensions6/libEmptyPlugin.so > <http://libEmptyPlugin.so> > Loading plugin... > Loading plugin /home/jeetu/.retroshare/extensions6/libEmptyPlugin.so > <http://libEmptyPlugin.so> > -> hashing. > -> hash = 89dc2a00adae7a2b4e7bce01d287b6457b3d8eea > -> hash rejected. Giving up plugin. > Examined a total of 1 plugins. > PluginManager: saving list. > Saving current executable hash: > 537e4a87038d4b18df08f9ab00b0ef7069e82985 > 89dc2a00adae7a2b4e7bce01d287b6457b3d8eea : REJECTED > > > I'm probably doing something wrong and I admit I haven't gone through > the manual in depth to figure out if I need to change my plugin in > some way to run with RS-nogui. Could you please let me know how I can > get the plugin to work in headless mode. > > Also I would really appreciate any thoughts on any of the above? I > have no clue where to turn from here. > > > Once again, truly apologise for the extremely long read above. Been at > it for months now and had a lot to report :) > > Thank you for your time. > > Regards, > Jeetu > > > On Sat, Jul 30, 2016 at 11:13 PM, jeetu.gol...@gmail.com > <jeetu.gol...@gmail.com> wrote: > > Hi Cyril, > > Thanks for the reply. > > Yes this sounds like a good strategy. I will try to go ahead and > build a > python based program that will stress tests this tunnel with > packets of > varying sizes in a bi-directional fashion. Hopefully I will be > able to > reproduce this error and we can come closer to understanding > where the > problem lies. > > Thank you for your help thus far and your offer to look at > libretroshare :) > > Regards, > Jeetu > > > On 28 Jul 2016 13:45, "Cyril Soler" > <cso...@users.sourceforge.net> wrote: > > > I suggest that you use your SSH tunnel manually: send clear > packets with > some ID in them (packet > number, whatever you prefer) > and make sure that you get them all on the other end of the > tunnel, > without major delay. Normally > this should work, > but if it does not, and if you're able to create a working > prototype that > shows the bug, I can take > a look at libretroshare to find the problem for you. > > Otherwise, because problems occur mainly when X is used, it > might be that > X expects some particular > params of the SSH connection (which you get probably when > doing "ssh -X or > ssh -Y" but not using > your own tunnel system). It's probably worth looking into > this. > > On 28/07/2016 10:04, jeetu.gol...@gmail.com wrote: > > Hello Cyril, > > To report back, I tried out the latest RS master codebase > from github > with my plugin as per your suggestion. Unfortunately the > issue is > still the same. > > While I said earlier most of the times (say 90%) the > failure occurs > when there are many small bytes of approx 172 bytes > following by > something like 7556 bytes or some such number (usually > above 3000 > bytes). > > However, there are instances when the freeze-up occurs > with a > relatively short number of bytes....maybe as low as 60 or > 70 bytes. So > when I tried running gedit, during startup itself, the > ssh client end > froze. While most of the time I will get the main > interface window to > the X client and it freezes somewhere along the line, > there are also > moments such as these when it just hands early on itself. > > I also tried to log in to just a SSH console session via > the RS tunnel > plugin and did a "du" on my root directory just to > generate a lot of > text traffic in the form of file names scrolling as du > goes through my > directory. This worked fine and didn't baulk. However > this situation > is a little different from a SSH X forward since here > there is only > unidrectional traffic (from ssh server to ssh client). > Whereas with a > SSH forward there is a lot of bi-directional traffic. > Dunno if that > helps, just trying to get as many clues as possible, > > I am also not using any message queue or buffer within my > own code, so > as information comes in from ssh client or server I push > it down the > pipe via sendItem. Not sure if somehow the information > coming in from > these ends is going out of sync and causing a freeze-up. > > Your suggestion of this being related to the bug you had > closed > wherein the SSL stream would lock up on occasion waiting > for another > packed, definitely seemed to fit the profile of the above > behaviour. > > Is there some other way we can capture additional data > from within RS > that would help you confirm or rule out if this problem > still persists > or that would help us concretely ascertain if my code is > messing up > things or not? > > Since the SSH traffic is all encrypted, I am unable to > verify if the > data itself gets corrupted somewhere along the line. > Though if that > were to happen the SSH client / server should cut off > connection with > a bad MAC / bad HMAC / Bad Packet Length or some such > message if I > understand it correctly. Though to rule this out I am > considering > building a python client and server that will try to push > through > controlled data to and fro this pipe, and try to > replicate this > freeze....hopefully something there will then be able to > clarify if > data corruption is occurring and is the problem. > > As you can say I am fast approaching a state where I am > desperate for > ideas ;).....any help or suggestion would help my sanity > to a great > deal :) > > Thank you so much for your time and help :) > > Bye for now. > > > > On Mon, Jul 25, 2016 at 11:46 PM, jeetu.gol...@gmail.com > <jeetu.gol...@gmail.com> wrote: > > Hi Cyril, > > Thank you so much for taking the time to reply :) > > This does not seem like a crazy amount of traffic > either. I'm not sure > which >version of RS you're > > I've been working with RS v0.6.0 > > using, but a few weeks ago, I fixed a bug that > would cause SSL packets > to >hang in the pipeline until > a new packet arrives. This could be the reason as > your X server is > maybe >waiting for the stream to > reach a given point before continuing. > > Oh wow :) so there is hope :).....I shall download > the latest master > of RS and try again with that....will keep you posted > on the progress > I make :) > > As I understand, you developed a RS service that > streams SSL > connection >binary items through RS > friend connections? > You're most probably using RsItem objects then. > Their size is limited > to >262144 bytes. Any packet > larger gets dropped. > > Yes I have been using RsItem objects...and this > explains so much > :).....is there some other class object I should use > wherein this > limit is not there / or more relaxed? Though at this > moment this isn't > a problem for me since I chunk the data and then send > it. However it > would be good to know what my options here are :) > > > This definitely has given me quite a bit of clarity > and hope.....I > shall try with the latest code and well fingers > crossed :)....will > report back asap. > > Thank you. > > Bye for now > > > On Mon, Jul 25, 2016 at 7:51 PM, Cyril Soler > <cso...@users.sourceforge.net> wrote: > > Hi! > > Congrats for your project! > It's nice to see that you managed to develop a > plugin! See below some > possible answers to your problem: > > On 25/07/2016 08:09, jeetu.gol...@gmail.com wrote: > > Hi everyone, > > First, let me thank all of you for giving us > Retroshare. Works > beautifully :) Thanks. > > I am one of the developers of the open source > project eBrainPool > (http://ebrain.in) and for this project I > have been toying with a RS > plugin that will allow me to tunnel SSH > traffic between RS users. The > idea is to SSH forward X clients tunneled via > RS. > > I have extended the EmtyPluginRS and taken > inspiration from the VOIP > plugin to extend Retroshare 0.6.0. > > I have managed to successfully create a > tunnel between two end points > - it's a very dirty hack - but I can > essentially do a ssh login and > work within a console session without any > problem. SSH forwarding of > simpler X clients such as xclock, xcalc,etc > work without any issues > either. > > With more sophisticated X clients such as > gnome-calculator, gedit,etc > somewhere along as I use it, my ssh client > with the entire X > environment freezes up. This usually happens > when huge amounts of > data > need to be sent together by the SSH client. > For e.g. if a button is > pressed in gnome-calculator then at times it > is liable to freeze up. > > On further investigation I have realized that > the button press > translates to a huge number of messages > coming in from the SSH client > of 170 bytes or so and a final message of > approx 3556 bytes or so > before things freeze up. I then have to kill > my ssh client in console > to regain access to my X environment. > > This does not seem like a crazy amount of traffic > either. I'm not sure > which version of RS you're > using, but a few weeks ago, I fixed a bug that > would cause SSL packets > to hang in the pipeline until > a new packet arrives. This could be the reason as > your X server is > maybe waiting for the stream to > reach a given point before continuing. > > I have tried both approaches in my plugin - > with a separate thread to > accept input to / from the client, and also > without a separate > thread. > The issue and point of failure is the same. > > Granted I definitely do not understand the RS > architecture well > enough > and I fear that it is this lack of > understanding that is causing this > problem. > > I am not using any sort of message queue and > as data is being > received > from the client or server I am simply pushing > it down the pipe (via > sendItem). > > I have noticed that extremely large blocks of > data (say 100k or such) > simply disappear and are not received at the > other end. Therefore I > chunk data from ssh server or client into > blocks of 16384. I have > tried different block sizes but it doesn't > help the bug I have above. > > As I understand, you developed a RS service that > streams SSL > connection binary items through RS > friend connections? > You're most probably using RsItem objects then. > Their size is limited > to 262144 bytes. Any packet > larger gets dropped. > I don't know about the released version, but the > current trunk > displays some information about that > when it happens. > > > > > > > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org <http://SlashDot.org>! > http://sdm.link/slashdot > > ------------------------------------------------------------------------------------------------------------------------------------------------------ > > Retroshare-devel mailing list > Retroshare-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/retroshare-devel > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Retroshare-devel mailing list Retroshare-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/retroshare-devel