You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@etch.apache.org by Andy Bean <an...@gmail.com> on 2014/03/20 14:59:39 UTC

C++ Binding - sessionNotify DOWN

Hi there,
I'm just starting to use etch. I'm currently playing with the C++
HelloWorld example. The version from the examples works as expected. When I
change the code in the client to send say_hello forever in a loop it will
stop after a while. Sometimes after 50 calls, sometimes after a few
thousand calls. I'm logging data in _sessionNotify and get a
sessionNotifyEvent of DOWN and UP alternating when communicaion stops. Any
hints on what I'm missing?

Greetings,
  Andy

Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
The same crash happened again in trunk:

-        vf    0x00bf98e0    EtchValueFactory *
-        EtchObject    {mTypes={...} }    EtchObject
+        __vfptr    0xdddddddd    *
-        mTypes    {mBoundary={...} mSize=3722304989 mComparator={...}
...}    capu::List<EtchObjectType const
*,capu::Allocator<capu::GenericListNode<EtchObjectType const *>
>,capu::Comparator>
+        __vfptr    0xdddddddd    *
+        mBoundary    {mData=0xdddddddd mNext=0xdddddddd mPrev=0xdddddddd
}    capu::GenericListNode<EtchObjectType const *>
        mSize    3722304989    unsigned int
        mComparator    {...}    const capu::Comparator
        mAllocator    {...}
capu::Allocator<capu::GenericListNode<EtchObjectType const *> >


Vtable pointers seem to be invalid for EtchObject of EtchValueFactory.




On Fri, Apr 4, 2014 at 1:45 PM, Andy Bean <an...@gmail.com> wrote:

> I will let it run for some time now with the current trunk version.
>
>
> On Fri, Apr 4, 2014 at 12:55 PM, Martin Veith <Ma...@bmw-carit.de>wrote:
>
>>  Can you reproduce this with the newest trunk version?
>>
>>
>>
>> *From:* Andy Bean [mailto:andy.bean80@gmail.com]
>> *Sent:* Freitag, 4. April 2014 11:57
>>
>> *To:* user@etch.apache.org
>> *Subject:* Re: C++ Binding - sessionNotify DOWN
>>
>>
>>
>> Found another problem. This time in the server part. I get an access
>> violation after running my code without the log messages for like half an
>> hour.
>>
>> --------  callstack --------
>>
>>
>> >    helloworld_server.exe!EtchStructValue::EtchStructValue(EtchType *
>> type, EtchValueFactory * vf)
>> helloworld_server.exe!EtchMessage::EtchMessage(EtchType * type,
>> EtchValueFactory * vf)
>> helloworld_server.exe!EtchMessage::createReplyMessage(capu::SmartPointer<EtchMessage>
>> & message)
>> helloworld_server.exe!Run_mt_org_apache_etch_examples_helloworld_HelloWorld_say_hello::run(EtchStubBase<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>
>> * _ref, EtchDeliveryService * _svc,
>> org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer * _obj,
>> capu::SmartPointer<EtchWho> _sender, capu::SmartPointer<EtchMessage> _msg)
>>
>> helloworld_server.exe!EtchStubPoolRunnable<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>::run()
>> helloworld_server.exe!EtchFreePoolRunnable::run()
>> helloworld_server.exe!capu::os::Thread::run(void * arg)
>> kernel32.dll!74d1336a()
>>
>> --------  code location --------
>>
>>
>> EtchStructValue::EtchStructValue(EtchType* type, EtchValueFactory* vf)
>>  : mType(type), mLevel(vf->getLevel()), mTable(DEFAULT_SIZE) {  <- ACCESS
>> VIOLATION
>>   addObjectType(TYPE());
>> }
>>
>> --------  memory contents for value factory --------
>>
>> -        vf    0x006aa5a8    EtchValueFactory *
>> -        EtchObject    {mTypes={...} }    EtchObject
>> -        __vfptr    0x0067a138    *
>>         [0]    0x00000000    *
>>         [1]    0x003aef14 const EtchHashTable<class EtchString,class
>> EtchObject *,class EtchComparator<class EtchString>,class
>> EtchObjectHash>::`vftable'    *
>>         [2]    0x003ad5c8 const capu::List<class EtchObjectType const
>> *,class capu::Allocator<class capu::GenericListNode<class EtchObjectType
>> const *> >,class capu::Comparator>::`vftable'    *
>>         [3]    0xcdcdcdcd    *
>>         [4]    0x0066ad00    *
>>         [5]    0x00677ac8    *
>> -        mTypes    {mBoundary={...} mSize=7036160 mComparator={...}
>> ...}    capu::List<EtchObjectType const
>> *,capu::Allocator<capu::GenericListNode<EtchObjectType const *>
>> >,capu::Comparator>
>> -        __vfptr    0x003aef14 const EtchHashTable<class EtchString,class
>> EtchObject *,class EtchComparator<class EtchString>,class
>> EtchObjectHash>::`vftable'    *
>>         [0]    0x003464e0 EtchHashTable<EtchString,EtchObject
>> *,EtchComparator<EtchString>,EtchObjectHash>::`scalar deleting
>> destructor'(unsigned int)    *
>> -        mBoundary    {mData=0x003ad5c8 mNext=0xcdcdcdcd mPrev=0x006b0468
>> }    capu::GenericListNode<EtchObjectType const *>
>> +        mData    0x003ad5c8 const capu::List<class EtchObjectType const
>> *,class capu::Allocator<class capu::GenericListNode<class EtchObjectType
>> const *> >,class capu::Comparator>::`vftable' {mTypeId=3172720
>> mComponentType=0x003b36b4 mComponentTypeTrait=3285440 }    const
>> EtchObjectType *
>> +        mNext    0xcdcdcdcd {mData=??? mNext=??? mPrev=??? }
>> capu::GenericListNode<EtchObjectType const *> *
>> +        mPrev    0x006b0468 {mData=0x003d1360 mNext=0x006b5d00
>> mPrev=0x006aa5b4 }    capu::GenericListNode<EtchObjectType const *> *
>>         mSize    7036160    unsigned int
>>         mComparator    {...}    const capu::Comparator
>>         mAllocator    {...}
>> capu::Allocator<capu::GenericListNode<EtchObjectType const *> >
>>
>>
>>
>>   Seems like the vtable of the value factory is invalid and causing the
>> crash.
>>
>> Greetings,
>>
>>   Andy
>>
>>
>>
>>
>>
>> On Thu, Apr 3, 2014 at 1:43 PM, Andy Bean <an...@gmail.com> wrote:
>>
>> Hi Martin,
>>
>> I can't reproduce the issue when setting logging to debug. Even when
>> having my printf() calls inside the loop will stop the errors to appear
>> now. When I just comment out all printf() statements except for the one
>> handling the exception I get the following like every 10 to 20 seconds:
>>
>> Got sessionNotifyEvent UP
>> say_hello FAILED: exception=Peer did not answer in time to call say_hello
>> Got sessionNotifyEvent DOWN
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
>> Got sessionNotifyEvent UP
>> say_hello FAILED: exception=Unable to call say_hello as connection has
>> been closed by peer.
>>
>> Probably I'm feeding messages faster than the system can handle them and
>> I will get disconnected by the server. I'm not sure if this is the expected
>> behavior or not.
>>
>> BTW: I'm also working on Windows 7!
>>
>>
>>
>> Greetings,
>>
>>   Andy
>>
>>
>>
>> On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>
>> wrote:
>>
>> Hi Andy,
>>
>> I took your code and it is working on my Windows 7 machine as expected.
>> I'm now at line
>> 529003 say_hello OK: result=Hi From C++ Server!
>>
>> On which platform are you running on? Could you set the loglevel of the
>> Runtime to "Debug" and paste the trace?
>>
>> Thanks,
>> Martin
>>
>>
>>
>> On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
>> >
>> > Thanks! Your commit fixed this issue. Now I'm getting another one.
>> > I've just added a loop around the call to say_hello in the client:
>> >
>> >   int i = 0;
>> >   while(true){
>> >       printf("%d ", ++i);
>> >
>> >       HelloWorld::userPtr myUser = new HelloWorld::user(new
>> > EtchInt32(1),new EtchString("World"));
>> >       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
>> > remote->say_hello(myUser);
>> >       if(say_helloResult->hasException()) {
>> >         capu::SmartPointer<EtchException> exception = say_helloResult-
>> > >getException();
>> >         printf("say_hello FAILED: exception=%s \n",
>> > exception->getErrorMessage().c_str());
>> >       }
>> >       if(say_helloResult->hasResult()) {
>> >         capu::SmartPointer<EtchString> result =
>> say_helloResult->getResult();
>> >         printf("say_hello OK: result=%s\n", result->c_str());
>> >       }
>> >   }
>> >
>> >
>> > When running this code I get different errors:
>> >
>> >
>> > [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
>> >
>> > say_hello FAILED: exception=Unable to call say_hello as connection has
>> > been closed by peer
>> >
>> >
>> > This will happen for about ten calls to say_hello and then it will
>> > continue normally for some hundred or thousand calls to say_hello.
>> > Then the same happens again.
>> >
>> >
>> >
>> >
>> > On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
>> > <Ma...@bmw-carit.de>
>> > wrote:
>> >
>> >
>> >       Please checkout the newest commit on trunk, the issue should now
>> be
>> > fixed.
>> >
>> >
>> >
>> >       Thanks for reporting!
>> >
>> >
>> >
>> >       Cheers,
>> >
>> >       Martin
>> >
>> >
>> >
>> >       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
>> >       Sent: Dienstag, 1. April 2014 13:15
>> >       To: user@etch.apache.org
>> >       Subject: RE: C++ Binding - sessionNotify DOWN
>> >
>> >
>> >
>> >       Hi Andy,
>> >
>> >
>> >
>> >       > Is there a problem with the current trunk version?
>> >
>> >       I will check and let you know asap.
>> >
>> >
>> >
>> >       The release candidate for 1.4 will become available within  this
>> week.
>> >
>> >
>> >
>> >       Cheers,
>> >
>> >       Martin
>> >
>> >
>> >
>> >       From: Andy Bean [mailto:andy.bean80@gmail.com]
>> >       Sent: Dienstag, 1. April 2014 12:59
>> >       To: user@etch.apache.org
>> >       Subject: Re: C++ Binding - sessionNotify DOWN
>> >
>> >
>> >
>> >
>> >
>> >       Today I was gonna continue working with etch. I switched to the
>> > current trunk version because there is no 1.4 release yet. When
>> > running the
>> > C++ version of the helloworld example I get the following errors on
>>
>> > C++ the
>>
>> > client:
>> >
>> >       Got sessionNotifyEvent UP
>> >       [  Warn   ] etch.runtime.messagizer.validator | String object
>> > validation failed
>> >       say_hello FAILED: exception=say_hello not implemented
>> >       Got sessionNotifyEvent DOWN
>> >
>> >       Is there a problem with the current trunk version?
>> >
>>
>>
>>
>>
>>
>>
>
>

Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
I will let it run for some time now with the current trunk version.


On Fri, Apr 4, 2014 at 12:55 PM, Martin Veith <Ma...@bmw-carit.de>wrote:

>  Can you reproduce this with the newest trunk version?
>
>
>
> *From:* Andy Bean [mailto:andy.bean80@gmail.com]
> *Sent:* Freitag, 4. April 2014 11:57
>
> *To:* user@etch.apache.org
> *Subject:* Re: C++ Binding - sessionNotify DOWN
>
>
>
> Found another problem. This time in the server part. I get an access
> violation after running my code without the log messages for like half an
> hour.
>
> --------  callstack --------
>
>
> >    helloworld_server.exe!EtchStructValue::EtchStructValue(EtchType *
> type, EtchValueFactory * vf)
> helloworld_server.exe!EtchMessage::EtchMessage(EtchType * type,
> EtchValueFactory * vf)
> helloworld_server.exe!EtchMessage::createReplyMessage(capu::SmartPointer<EtchMessage>
> & message)
> helloworld_server.exe!Run_mt_org_apache_etch_examples_helloworld_HelloWorld_say_hello::run(EtchStubBase<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>
> * _ref, EtchDeliveryService * _svc,
> org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer * _obj,
> capu::SmartPointer<EtchWho> _sender, capu::SmartPointer<EtchMessage> _msg)
>
> helloworld_server.exe!EtchStubPoolRunnable<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>::run()
> helloworld_server.exe!EtchFreePoolRunnable::run()
> helloworld_server.exe!capu::os::Thread::run(void * arg)
> kernel32.dll!74d1336a()
>
> --------  code location --------
>
>
> EtchStructValue::EtchStructValue(EtchType* type, EtchValueFactory* vf)
>  : mType(type), mLevel(vf->getLevel()), mTable(DEFAULT_SIZE) {  <- ACCESS
> VIOLATION
>   addObjectType(TYPE());
> }
>
> --------  memory contents for value factory --------
>
> -        vf    0x006aa5a8    EtchValueFactory *
> -        EtchObject    {mTypes={...} }    EtchObject
> -        __vfptr    0x0067a138    *
>         [0]    0x00000000    *
>         [1]    0x003aef14 const EtchHashTable<class EtchString,class
> EtchObject *,class EtchComparator<class EtchString>,class
> EtchObjectHash>::`vftable'    *
>         [2]    0x003ad5c8 const capu::List<class EtchObjectType const
> *,class capu::Allocator<class capu::GenericListNode<class EtchObjectType
> const *> >,class capu::Comparator>::`vftable'    *
>         [3]    0xcdcdcdcd    *
>         [4]    0x0066ad00    *
>         [5]    0x00677ac8    *
> -        mTypes    {mBoundary={...} mSize=7036160 mComparator={...}
> ...}    capu::List<EtchObjectType const
> *,capu::Allocator<capu::GenericListNode<EtchObjectType const *>
> >,capu::Comparator>
> -        __vfptr    0x003aef14 const EtchHashTable<class EtchString,class
> EtchObject *,class EtchComparator<class EtchString>,class
> EtchObjectHash>::`vftable'    *
>         [0]    0x003464e0 EtchHashTable<EtchString,EtchObject
> *,EtchComparator<EtchString>,EtchObjectHash>::`scalar deleting
> destructor'(unsigned int)    *
> -        mBoundary    {mData=0x003ad5c8 mNext=0xcdcdcdcd mPrev=0x006b0468
> }    capu::GenericListNode<EtchObjectType const *>
> +        mData    0x003ad5c8 const capu::List<class EtchObjectType const
> *,class capu::Allocator<class capu::GenericListNode<class EtchObjectType
> const *> >,class capu::Comparator>::`vftable' {mTypeId=3172720
> mComponentType=0x003b36b4 mComponentTypeTrait=3285440 }    const
> EtchObjectType *
> +        mNext    0xcdcdcdcd {mData=??? mNext=??? mPrev=??? }
> capu::GenericListNode<EtchObjectType const *> *
> +        mPrev    0x006b0468 {mData=0x003d1360 mNext=0x006b5d00
> mPrev=0x006aa5b4 }    capu::GenericListNode<EtchObjectType const *> *
>         mSize    7036160    unsigned int
>         mComparator    {...}    const capu::Comparator
>         mAllocator    {...}
> capu::Allocator<capu::GenericListNode<EtchObjectType const *> >
>
>
>
>   Seems like the vtable of the value factory is invalid and causing the
> crash.
>
> Greetings,
>
>   Andy
>
>
>
>
>
> On Thu, Apr 3, 2014 at 1:43 PM, Andy Bean <an...@gmail.com> wrote:
>
> Hi Martin,
>
> I can't reproduce the issue when setting logging to debug. Even when
> having my printf() calls inside the loop will stop the errors to appear
> now. When I just comment out all printf() statements except for the one
> handling the exception I get the following like every 10 to 20 seconds:
>
> Got sessionNotifyEvent UP
> say_hello FAILED: exception=Peer did not answer in time to call say_hello
> Got sessionNotifyEvent DOWN
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> Got sessionNotifyEvent UP
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
>
> Probably I'm feeding messages faster than the system can handle them and I
> will get disconnected by the server. I'm not sure if this is the expected
> behavior or not.
>
> BTW: I'm also working on Windows 7!
>
>
>
> Greetings,
>
>   Andy
>
>
>
> On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>
> wrote:
>
> Hi Andy,
>
> I took your code and it is working on my Windows 7 machine as expected.
> I'm now at line
> 529003 say_hello OK: result=Hi From C++ Server!
>
> On which platform are you running on? Could you set the loglevel of the
> Runtime to "Debug" and paste the trace?
>
> Thanks,
> Martin
>
>
>
> On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
> >
> > Thanks! Your commit fixed this issue. Now I'm getting another one.
> > I've just added a loop around the call to say_hello in the client:
> >
> >   int i = 0;
> >   while(true){
> >       printf("%d ", ++i);
> >
> >       HelloWorld::userPtr myUser = new HelloWorld::user(new
> > EtchInt32(1),new EtchString("World"));
> >       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
> > remote->say_hello(myUser);
> >       if(say_helloResult->hasException()) {
> >         capu::SmartPointer<EtchException> exception = say_helloResult-
> > >getException();
> >         printf("say_hello FAILED: exception=%s \n",
> > exception->getErrorMessage().c_str());
> >       }
> >       if(say_helloResult->hasResult()) {
> >         capu::SmartPointer<EtchString> result =
> say_helloResult->getResult();
> >         printf("say_hello OK: result=%s\n", result->c_str());
> >       }
> >   }
> >
> >
> > When running this code I get different errors:
> >
> >
> > [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
> >
> > say_hello FAILED: exception=Unable to call say_hello as connection has
> > been closed by peer
> >
> >
> > This will happen for about ten calls to say_hello and then it will
> > continue normally for some hundred or thousand calls to say_hello.
> > Then the same happens again.
> >
> >
> >
> >
> > On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
> > <Ma...@bmw-carit.de>
> > wrote:
> >
> >
> >       Please checkout the newest commit on trunk, the issue should now be
> > fixed.
> >
> >
> >
> >       Thanks for reporting!
> >
> >
> >
> >       Cheers,
> >
> >       Martin
> >
> >
> >
> >       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
> >       Sent: Dienstag, 1. April 2014 13:15
> >       To: user@etch.apache.org
> >       Subject: RE: C++ Binding - sessionNotify DOWN
> >
> >
> >
> >       Hi Andy,
> >
> >
> >
> >       > Is there a problem with the current trunk version?
> >
> >       I will check and let you know asap.
> >
> >
> >
> >       The release candidate for 1.4 will become available within  this
> week.
> >
> >
> >
> >       Cheers,
> >
> >       Martin
> >
> >
> >
> >       From: Andy Bean [mailto:andy.bean80@gmail.com]
> >       Sent: Dienstag, 1. April 2014 12:59
> >       To: user@etch.apache.org
> >       Subject: Re: C++ Binding - sessionNotify DOWN
> >
> >
> >
> >
> >
> >       Today I was gonna continue working with etch. I switched to the
> > current trunk version because there is no 1.4 release yet. When
> > running the
> > C++ version of the helloworld example I get the following errors on
>
> > C++ the
>
> > client:
> >
> >       Got sessionNotifyEvent UP
> >       [  Warn   ] etch.runtime.messagizer.validator | String object
> > validation failed
> >       say_hello FAILED: exception=say_hello not implemented
> >       Got sessionNotifyEvent DOWN
> >
> >       Is there a problem with the current trunk version?
> >
>
>
>
>
>
>

RE: C++ Binding - sessionNotify DOWN

Posted by Martin Veith <Ma...@bmw-carit.de>.
Can you reproduce this with the newest trunk version?

From: Andy Bean [mailto:andy.bean80@gmail.com]
Sent: Freitag, 4. April 2014 11:57
To: user@etch.apache.org
Subject: Re: C++ Binding - sessionNotify DOWN

Found another problem. This time in the server part. I get an access violation after running my code without the log messages for like half an hour.
--------  callstack --------

>    helloworld_server.exe!EtchStructValue::EtchStructValue(EtchType * type, EtchValueFactory * vf)
helloworld_server.exe!EtchMessage::EtchMessage(EtchType * type, EtchValueFactory * vf)
helloworld_server.exe!EtchMessage::createReplyMessage(capu::SmartPointer<EtchMessage> & message)     helloworld_server.exe!Run_mt_org_apache_etch_examples_helloworld_HelloWorld_say_hello::run(EtchStubBase<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer> * _ref, EtchDeliveryService * _svc, org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer * _obj, capu::SmartPointer<EtchWho> _sender, capu::SmartPointer<EtchMessage> _msg)
helloworld_server.exe!EtchStubPoolRunnable<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>::run()
helloworld_server.exe!EtchFreePoolRunnable::run()
helloworld_server.exe!capu::os::Thread::run(void * arg)
kernel32.dll!74d1336a()
--------  code location --------

EtchStructValue::EtchStructValue(EtchType* type, EtchValueFactory* vf)
 : mType(type), mLevel(vf->getLevel()), mTable(DEFAULT_SIZE) {  <- ACCESS VIOLATION
  addObjectType(TYPE());
}

--------  memory contents for value factory --------
-        vf    0x006aa5a8    EtchValueFactory *
-        EtchObject    {mTypes={...} }    EtchObject
-        __vfptr    0x0067a138    *
        [0]    0x00000000    *
        [1]    0x003aef14 const EtchHashTable<class EtchString,class EtchObject *,class EtchComparator<class EtchString>,class EtchObjectHash>::`vftable'    *
        [2]    0x003ad5c8 const capu::List<class EtchObjectType const *,class capu::Allocator<class capu::GenericListNode<class EtchObjectType const *> >,class capu::Comparator>::`vftable'    *
        [3]    0xcdcdcdcd    *
        [4]    0x0066ad00    *
        [5]    0x00677ac8    *
-        mTypes    {mBoundary={...} mSize=7036160 mComparator={...} ...}    capu::List<EtchObjectType const *,capu::Allocator<capu::GenericListNode<EtchObjectType const *> >,capu::Comparator>
-        __vfptr    0x003aef14 const EtchHashTable<class EtchString,class EtchObject *,class EtchComparator<class EtchString>,class EtchObjectHash>::`vftable'    *
        [0]    0x003464e0 EtchHashTable<EtchString,EtchObject *,EtchComparator<EtchString>,EtchObjectHash>::`scalar deleting destructor'(unsigned int)    *
-        mBoundary    {mData=0x003ad5c8 mNext=0xcdcdcdcd mPrev=0x006b0468 }    capu::GenericListNode<EtchObjectType const *>
+        mData    0x003ad5c8 const capu::List<class EtchObjectType const *,class capu::Allocator<class capu::GenericListNode<class EtchObjectType const *> >,class capu::Comparator>::`vftable' {mTypeId=3172720 mComponentType=0x003b36b4 mComponentTypeTrait=3285440 }    const EtchObjectType *
+        mNext    0xcdcdcdcd {mData=??? mNext=??? mPrev=??? }    capu::GenericListNode<EtchObjectType const *> *
+        mPrev    0x006b0468 {mData=0x003d1360 mNext=0x006b5d00 mPrev=0x006aa5b4 }    capu::GenericListNode<EtchObjectType const *> *
        mSize    7036160    unsigned int
        mComparator    {...}    const capu::Comparator
        mAllocator    {...}    capu::Allocator<capu::GenericListNode<EtchObjectType const *> >


Seems like the vtable of the value factory is invalid and causing the crash.
Greetings,
  Andy


On Thu, Apr 3, 2014 at 1:43 PM, Andy Bean <an...@gmail.com>> wrote:
Hi Martin,
I can't reproduce the issue when setting logging to debug. Even when having my printf() calls inside the loop will stop the errors to appear now. When I just comment out all printf() statements except for the one handling the exception I get the following like every 10 to 20 seconds:

Got sessionNotifyEvent UP
say_hello FAILED: exception=Peer did not answer in time to call say_hello
Got sessionNotifyEvent DOWN
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
Got sessionNotifyEvent UP
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
Probably I'm feeding messages faster than the system can handle them and I will get disconnected by the server. I'm not sure if this is the expected behavior or not.
BTW: I'm also working on Windows 7!

Greetings,
  Andy

On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>> wrote:
Hi Andy,

I took your code and it is working on my Windows 7 machine as expected. I'm now at line
529003 say_hello OK: result=Hi From C++ Server!

On which platform are you running on? Could you set the loglevel of the Runtime to "Debug" and paste the trace?

Thanks,
Martin


On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
>
> Thanks! Your commit fixed this issue. Now I'm getting another one.
> I've just added a loop around the call to say_hello in the client:
>
>   int i = 0;
>   while(true){
>       printf("%d ", ++i);
>
>       HelloWorld::userPtr myUser = new HelloWorld::user(new
> EtchInt32(1),new EtchString("World"));
>       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
> remote->say_hello(myUser);
>       if(say_helloResult->hasException()) {
>         capu::SmartPointer<EtchException> exception = say_helloResult-
> >getException();
>         printf("say_hello FAILED: exception=%s \n",
> exception->getErrorMessage().c_str());
>       }
>       if(say_helloResult->hasResult()) {
>         capu::SmartPointer<EtchString> result = say_helloResult->getResult();
>         printf("say_hello OK: result=%s\n", result->c_str());
>       }
>   }
>
>
> When running this code I get different errors:
>
>
> [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
>
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer
>
>
> This will happen for about ten calls to say_hello and then it will
> continue normally for some hundred or thousand calls to say_hello.
> Then the same happens again.
>
>
>
>
> On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
> <Ma...@bmw-carit.de>>
> wrote:
>
>
>       Please checkout the newest commit on trunk, the issue should now be
> fixed.
>
>
>
>       Thanks for reporting!
>
>
>
>       Cheers,
>
>       Martin
>
>
>
>       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de<ma...@bmw-carit.de>]
>       Sent: Dienstag, 1. April 2014 13:15
>       To: user@etch.apache.org<ma...@etch.apache.org>
>       Subject: RE: C++ Binding - sessionNotify DOWN
>
>
>
>       Hi Andy,
>
>
>
>       > Is there a problem with the current trunk version?
>
>       I will check and let you know asap.
>
>
>
>       The release candidate for 1.4 will become available within  this week.
>
>
>
>       Cheers,
>
>       Martin
>
>
>
>       From: Andy Bean [mailto:andy.bean80@gmail.com<ma...@gmail.com>]
>       Sent: Dienstag, 1. April 2014 12:59
>       To: user@etch.apache.org<ma...@etch.apache.org>
>       Subject: Re: C++ Binding - sessionNotify DOWN
>
>
>
>
>
>       Today I was gonna continue working with etch. I switched to the
> current trunk version because there is no 1.4 release yet. When
> running the
> C++ version of the helloworld example I get the following errors on
> C++ the
> client:
>
>       Got sessionNotifyEvent UP
>       [  Warn   ] etch.runtime.messagizer.validator | String object
> validation failed
>       say_hello FAILED: exception=say_hello not implemented
>       Got sessionNotifyEvent DOWN
>
>       Is there a problem with the current trunk version?
>





Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
Found another problem. This time in the server part. I get an access
violation after running my code without the log messages for like half an
hour.

--------  callstack --------

>    helloworld_server.exe!EtchStructValue::EtchStructValue(EtchType *
type, EtchValueFactory * vf)
helloworld_server.exe!EtchMessage::EtchMessage(EtchType * type,
EtchValueFactory * vf)
helloworld_server.exe!EtchMessage::createReplyMessage(capu::SmartPointer<EtchMessage>
& message)
helloworld_server.exe!Run_mt_org_apache_etch_examples_helloworld_HelloWorld_say_hello::run(EtchStubBase<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>
* _ref, EtchDeliveryService * _svc,
org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer * _obj,
capu::SmartPointer<EtchWho> _sender, capu::SmartPointer<EtchMessage> _msg)
helloworld_server.exe!EtchStubPoolRunnable<org_apache_etch_examples_helloworld_HelloWorld::HelloWorldServer>::run()
helloworld_server.exe!EtchFreePoolRunnable::run()
helloworld_server.exe!capu::os::Thread::run(void * arg)
kernel32.dll!74d1336a()

--------  code location --------

EtchStructValue::EtchStructValue(EtchType* type, EtchValueFactory* vf)
 : mType(type), mLevel(vf->getLevel()), mTable(DEFAULT_SIZE) {  <- ACCESS
VIOLATION
  addObjectType(TYPE());
}

--------  memory contents for value factory --------

-        vf    0x006aa5a8    EtchValueFactory *
-        EtchObject    {mTypes={...} }    EtchObject
-        __vfptr    0x0067a138    *
        [0]    0x00000000    *
        [1]    0x003aef14 const EtchHashTable<class EtchString,class
EtchObject *,class EtchComparator<class EtchString>,class
EtchObjectHash>::`vftable'    *
        [2]    0x003ad5c8 const capu::List<class EtchObjectType const
*,class capu::Allocator<class capu::GenericListNode<class EtchObjectType
const *> >,class capu::Comparator>::`vftable'    *
        [3]    0xcdcdcdcd    *
        [4]    0x0066ad00    *
        [5]    0x00677ac8    *
-        mTypes    {mBoundary={...} mSize=7036160 mComparator={...} ...}
capu::List<EtchObjectType const
*,capu::Allocator<capu::GenericListNode<EtchObjectType const *>
>,capu::Comparator>
-        __vfptr    0x003aef14 const EtchHashTable<class EtchString,class
EtchObject *,class EtchComparator<class EtchString>,class
EtchObjectHash>::`vftable'    *
        [0]    0x003464e0 EtchHashTable<EtchString,EtchObject
*,EtchComparator<EtchString>,EtchObjectHash>::`scalar deleting
destructor'(unsigned int)    *
-        mBoundary    {mData=0x003ad5c8 mNext=0xcdcdcdcd mPrev=0x006b0468
}    capu::GenericListNode<EtchObjectType const *>
+        mData    0x003ad5c8 const capu::List<class EtchObjectType const
*,class capu::Allocator<class capu::GenericListNode<class EtchObjectType
const *> >,class capu::Comparator>::`vftable' {mTypeId=3172720
mComponentType=0x003b36b4 mComponentTypeTrait=3285440 }    const
EtchObjectType *
+        mNext    0xcdcdcdcd {mData=??? mNext=??? mPrev=??? }
capu::GenericListNode<EtchObjectType const *> *
+        mPrev    0x006b0468 {mData=0x003d1360 mNext=0x006b5d00
mPrev=0x006aa5b4 }    capu::GenericListNode<EtchObjectType const *> *
        mSize    7036160    unsigned int
        mComparator    {...}    const capu::Comparator
        mAllocator    {...}
capu::Allocator<capu::GenericListNode<EtchObjectType const *> >



Seems like the vtable of the value factory is invalid and causing the crash.

Greetings,
  Andy




On Thu, Apr 3, 2014 at 1:43 PM, Andy Bean <an...@gmail.com> wrote:

> Hi Martin,
> I can't reproduce the issue when setting logging to debug. Even when
> having my printf() calls inside the loop will stop the errors to appear
> now. When I just comment out all printf() statements except for the one
> handling the exception I get the following like every 10 to 20 seconds:
>
> Got sessionNotifyEvent UP
> say_hello FAILED: exception=Peer did not answer in time to call say_hello
> Got sessionNotifyEvent DOWN
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> Got sessionNotifyEvent UP
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
>
> Probably I'm feeding messages faster than the system can handle them and I
> will get disconnected by the server. I'm not sure if this is the expected
> behavior or not.
>
> BTW: I'm also working on Windows 7!
>
> Greetings,
>   Andy
>
>
> On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>wrote:
>
>> Hi Andy,
>>
>> I took your code and it is working on my Windows 7 machine as expected.
>> I'm now at line
>> 529003 say_hello OK: result=Hi From C++ Server!
>>
>> On which platform are you running on? Could you set the loglevel of the
>> Runtime to "Debug" and paste the trace?
>>
>> Thanks,
>> Martin
>>
>>
>> On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
>> >
>> > Thanks! Your commit fixed this issue. Now I'm getting another one.
>> > I've just added a loop around the call to say_hello in the client:
>> >
>> >   int i = 0;
>> >   while(true){
>> >       printf("%d ", ++i);
>> >
>> >       HelloWorld::userPtr myUser = new HelloWorld::user(new
>> > EtchInt32(1),new EtchString("World"));
>> >       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
>> > remote->say_hello(myUser);
>> >       if(say_helloResult->hasException()) {
>> >         capu::SmartPointer<EtchException> exception = say_helloResult-
>> > >getException();
>> >         printf("say_hello FAILED: exception=%s \n",
>> > exception->getErrorMessage().c_str());
>> >       }
>> >       if(say_helloResult->hasResult()) {
>> >         capu::SmartPointer<EtchString> result =
>> say_helloResult->getResult();
>> >         printf("say_hello OK: result=%s\n", result->c_str());
>> >       }
>> >   }
>> >
>> >
>> > When running this code I get different errors:
>> >
>> >
>> > [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
>> >
>> > say_hello FAILED: exception=Unable to call say_hello as connection has
>> > been closed by peer
>> >
>> >
>> > This will happen for about ten calls to say_hello and then it will
>> > continue normally for some hundred or thousand calls to say_hello.
>> > Then the same happens again.
>> >
>> >
>> >
>> >
>> > On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
>> > <Ma...@bmw-carit.de>
>> > wrote:
>> >
>> >
>> >       Please checkout the newest commit on trunk, the issue should now
>> be
>> > fixed.
>> >
>> >
>> >
>> >       Thanks for reporting!
>> >
>> >
>> >
>> >       Cheers,
>> >
>> >       Martin
>> >
>> >
>> >
>> >       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
>> >       Sent: Dienstag, 1. April 2014 13:15
>> >       To: user@etch.apache.org
>> >       Subject: RE: C++ Binding - sessionNotify DOWN
>> >
>> >
>> >
>> >       Hi Andy,
>> >
>> >
>> >
>> >       > Is there a problem with the current trunk version?
>> >
>> >       I will check and let you know asap.
>> >
>> >
>> >
>> >       The release candidate for 1.4 will become available within  this
>> week.
>> >
>> >
>> >
>> >       Cheers,
>> >
>> >       Martin
>> >
>> >
>> >
>> >       From: Andy Bean [mailto:andy.bean80@gmail.com]
>> >       Sent: Dienstag, 1. April 2014 12:59
>> >       To: user@etch.apache.org
>> >       Subject: Re: C++ Binding - sessionNotify DOWN
>> >
>> >
>> >
>> >
>> >
>> >       Today I was gonna continue working with etch. I switched to the
>> > current trunk version because there is no 1.4 release yet. When
>> > running the
>> > C++ version of the helloworld example I get the following errors on
>> > C++ the
>> > client:
>> >
>> >       Got sessionNotifyEvent UP
>> >       [  Warn   ] etch.runtime.messagizer.validator | String object
>> > validation failed
>> >       say_hello FAILED: exception=say_hello not implemented
>> >       Got sessionNotifyEvent DOWN
>> >
>> >       Is there a problem with the current trunk version?
>> >
>>
>>
>>
>>
>

Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
Thank you, but it didn't fix the problem in the client for me. I'm using
BoostBuild instead of CMake to build etch-cpp-runtime, capu and the hello
world examples. So i manually updated to the new capu version referenced
from CMake, rebuild the code generator from svn trunk and regenerated my
code using the new version and then rebuild everything from scratch.


On Fri, Apr 4, 2014 at 11:53 AM, Martin Veith <Ma...@bmw-carit.de>wrote:

>  Hi Andy,
>
>
>
> I seems to be a socket issue on Windows as the problem does not occur on
> Linux. I updated the dependency to the platform abstraction Etch is using
> (github project CAPU) where some socket fixes are in.
>
> Now your example is working on my Windows machine (with and without the
> printf).
>
>
>
> So please give it another try with the newest trunk. Make sure to build
> clean as sometimes CMake does not realize that the dependency to CAPU was
> changed.
>
>
>
> Thanks,
>
> Martin
>
>
>
> *From:* Andy Bean [mailto:andy.bean80@gmail.com]
> *Sent:* Donnerstag, 3. April 2014 13:44
>
> *To:* user@etch.apache.org
> *Subject:* Re: C++ Binding - sessionNotify DOWN
>
>
>
> Hi Martin,
>
> I can't reproduce the issue when setting logging to debug. Even when
> having my printf() calls inside the loop will stop the errors to appear
> now. When I just comment out all printf() statements except for the one
> handling the exception I get the following like every 10 to 20 seconds:
>
> Got sessionNotifyEvent UP
> say_hello FAILED: exception=Peer did not answer in time to call say_hello
> Got sessionNotifyEvent DOWN
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
> [  Error  ] etch.runtime.mailbox | Mailbox registration failed
> Got sessionNotifyEvent UP
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer.
>
> Probably I'm feeding messages faster than the system can handle them and I
> will get disconnected by the server. I'm not sure if this is the expected
> behavior or not.
>
> BTW: I'm also working on Windows 7!
>
>
>
> Greetings,
>
>   Andy
>
>
>
> On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>
> wrote:
>
> Hi Andy,
>
> I took your code and it is working on my Windows 7 machine as expected.
> I'm now at line
> 529003 say_hello OK: result=Hi From C++ Server!
>
> On which platform are you running on? Could you set the loglevel of the
> Runtime to "Debug" and paste the trace?
>
> Thanks,
> Martin
>
>
>
> On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
> >
> > Thanks! Your commit fixed this issue. Now I'm getting another one.
> > I've just added a loop around the call to say_hello in the client:
> >
> >   int i = 0;
> >   while(true){
> >       printf("%d ", ++i);
> >
> >       HelloWorld::userPtr myUser = new HelloWorld::user(new
> > EtchInt32(1),new EtchString("World"));
> >       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
> > remote->say_hello(myUser);
> >       if(say_helloResult->hasException()) {
> >         capu::SmartPointer<EtchException> exception = say_helloResult-
> > >getException();
> >         printf("say_hello FAILED: exception=%s \n",
> > exception->getErrorMessage().c_str());
> >       }
> >       if(say_helloResult->hasResult()) {
> >         capu::SmartPointer<EtchString> result =
> say_helloResult->getResult();
> >         printf("say_hello OK: result=%s\n", result->c_str());
> >       }
> >   }
> >
> >
> > When running this code I get different errors:
> >
> >
> > [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
> >
> > say_hello FAILED: exception=Unable to call say_hello as connection has
> > been closed by peer
> >
> >
> > This will happen for about ten calls to say_hello and then it will
> > continue normally for some hundred or thousand calls to say_hello.
> > Then the same happens again.
> >
> >
> >
> >
> > On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
> > <Ma...@bmw-carit.de>
> > wrote:
> >
> >
> >       Please checkout the newest commit on trunk, the issue should now be
> > fixed.
> >
> >
> >
> >       Thanks for reporting!
> >
> >
> >
> >       Cheers,
> >
> >       Martin
> >
> >
> >
> >       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
> >       Sent: Dienstag, 1. April 2014 13:15
> >       To: user@etch.apache.org
> >       Subject: RE: C++ Binding - sessionNotify DOWN
> >
> >
> >
> >       Hi Andy,
> >
> >
> >
> >       > Is there a problem with the current trunk version?
> >
> >       I will check and let you know asap.
> >
> >
> >
> >       The release candidate for 1.4 will become available within  this
> week.
> >
> >
> >
> >       Cheers,
> >
> >       Martin
> >
> >
> >
> >       From: Andy Bean [mailto:andy.bean80@gmail.com]
> >       Sent: Dienstag, 1. April 2014 12:59
> >       To: user@etch.apache.org
> >       Subject: Re: C++ Binding - sessionNotify DOWN
> >
> >
> >
> >
> >
> >       Today I was gonna continue working with etch. I switched to the
> > current trunk version because there is no 1.4 release yet. When
> > running the
> > C++ version of the helloworld example I get the following errors on
>
> > C++ the
>
> > client:
> >
> >       Got sessionNotifyEvent UP
> >       [  Warn   ] etch.runtime.messagizer.validator | String object
> > validation failed
> >       say_hello FAILED: exception=say_hello not implemented
> >       Got sessionNotifyEvent DOWN
> >
> >       Is there a problem with the current trunk version?
> >
>
>
>
>

RE: C++ Binding - sessionNotify DOWN

Posted by Martin Veith <Ma...@bmw-carit.de>.
Hi Andy,

I seems to be a socket issue on Windows as the problem does not occur on Linux. I updated the dependency to the platform abstraction Etch is using (github project CAPU) where some socket fixes are in.
Now your example is working on my Windows machine (with and without the printf).

So please give it another try with the newest trunk. Make sure to build clean as sometimes CMake does not realize that the dependency to CAPU was changed.

Thanks,
Martin

From: Andy Bean [mailto:andy.bean80@gmail.com]
Sent: Donnerstag, 3. April 2014 13:44
To: user@etch.apache.org
Subject: Re: C++ Binding - sessionNotify DOWN

Hi Martin,
I can't reproduce the issue when setting logging to debug. Even when having my printf() calls inside the loop will stop the errors to appear now. When I just comment out all printf() statements except for the one handling the exception I get the following like every 10 to 20 seconds:

Got sessionNotifyEvent UP
say_hello FAILED: exception=Peer did not answer in time to call say_hello
Got sessionNotifyEvent DOWN
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
Got sessionNotifyEvent UP
say_hello FAILED: exception=Unable to call say_hello as connection has been closed by peer.
Probably I'm feeding messages faster than the system can handle them and I will get disconnected by the server. I'm not sure if this is the expected behavior or not.
BTW: I'm also working on Windows 7!

Greetings,
  Andy

On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>> wrote:
Hi Andy,

I took your code and it is working on my Windows 7 machine as expected. I'm now at line
529003 say_hello OK: result=Hi From C++ Server!

On which platform are you running on? Could you set the loglevel of the Runtime to "Debug" and paste the trace?

Thanks,
Martin


On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
>
> Thanks! Your commit fixed this issue. Now I'm getting another one.
> I've just added a loop around the call to say_hello in the client:
>
>   int i = 0;
>   while(true){
>       printf("%d ", ++i);
>
>       HelloWorld::userPtr myUser = new HelloWorld::user(new
> EtchInt32(1),new EtchString("World"));
>       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
> remote->say_hello(myUser);
>       if(say_helloResult->hasException()) {
>         capu::SmartPointer<EtchException> exception = say_helloResult-
> >getException();
>         printf("say_hello FAILED: exception=%s \n",
> exception->getErrorMessage().c_str());
>       }
>       if(say_helloResult->hasResult()) {
>         capu::SmartPointer<EtchString> result = say_helloResult->getResult();
>         printf("say_hello OK: result=%s\n", result->c_str());
>       }
>   }
>
>
> When running this code I get different errors:
>
>
> [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
>
> say_hello FAILED: exception=Unable to call say_hello as connection has
> been closed by peer
>
>
> This will happen for about ten calls to say_hello and then it will
> continue normally for some hundred or thousand calls to say_hello.
> Then the same happens again.
>
>
>
>
> On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
> <Ma...@bmw-carit.de>>
> wrote:
>
>
>       Please checkout the newest commit on trunk, the issue should now be
> fixed.
>
>
>
>       Thanks for reporting!
>
>
>
>       Cheers,
>
>       Martin
>
>
>
>       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de<ma...@bmw-carit.de>]
>       Sent: Dienstag, 1. April 2014 13:15
>       To: user@etch.apache.org<ma...@etch.apache.org>
>       Subject: RE: C++ Binding - sessionNotify DOWN
>
>
>
>       Hi Andy,
>
>
>
>       > Is there a problem with the current trunk version?
>
>       I will check and let you know asap.
>
>
>
>       The release candidate for 1.4 will become available within  this week.
>
>
>
>       Cheers,
>
>       Martin
>
>
>
>       From: Andy Bean [mailto:andy.bean80@gmail.com<ma...@gmail.com>]
>       Sent: Dienstag, 1. April 2014 12:59
>       To: user@etch.apache.org<ma...@etch.apache.org>
>       Subject: Re: C++ Binding - sessionNotify DOWN
>
>
>
>
>
>       Today I was gonna continue working with etch. I switched to the
> current trunk version because there is no 1.4 release yet. When
> running the
> C++ version of the helloworld example I get the following errors on
> C++ the
> client:
>
>       Got sessionNotifyEvent UP
>       [  Warn   ] etch.runtime.messagizer.validator | String object
> validation failed
>       say_hello FAILED: exception=say_hello not implemented
>       Got sessionNotifyEvent DOWN
>
>       Is there a problem with the current trunk version?
>




Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
Hi Martin,
I can't reproduce the issue when setting logging to debug. Even when having
my printf() calls inside the loop will stop the errors to appear now. When
I just comment out all printf() statements except for the one handling the
exception I get the following like every 10 to 20 seconds:

Got sessionNotifyEvent UP
say_hello FAILED: exception=Peer did not answer in time to call say_hello
Got sessionNotifyEvent DOWN
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.
[  Error  ] etch.runtime.mailbox | Mailbox registration failed
Got sessionNotifyEvent UP
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer.

Probably I'm feeding messages faster than the system can handle them and I
will get disconnected by the server. I'm not sure if this is the expected
behavior or not.

BTW: I'm also working on Windows 7!

Greetings,
  Andy


On Wed, Apr 2, 2014 at 11:42 AM, Martin Veith <Ma...@bmw-carit.de>wrote:

> Hi Andy,
>
> I took your code and it is working on my Windows 7 machine as expected.
> I'm now at line
> 529003 say_hello OK: result=Hi From C++ Server!
>
> On which platform are you running on? Could you set the loglevel of the
> Runtime to "Debug" and paste the trace?
>
> Thanks,
> Martin
>
>
> On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
> >
> > Thanks! Your commit fixed this issue. Now I'm getting another one.
> > I've just added a loop around the call to say_hello in the client:
> >
> >   int i = 0;
> >   while(true){
> >       printf("%d ", ++i);
> >
> >       HelloWorld::userPtr myUser = new HelloWorld::user(new
> > EtchInt32(1),new EtchString("World"));
> >       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
> > remote->say_hello(myUser);
> >       if(say_helloResult->hasException()) {
> >         capu::SmartPointer<EtchException> exception = say_helloResult-
> > >getException();
> >         printf("say_hello FAILED: exception=%s \n",
> > exception->getErrorMessage().c_str());
> >       }
> >       if(say_helloResult->hasResult()) {
> >         capu::SmartPointer<EtchString> result =
> say_helloResult->getResult();
> >         printf("say_hello OK: result=%s\n", result->c_str());
> >       }
> >   }
> >
> >
> > When running this code I get different errors:
> >
> >
> > [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
> >
> > say_hello FAILED: exception=Unable to call say_hello as connection has
> > been closed by peer
> >
> >
> > This will happen for about ten calls to say_hello and then it will
> > continue normally for some hundred or thousand calls to say_hello.
> > Then the same happens again.
> >
> >
> >
> >
> > On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith
> > <Ma...@bmw-carit.de>
> > wrote:
> >
> >
> >       Please checkout the newest commit on trunk, the issue should now be
> > fixed.
> >
> >
> >
> >       Thanks for reporting!
> >
> >
> >
> >       Cheers,
> >
> >       Martin
> >
> >
> >
> >       From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
> >       Sent: Dienstag, 1. April 2014 13:15
> >       To: user@etch.apache.org
> >       Subject: RE: C++ Binding - sessionNotify DOWN
> >
> >
> >
> >       Hi Andy,
> >
> >
> >
> >       > Is there a problem with the current trunk version?
> >
> >       I will check and let you know asap.
> >
> >
> >
> >       The release candidate for 1.4 will become available within  this
> week.
> >
> >
> >
> >       Cheers,
> >
> >       Martin
> >
> >
> >
> >       From: Andy Bean [mailto:andy.bean80@gmail.com]
> >       Sent: Dienstag, 1. April 2014 12:59
> >       To: user@etch.apache.org
> >       Subject: Re: C++ Binding - sessionNotify DOWN
> >
> >
> >
> >
> >
> >       Today I was gonna continue working with etch. I switched to the
> > current trunk version because there is no 1.4 release yet. When
> > running the
> > C++ version of the helloworld example I get the following errors on
> > C++ the
> > client:
> >
> >       Got sessionNotifyEvent UP
> >       [  Warn   ] etch.runtime.messagizer.validator | String object
> > validation failed
> >       say_hello FAILED: exception=say_hello not implemented
> >       Got sessionNotifyEvent DOWN
> >
> >       Is there a problem with the current trunk version?
> >
>
>
>
>

RE: C++ Binding - sessionNotify DOWN

Posted by Martin Veith <Ma...@bmw-carit.de>.
Hi Andy,

I took your code and it is working on my Windows 7 machine as expected. I'm now at line
529003 say_hello OK: result=Hi From C++ Server!

On which platform are you running on? Could you set the loglevel of the Runtime to "Debug" and paste the trace?

Thanks,
Martin


On Di, Apr 01, 2014 at 14:27:59, Andy Bean wrote:
> 
> Thanks! Your commit fixed this issue. Now I'm getting another one. 
> I've just added a loop around the call to say_hello in the client:
> 
>   int i = 0;
>   while(true){
>       printf("%d ", ++i);
> 
>       HelloWorld::userPtr myUser = new HelloWorld::user(new 
> EtchInt32(1),new EtchString("World"));
>       HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
> remote->say_hello(myUser);
>       if(say_helloResult->hasException()) {
>         capu::SmartPointer<EtchException> exception = say_helloResult-
> >getException();
>         printf("say_hello FAILED: exception=%s \n",
> exception->getErrorMessage().c_str());
>       }
>       if(say_helloResult->hasResult()) {
>         capu::SmartPointer<EtchString> result = say_helloResult->getResult();
>         printf("say_hello OK: result=%s\n", result->c_str());
>       }
>   }
> 
> 
> When running this code I get different errors:
> 
> 
> [ ERROR ] etch.runtime.mailbox | Mailbox registration failed
> 
> say_hello FAILED: exception=Unable to call say_hello as connection has 
> been closed by peer
> 
> 
> This will happen for about ten calls to say_hello and then it will 
> continue normally for some hundred or thousand calls to say_hello. 
> Then the same happens again.
> 
> 
> 
> 
> On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith 
> <Ma...@bmw-carit.de>
> wrote:
> 
> 
> 	Please checkout the newest commit on trunk, the issue should now be 
> fixed.
> 
> 
> 
> 	Thanks for reporting!
> 
> 
> 
> 	Cheers,
> 
> 	Martin
> 
> 
> 
> 	From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
> 	Sent: Dienstag, 1. April 2014 13:15
> 	To: user@etch.apache.org
> 	Subject: RE: C++ Binding - sessionNotify DOWN
> 
> 
> 
> 	Hi Andy,
> 
> 
> 
> 	> Is there a problem with the current trunk version?
> 
> 	I will check and let you know asap.
> 
> 
> 
> 	The release candidate for 1.4 will become available within  this week.
> 
> 
> 
> 	Cheers,
> 
> 	Martin
> 
> 
> 
> 	From: Andy Bean [mailto:andy.bean80@gmail.com]
> 	Sent: Dienstag, 1. April 2014 12:59
> 	To: user@etch.apache.org
> 	Subject: Re: C++ Binding - sessionNotify DOWN
> 
> 
> 
> 
> 
> 	Today I was gonna continue working with etch. I switched to the 
> current trunk version because there is no 1.4 release yet. When 
> running the
> C++ version of the helloworld example I get the following errors on 
> C++ the
> client:
> 
> 	Got sessionNotifyEvent UP
> 	[  Warn   ] etch.runtime.messagizer.validator | String object
> validation failed
> 	say_hello FAILED: exception=say_hello not implemented
> 	Got sessionNotifyEvent DOWN
> 
> 	Is there a problem with the current trunk version?
> 




Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
Thanks! Your commit fixed this issue. Now I'm getting another one. I've
just added a loop around the call to say_hello in the client:

  int i = 0;
  while(true){
      printf("%d ", ++i);

      HelloWorld::userPtr myUser = new HelloWorld::user(new
EtchInt32(1),new EtchString("World"));
      HelloWorldServer::say_helloAsyncResultPtr say_helloResult =
remote->say_hello(myUser);
      if(say_helloResult->hasException()) {
        capu::SmartPointer<EtchException> exception =
say_helloResult->getException();
        printf("say_hello FAILED: exception=%s \n",
exception->getErrorMessage().c_str());
      }
      if(say_helloResult->hasResult()) {
        capu::SmartPointer<EtchString> result =
say_helloResult->getResult();
        printf("say_hello OK: result=%s\n", result->c_str());
      }
  }

When running this code I get different errors:

[ ERROR ] etch.runtime.mailbox | Mailbox registration failed
say_hello FAILED: exception=Unable to call say_hello as connection has been
closed by peer

This will happen for about ten calls to say_hello and then it will continue
normally for some hundred or thousand calls to say_hello. Then the same
happens again.



On Tue, Apr 1, 2014 at 1:27 PM, Martin Veith <Ma...@bmw-carit.de>wrote:

>  Please checkout the newest commit on trunk, the issue should now be
> fixed.
>
>
>
> Thanks for reporting!
>
>
>
> Cheers,
>
> Martin
>
>
>
> *From:* Martin Veith [mailto:Martin.Veith@bmw-carit.de]
> *Sent:* Dienstag, 1. April 2014 13:15
> *To:* user@etch.apache.org
> *Subject:* RE: C++ Binding - sessionNotify DOWN
>
>
>
> Hi Andy,
>
>
>
> > Is there a problem with the current trunk version?
>
> I will check and let you know asap.
>
>
>
> The release candidate for 1.4 will become available within  this week.
>
>
>
> Cheers,
>
> Martin
>
>
>
> *From:* Andy Bean [mailto:andy.bean80@gmail.com <an...@gmail.com>]
> *Sent:* Dienstag, 1. April 2014 12:59
> *To:* user@etch.apache.org
> *Subject:* Re: C++ Binding - sessionNotify DOWN
>
>
>
>
>
> Today I was gonna continue working with etch. I switched to the current
> trunk version because there is no 1.4 release yet. When running the C++
> version of the helloworld example I get the following errors on the client:
>
> Got sessionNotifyEvent UP
> [  Warn   ] etch.runtime.messagizer.validator | String object validation
> failed
> say_hello FAILED: exception=say_hello not implemented
> Got sessionNotifyEvent DOWN
>
> Is there a problem with the current trunk version?
>

RE: C++ Binding - sessionNotify DOWN

Posted by Martin Veith <Ma...@bmw-carit.de>.
Please checkout the newest commit on trunk, the issue should now be fixed.

Thanks for reporting!

Cheers,
Martin

From: Martin Veith [mailto:Martin.Veith@bmw-carit.de]
Sent: Dienstag, 1. April 2014 13:15
To: user@etch.apache.org
Subject: RE: C++ Binding - sessionNotify DOWN

Hi Andy,

> Is there a problem with the current trunk version?
I will check and let you know asap.

The release candidate for 1.4 will become available within  this week.

Cheers,
Martin

From: Andy Bean [mailto:andy.bean80@gmail.com]
Sent: Dienstag, 1. April 2014 12:59
To: user@etch.apache.org<ma...@etch.apache.org>
Subject: Re: C++ Binding - sessionNotify DOWN


Today I was gonna continue working with etch. I switched to the current trunk version because there is no 1.4 release yet. When running the C++ version of the helloworld example I get the following errors on the client:

Got sessionNotifyEvent UP
[  Warn   ] etch.runtime.messagizer.validator | String object validation failed
say_hello FAILED: exception=say_hello not implemented
Got sessionNotifyEvent DOWN
Is there a problem with the current trunk version?

RE: C++ Binding - sessionNotify DOWN

Posted by Martin Veith <Ma...@bmw-carit.de>.
Hi Andy,

> Is there a problem with the current trunk version?
I will check and let you know asap.

The release candidate for 1.4 will become available within  this week.

Cheers,
Martin

From: Andy Bean [mailto:andy.bean80@gmail.com]
Sent: Dienstag, 1. April 2014 12:59
To: user@etch.apache.org
Subject: Re: C++ Binding - sessionNotify DOWN


Today I was gonna continue working with etch. I switched to the current trunk version because there is no 1.4 release yet. When running the C++ version of the helloworld example I get the following errors on the client:

Got sessionNotifyEvent UP
[  Warn   ] etch.runtime.messagizer.validator | String object validation failed
say_hello FAILED: exception=say_hello not implemented
Got sessionNotifyEvent DOWN

Is there a problem with the current trunk version?

Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
Today I was gonna continue working with etch. I switched to the current
trunk version because there is no 1.4 release yet. When running the C++
version of the helloworld example I get the following errors on the client:

Got sessionNotifyEvent UP
[  Warn   ] etch.runtime.messagizer.validator | String object validation
failed
say_hello FAILED: exception=say_hello not implemented
Got sessionNotifyEvent DOWN


Is there a problem with the current trunk version?

Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
On Fri, Mar 21, 2014 at 9:39 AM, Martin Veith <Ma...@bmw-carit.de>wrote:

> Hi Andy,
>
> please find my comments to your questions below.
>
> > I'm just starting to use etch. I'm currently playing with the C++
> > HelloWorld example. The version from the examples works as expected.
> > When I change the code in the client to send say_hello forever in a
> > loop it will stop after a while. Sometimes after 50 calls, sometimes
> > after a few thousand calls. I'm logging data in _sessionNotify and get
> > a sessionNotifyEvent of DOWN and UP alternating when communicaion
> > stops. Any hints on what I'm missing?
> Which version have you been using? The 1.3.0 or the current trunk?
> As Aaron already pointed out, we have fixed a few things which are related
> to this issue the last days.
> So with the current master no packets should be lost. If you still have
> this issue please provide us your modified helloWorld example.
>

I've been working with 1.3 release version. The only modification I did was
add a loop around the sending and handling the result of say_hello in the
client.


>
> >  So the C++ bindings are not yet ready for  use? When can I expect a
> stable release version of c++ bindings?
> The C++ is usable. We are using it in several projects.
> However, it is still beta, which means that it could behave not as
> expected in certain corner cases. Furthermore there is still not that much
> documentation about the usage, but the user mailing list should be able to
> help you.
> Anyway even for the c-binding some minor issues (depending on your IDL)
> are known [1].
>
> > I will need the server-side bindings for my project in C or C++.
> > Clients will be most likely in java. They will probably set some
> > configuration on the server and subscribe to different kind of result
> streams produced by the server.
> >
> > My Server will be processing a lot of data. Depending on the client it
> > might even produce more than ten megabytes of binary data per second.
> > A single packet might contain multiple megabytes of binary data or just
> some bytes.
> > Data transfers have to be initiated by the server when data is
> > available for the client. I've already considered thrift but it
> > doesn't support bidirectional communication out of the box so I became
> interested in etch.
> >
> > Is etch capable of handling that much data in that kind of scenario?
> Etch should be able to handle this but I cannot say whether
>

I hope so. I'm going to do some load testing when I get my stuff up and
running.


>
> > BTW: I'm still interested to know about an expected release date for
> > stable C++ bindings. Hopefully Martin will let me know about that.
> Etch 1.4.0 will be released shortly (within March). I'm currently
> preparing the release.
>

Great news! I won't be able to work on my project this month anymore so
I'll probably continue working with 1.4 next month.

Thanks for your help. I hope etch will work as expected after the new
release because it would really fit my use cases quite well.

RE: C++ Binding - sessionNotify DOWN

Posted by Martin Veith <Ma...@bmw-carit.de>.
Hi Andy,

please find my comments to your questions below.

> I'm just starting to use etch. I'm currently playing with the C++ 
> HelloWorld example. The version from the examples works as expected.
> When I change the code in the client to send say_hello forever in a 
> loop it will stop after a while. Sometimes after 50 calls, sometimes 
> after a few thousand calls. I'm logging data in _sessionNotify and get 
> a sessionNotifyEvent of DOWN and UP alternating when communicaion 
> stops. Any hints on what I'm missing?
Which version have you been using? The 1.3.0 or the current trunk?
As Aaron already pointed out, we have fixed a few things which are related to this issue the last days. 
So with the current master no packets should be lost. If you still have this issue please provide us your modified helloWorld example.

>  So the C++ bindings are not yet ready for  use? When can I expect a stable release version of c++ bindings?
The C++ is usable. We are using it in several projects. 
However, it is still beta, which means that it could behave not as expected in certain corner cases. Furthermore there is still not that much documentation about the usage, but the user mailing list should be able to help you.
Anyway even for the c-binding some minor issues (depending on your IDL) are known [1].

> I will need the server-side bindings for my project in C or C++. 
> Clients will be most likely in java. They will probably set some 
> configuration on the server and subscribe to different kind of result streams produced by the server.
> 
> My Server will be processing a lot of data. Depending on the client it 
> might even produce more than ten megabytes of binary data per second. 
> A single packet might contain multiple megabytes of binary data or just some bytes.
> Data transfers have to be initiated by the server when data is 
> available for the client. I've already considered thrift but it 
> doesn't support bidirectional communication out of the box so I became interested in etch.
> 
> Is etch capable of handling that much data in that kind of scenario?
Etch should be able to handle this but I cannot say whether 

> BTW: I'm still interested to know about an expected release date for 
> stable C++ bindings. Hopefully Martin will let me know about that.
Etch 1.4.0 will be released shortly (within March). I'm currently preparing the release. 

Hope this helps.

Cheers,
Martin


[1] https://issues.apache.org/jira/browse/ETCH-271?jql=project%20%3D%20ETCH%20AND%20resolution%20%3D%20Unresolved%20AND%20component%20%3D%20binding-c%20ORDER%20BY%20priority%20DESC

On Fr, Mrz 21, 2014 at 00:55:15, Andy Bean wrote:
> 
> I will need the server-side bindings for my project in C or C++. 
> Clients will be most likely in java. They will probably set some 
> configuration on the server and subscribe to different kind of result streams produced by the server.
> 
> My Server will be processing a lot of data. Depending on the client it 
> might even produce more than ten megabytes of binary data per second. 
> A single packet might contain multiple megabytes of binary data or just some bytes.
> Data transfers have to be initiated by the server when data is 
> available for the client. I've already considered thrift but it 
> doesn't support bidirectional communication out of the box so I became interested in etch.
> 
> Is etch capable of handling that much data in that kind of scenario?
> 
> 
> BTW: I'm still interested to know about an expected release date for 
> stable
> C++ bindings. Hopefully Martin will let me know about that.
> 
> 
> 
> 
> On Thu, Mar 20, 2014 at 3:59 PM, <Aa...@partner.bmw.de> wrote:
> 
> 
> 	Hi Andy,
> 
> 	I'm currently using the c++ Binding, but only the Client-Side. I 
> still got some rather minor fixes here,  but i wasn't able to 
> contribute them yet. They are related to forced socket-disconnects, 
> which shouldn't be happening inside of the hello-world-example. Currently it seems to be very stable.
> 
> 	I guess the cpp-Binding will stay "beta" until all functionality is 
> available, like "true asynchronous" calls - which aren't really 
> asynchronous in C and Java.
> 	For more information about release-dates you have to wait for Martins 
> response.
> 
> 	Greetings,
> 	Aaron
> 
> 
> 	Von: Andy Bean <an...@gmail.com>
> 	Antworten an: "user@etch.apache.org" <us...@etch.apache.org>
> 
> 	Datum: Donnerstag, 20. März 2014 15:32
> 	An: "user@etch.apache.org" <us...@etch.apache.org>
> 	Betreff: Re: C++ Binding - sessionNotify DOWN
> 
> 
> 	Thanks for your advice. So the C++ bindings are not yet ready for 
> use? When can I expect a stable release version of c++ bindings?
> 
> 
> 	For now I may just as well use the c bindings in my code. The 
> difference isn't that big for me. I don't like to use development 
> versions for future production code.
> 
> 
> 
> 	On Thu, Mar 20, 2014 at 3:23 PM, <Aa...@partner.bmw.de>
> wrote:
> 
> 
> 		Hi Andy,
> 
> 		Keep in mind, that etch-cpp is still in beta.
> 
> 		The last time i checked, i had issues with the Server shutting down 
> at random. Which was related to the MailboxManager.
> 		You may want to test the C++ Client with the Java Server to see if 
> everything with your client-loop is alright.
> 
> 		Today some critical Patches were added - updating your repository 
> may help
> 
> 		Best Regards,
> 		Aaron
> 
> 
> 
> 		Von: Andy Bean <an...@gmail.com>
> 		Antworten an: "user@etch.apache.org"
> <us...@etch.apache.org>
> 		Datum: Donnerstag, 20. März 2014 14:59
> 		An: "user@etch.apache.org" <us...@etch.apache.org>
> 		Betreff: C++ Binding - sessionNotify DOWN
> 
> 
> 		Hi there,
> 
> 		I'm just starting to use etch. I'm currently playing with the C++ 
> HelloWorld example. The version from the examples works as expected.
> When I change the code in the client to send say_hello forever in a 
> loop it will stop after a while. Sometimes after 50 calls, sometimes 
> after a few thousand calls. I'm logging data in _sessionNotify and get 
> a sessionNotifyEvent of DOWN and UP alternating when communicaion 
> stops. Any hints on what I'm missing?
> 
> 
> 		Greetings,
> 
> 		  Andy
> 
> 




Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
I will need the server-side bindings for my project in C or C++. Clients
will be most likely in java. They will probably set some configuration on
the server and subscribe to different kind of result streams produced by
the server.

My Server will be processing a lot of data. Depending on the client it
might even produce more than ten megabytes of binary data per second. A
single packet might contain multiple megabytes of binary data or just some
bytes. Data transfers have to be initiated by the server when data is
available for the client. I've already considered thrift but it doesn't
support bidirectional communication out of the box so I became interested
in etch.

Is etch capable of handling that much data in that kind of scenario?

BTW: I'm still interested to know about an expected release date for stable
C++ bindings. Hopefully Martin will let me know about that.



On Thu, Mar 20, 2014 at 3:59 PM, <Aa...@partner.bmw.de> wrote:

>   Hi Andy,
>
>  I'm currently using the c++ Binding, but only the Client-Side. I still
> got some rather minor fixes here,  but i wasn't able to contribute them
> yet. They are related to forced socket-disconnects, which shouldn't be
> happening inside of the hello-world-example. Currently it seems to be very
> stable.
>
>  I guess the cpp-Binding will stay "beta" until all functionality is
> available, like "true asynchronous" calls - which aren't really
> asynchronous in C and Java.
> For more information about release-dates you have to wait for Martins
> response.
>
>  Greetings,
> Aaron
>
>   Von: Andy Bean <an...@gmail.com>
> Antworten an: "user@etch.apache.org" <us...@etch.apache.org>
> Datum: Donnerstag, 20. März 2014 15:32
> An: "user@etch.apache.org" <us...@etch.apache.org>
> Betreff: Re: C++ Binding - sessionNotify DOWN
>
>   Thanks for your advice. So the C++ bindings are not yet ready for use?
> When can I expect a stable release version of c++ bindings?
>
>  For now I may just as well use the c bindings in my code. The difference
> isn't that big for me. I don't like to use development versions for future
> production code.
>
>
> On Thu, Mar 20, 2014 at 3:23 PM, <Aa...@partner.bmw.de> wrote:
>
>>   Hi Andy,
>>
>>  Keep in mind, that etch-cpp is still in beta.
>>
>>  The last time i checked, i had issues with the Server shutting down at
>> random. Which was related to the MailboxManager.
>> You may want to test the C++ Client with the Java Server to see if
>> everything with your client-loop is alright.
>>
>>  Today some critical Patches were added - updating your repository may
>> help
>>
>>  Best Regards,
>> Aaron
>>
>>
>>   Von: Andy Bean <an...@gmail.com>
>> Antworten an: "user@etch.apache.org" <us...@etch.apache.org>
>> Datum: Donnerstag, 20. März 2014 14:59
>> An: "user@etch.apache.org" <us...@etch.apache.org>
>> Betreff: C++ Binding - sessionNotify DOWN
>>
>>    Hi there,
>>  I'm just starting to use etch. I'm currently playing with the C++
>> HelloWorld example. The version from the examples works as expected. When I
>> change the code in the client to send say_hello forever in a loop it will
>> stop after a while. Sometimes after 50 calls, sometimes after a few
>> thousand calls. I'm logging data in _sessionNotify and get a
>> sessionNotifyEvent of DOWN and UP alternating when communicaion stops. Any
>> hints on what I'm missing?
>>
>>  Greetings,
>>    Andy
>>
>
>

Re: C++ Binding - sessionNotify DOWN

Posted by Aa...@partner.bmw.de.
Hi Andy,

I’m currently using the c++ Binding, but only the Client-Side. I still got some rather minor fixes here,  but i wasn't able to contribute them yet. They are related to forced socket-disconnects, which shouldn’t be happening inside of the hello-world-example. Currently it seems to be very stable.

I guess the cpp-Binding will stay „beta" until all functionality is available, like "true asynchronous" calls – which aren’t really asynchronous in C and Java.
For more information about release-dates you have to wait for Martins response.

Greetings,
Aaron

Von: Andy Bean <an...@gmail.com>>
Antworten an: "user@etch.apache.org<ma...@etch.apache.org>" <us...@etch.apache.org>>
Datum: Donnerstag, 20. März 2014 15:32
An: "user@etch.apache.org<ma...@etch.apache.org>" <us...@etch.apache.org>>
Betreff: Re: C++ Binding - sessionNotify DOWN

Thanks for your advice. So the C++ bindings are not yet ready for use? When can I expect a stable release version of c++ bindings?

For now I may just as well use the c bindings in my code. The difference isn't that big for me. I don't like to use development versions for future production code.


On Thu, Mar 20, 2014 at 3:23 PM, <Aa...@partner.bmw.de>> wrote:
Hi Andy,

Keep in mind, that etch-cpp is still in beta.

The last time i checked, i had issues with the Server shutting down at random. Which was related to the MailboxManager.
You may want to test the C++ Client with the Java Server to see if everything with your client-loop is alright.

Today some critical Patches were added - updating your repository may help

Best Regards,
Aaron


Von: Andy Bean <an...@gmail.com>>
Antworten an: "user@etch.apache.org<ma...@etch.apache.org>" <us...@etch.apache.org>>
Datum: Donnerstag, 20. März 2014 14:59
An: "user@etch.apache.org<ma...@etch.apache.org>" <us...@etch.apache.org>>
Betreff: C++ Binding - sessionNotify DOWN

Hi there,
I'm just starting to use etch. I'm currently playing with the C++ HelloWorld example. The version from the examples works as expected. When I change the code in the client to send say_hello forever in a loop it will stop after a while. Sometimes after 50 calls, sometimes after a few thousand calls. I'm logging data in _sessionNotify and get a sessionNotifyEvent of DOWN and UP alternating when communicaion stops. Any hints on what I'm missing?

Greetings,
  Andy


Re: C++ Binding - sessionNotify DOWN

Posted by Andy Bean <an...@gmail.com>.
Thanks for your advice. So the C++ bindings are not yet ready for use? When
can I expect a stable release version of c++ bindings?

For now I may just as well use the c bindings in my code. The difference
isn't that big for me. I don't like to use development versions for future
production code.


On Thu, Mar 20, 2014 at 3:23 PM, <Aa...@partner.bmw.de> wrote:

>   Hi Andy,
>
>  Keep in mind, that etch-cpp is still in beta.
>
>  The last time i checked, i had issues with the Server shutting down at
> random. Which was related to the MailboxManager.
> You may want to test the C++ Client with the Java Server to see if
> everything with your client-loop is alright.
>
>  Today some critical Patches were added - updating your repository may
> help
>
>  Best Regards,
> Aaron
>
>
>   Von: Andy Bean <an...@gmail.com>
> Antworten an: "user@etch.apache.org" <us...@etch.apache.org>
> Datum: Donnerstag, 20. März 2014 14:59
> An: "user@etch.apache.org" <us...@etch.apache.org>
> Betreff: C++ Binding - sessionNotify DOWN
>
>    Hi there,
>  I'm just starting to use etch. I'm currently playing with the C++
> HelloWorld example. The version from the examples works as expected. When I
> change the code in the client to send say_hello forever in a loop it will
> stop after a while. Sometimes after 50 calls, sometimes after a few
> thousand calls. I'm logging data in _sessionNotify and get a
> sessionNotifyEvent of DOWN and UP alternating when communicaion stops. Any
> hints on what I'm missing?
>
>  Greetings,
>    Andy
>

Re: C++ Binding - sessionNotify DOWN

Posted by Aa...@partner.bmw.de.
Hi Andy,

Keep in mind, that etch-cpp is still in beta.

The last time i checked, i had issues with the Server shutting down at random. Which was related to the MailboxManager.
You may want to test the C++ Client with the Java Server to see if everything with your client-loop is alright.

Today some critical Patches were added - updating your repository may help

Best Regards,
Aaron


Von: Andy Bean <an...@gmail.com>>
Antworten an: "user@etch.apache.org<ma...@etch.apache.org>" <us...@etch.apache.org>>
Datum: Donnerstag, 20. März 2014 14:59
An: "user@etch.apache.org<ma...@etch.apache.org>" <us...@etch.apache.org>>
Betreff: C++ Binding - sessionNotify DOWN

Hi there,
I'm just starting to use etch. I'm currently playing with the C++ HelloWorld example. The version from the examples works as expected. When I change the code in the client to send say_hello forever in a loop it will stop after a while. Sometimes after 50 calls, sometimes after a few thousand calls. I'm logging data in _sessionNotify and get a sessionNotifyEvent of DOWN and UP alternating when communicaion stops. Any hints on what I'm missing?

Greetings,
  Andy