You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Nathaniel Cook <nv...@gmail.com> on 2012/05/01 22:03:51 UTC

Re: Discussion on thrift Exceptions

Roger,

Thank you for the help.  I got it working. I have also noticed that
several test clients are just printing results to stdout and always
exiting with return code 0. The script test.sh is deciding failure or
success of the test by the return code. Is there something else I am
missing or will these tests always say they are succeeding even if
they are not? Also is there an umbrella issue in JIRA to track the
state of these tests? I am willing to help out here where ever is
best.

Nathaniel Cook

FYI: Apparently the cpp code that uses boost unit test framework needs
at least boost 1.41. Currently the configure.ac is checking for boost
>= 1.33.1

On Mon, Apr 30, 2012 at 1:38 PM, Roger Meier <ro...@bufferoverflow.ch> wrote:
> Hi Nathaniel
>
> Just execute  this:
> ./configure
> make
> make check (builds cpp/TestServer, cpp/TestClient and others)
> cd test
> sh test.sh
>
> test.sh uses timeout to stop a server after a defined time. cpp/TestServer
> does not implement stop, that's why we do not run these tests with the *make
> check* target
>
> ;-r
>
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
>> Gesendet: Montag, 30. April 2012 19:04
>> An: user@thrift.apache.org
>> Betreff: Re: Discussion on thrift Exceptions
>>
>> I have been looking into the cross language tests and have a few
>> questions. I have svn trunk checked out and compiled and I am trying
>> to run test.sh. I get several errors because cpp/TestClient and
>> cpp/TestServer do not exist. I dug around the make file for a while to
>> see if i needed to build specific target to compile those binaries and
>> all I found was this:
>>
>>
>> # we currently do not run the testsuite, stop c++ server issue
>> # TESTS = \
>> #   $(check_PROGRAMS)
>>
>>
>> where check_PROGRAMS is a list of binaries needed to run the tests.
>> What is the reason these are commented out? Can I get around it for
>> now? Thanks.
>>
>> Nathaniel
>>
>> On Mon, Apr 30, 2012 at 9:46 AM, Nathaniel Cook <nv...@gmail.com>
>> wrote:
>> > Great thanks, I created an bug and will submit a patch soon.
>> > THRIFT-1588. I'll also look into writing a cross language test to help
>> > catch this in all languages
>> >
>> > Nathaniel Cook
>> >
>> > On Sat, Apr 28, 2012 at 2:09 PM, Roger Meier <ro...@bufferoverflow.ch>
>> wrote:
>> >> Yes, this might be a bug.
>> >>
>> >> The TException.java does nearly nothing, this is probably the reason
> why
>> the
>> >> generated classes inherit Exception.
>> >> However, java should also inherit from TException to align cross
> language
>> >> behavior.
>> >> Please, create an issue and submit a patch if possible.
>> >>
>> >> Another thing to improve cross language interoperability are cross
>> language
>> >> tests:
>> >> https://builds.apache.org/view/S-
>> Z/view/Thrift/job/Thrift/lastSuccessfulBuil
>> >> d/artifact/thrift/test/test.log
>> >> any patch to improve these tests or patches to fix issues is welcome!
>> >>
>> >> ;-r
>> >>
>> >>> -----Ursprüngliche Nachricht-----
>> >>> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
>> >>> Gesendet: Dienstag, 24. April 2012 19:41
>> >>> An: user@thrift.apache.org
>> >>> Betreff: Discussion on thrift Exceptions
>> >>>
>> >>> I have some questions about how exceptions are handled in thrift
>> because
>> >> it
>> >>> seems to be inconsistent across different languages.
>> >>>
>> >>> The way I see it there are two kinds of exceptions that should be
> thrown
>> >>> when a client makes a call:
>> >>>
>> >>> 1. The service itself throws an exception that was generated for that
>> >> service
>> >>> 2. The thrift application had an error and throws an exception
>> >>>
>> >>> It seems that the TApplicationException was designed to handle the
>> second
>> >>> case. Also all exceptions thrown should inherit one common exception
>> so
>> >>> that they can easily be caught in the client application.
>> >>>
>> >>> Currently java is different from many of the other languages. The
>> >> generated
>> >>> exceptions from java inherit from the base Exception class while in
>> >>> C++,Python,PHP, JS and possible others extend TException. Is there a
>> >>> specific reason that the Java exceptions are different?
>> >>>
>> >>> If this is a bug I will gladly add it to JIRA and submit a patch.
>> >>>
>> >>> Nathaniel Cook
>> >>>
>> >>
>> >>
>>
>
>

AW: Discussion on thrift Exceptions

Posted by Roger Meier <ro...@bufferoverflow.ch>.
Thanks Nathaniel,

Most servers just echo the request. I think the test/ThriftTest.thrift
should contain information (e.g. as comment) on the default behavior and
return values, etc.

Umbrella JIRA issue for this is:
https://issues.apache.org/jira/browse/THRIFT-847 - Test Framework
harmonization across all languages

;-r

I fixed and committed configure.ac (boost 1.41.0). => THRIFT-1589

> -----Ursprüngliche Nachricht-----
> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
> Gesendet: Dienstag, 1. Mai 2012 22:04
> An: user@thrift.apache.org
> Betreff: Re: Discussion on thrift Exceptions
> 
> Roger,
> 
> Thank you for the help.  I got it working. I have also noticed that
several test
> clients are just printing results to stdout and always exiting with return
code
> 0. The script test.sh is deciding failure or success of the test by the
return
> code. Is there something else I am missing or will these tests always say
they
> are succeeding even if they are not? Also is there an umbrella issue in
JIRA to
> track the state of these tests? I am willing to help out here where ever
is
> best.
> 
> Nathaniel Cook
> 
> FYI: Apparently the cpp code that uses boost unit test framework needs at
> least boost 1.41. Currently the configure.ac is checking for boost
> >= 1.33.1
> 
> On Mon, Apr 30, 2012 at 1:38 PM, Roger Meier <ro...@bufferoverflow.ch>
> wrote:
> > Hi Nathaniel
> >
> > Just execute  this:
> > ./configure
> > make
> > make check (builds cpp/TestServer, cpp/TestClient and others) cd test
> > sh test.sh
> >
> > test.sh uses timeout to stop a server after a defined time.
> > cpp/TestServer does not implement stop, that's why we do not run these
> > tests with the *make
> > check* target
> >
> > ;-r
> >
> >
> >
> >> -----Ursprüngliche Nachricht-----
> >> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
> >> Gesendet: Montag, 30. April 2012 19:04
> >> An: user@thrift.apache.org
> >> Betreff: Re: Discussion on thrift Exceptions
> >>
> >> I have been looking into the cross language tests and have a few
> >> questions. I have svn trunk checked out and compiled and I am trying
> >> to run test.sh. I get several errors because cpp/TestClient and
> >> cpp/TestServer do not exist. I dug around the make file for a while
> >> to see if i needed to build specific target to compile those binaries
> >> and all I found was this:
> >>
> >>
> >> # we currently do not run the testsuite, stop c++ server issue #
> >> TESTS = \ #   $(check_PROGRAMS)
> >>
> >>
> >> where check_PROGRAMS is a list of binaries needed to run the tests.
> >> What is the reason these are commented out? Can I get around it for
> >> now? Thanks.
> >>
> >> Nathaniel
> >>
> >> On Mon, Apr 30, 2012 at 9:46 AM, Nathaniel Cook <nv...@gmail.com>
> >> wrote:
> >> > Great thanks, I created an bug and will submit a patch soon.
> >> > THRIFT-1588. I'll also look into writing a cross language test to
> >> > help catch this in all languages
> >> >
> >> > Nathaniel Cook
> >> >
> >> > On Sat, Apr 28, 2012 at 2:09 PM, Roger Meier
> >> > <ro...@bufferoverflow.ch>
> >> wrote:
> >> >> Yes, this might be a bug.
> >> >>
> >> >> The TException.java does nearly nothing, this is probably the
> >> >> reason
> > why
> >> the
> >> >> generated classes inherit Exception.
> >> >> However, java should also inherit from TException to align cross
> > language
> >> >> behavior.
> >> >> Please, create an issue and submit a patch if possible.
> >> >>
> >> >> Another thing to improve cross language interoperability are cross
> >> language
> >> >> tests:
> >> >> https://builds.apache.org/view/S-
> >> Z/view/Thrift/job/Thrift/lastSuccessfulBuil
> >> >> d/artifact/thrift/test/test.log
> >> >> any patch to improve these tests or patches to fix issues is
welcome!
> >> >>
> >> >> ;-r
> >> >>
> >> >>> -----Ursprüngliche Nachricht-----
> >> >>> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
> >> >>> Gesendet: Dienstag, 24. April 2012 19:41
> >> >>> An: user@thrift.apache.org
> >> >>> Betreff: Discussion on thrift Exceptions
> >> >>>
> >> >>> I have some questions about how exceptions are handled in thrift
> >> because
> >> >> it
> >> >>> seems to be inconsistent across different languages.
> >> >>>
> >> >>> The way I see it there are two kinds of exceptions that should be
> > thrown
> >> >>> when a client makes a call:
> >> >>>
> >> >>> 1. The service itself throws an exception that was generated for
> >> >>> that
> >> >> service
> >> >>> 2. The thrift application had an error and throws an exception
> >> >>>
> >> >>> It seems that the TApplicationException was designed to handle
> >> >>> the
> >> second
> >> >>> case. Also all exceptions thrown should inherit one common
> >> >>> exception
> >> so
> >> >>> that they can easily be caught in the client application.
> >> >>>
> >> >>> Currently java is different from many of the other languages. The
> >> >> generated
> >> >>> exceptions from java inherit from the base Exception class while
> >> >>> in
> >> >>> C++,Python,PHP, JS and possible others extend TException. Is
> >> >>> C++there a
> >> >>> specific reason that the Java exceptions are different?
> >> >>>
> >> >>> If this is a bug I will gladly add it to JIRA and submit a patch.
> >> >>>
> >> >>> Nathaniel Cook
> >> >>>
> >> >>
> >> >>
> >>
> >
> >
> 



AW: Discussion on thrift Exceptions

Posted by Roger Meier <ro...@bufferoverflow.ch>.
Thanks Nathaniel,

Most servers just echo the request. I think the test/ThriftTest.thrift
should contain information (e.g. as comment) on the default behavior and
return values, etc.

Umbrella JIRA issue for this is:
https://issues.apache.org/jira/browse/THRIFT-847 - Test Framework
harmonization across all languages

;-r

I fixed and committed configure.ac (boost 1.41.0). => THRIFT-1589

> -----Ursprüngliche Nachricht-----
> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
> Gesendet: Dienstag, 1. Mai 2012 22:04
> An: user@thrift.apache.org
> Betreff: Re: Discussion on thrift Exceptions
> 
> Roger,
> 
> Thank you for the help.  I got it working. I have also noticed that
several test
> clients are just printing results to stdout and always exiting with return
code
> 0. The script test.sh is deciding failure or success of the test by the
return
> code. Is there something else I am missing or will these tests always say
they
> are succeeding even if they are not? Also is there an umbrella issue in
JIRA to
> track the state of these tests? I am willing to help out here where ever
is
> best.
> 
> Nathaniel Cook
> 
> FYI: Apparently the cpp code that uses boost unit test framework needs at
> least boost 1.41. Currently the configure.ac is checking for boost
> >= 1.33.1
> 
> On Mon, Apr 30, 2012 at 1:38 PM, Roger Meier <ro...@bufferoverflow.ch>
> wrote:
> > Hi Nathaniel
> >
> > Just execute  this:
> > ./configure
> > make
> > make check (builds cpp/TestServer, cpp/TestClient and others) cd test
> > sh test.sh
> >
> > test.sh uses timeout to stop a server after a defined time.
> > cpp/TestServer does not implement stop, that's why we do not run these
> > tests with the *make
> > check* target
> >
> > ;-r
> >
> >
> >
> >> -----Ursprüngliche Nachricht-----
> >> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
> >> Gesendet: Montag, 30. April 2012 19:04
> >> An: user@thrift.apache.org
> >> Betreff: Re: Discussion on thrift Exceptions
> >>
> >> I have been looking into the cross language tests and have a few
> >> questions. I have svn trunk checked out and compiled and I am trying
> >> to run test.sh. I get several errors because cpp/TestClient and
> >> cpp/TestServer do not exist. I dug around the make file for a while
> >> to see if i needed to build specific target to compile those binaries
> >> and all I found was this:
> >>
> >>
> >> # we currently do not run the testsuite, stop c++ server issue #
> >> TESTS = \ #   $(check_PROGRAMS)
> >>
> >>
> >> where check_PROGRAMS is a list of binaries needed to run the tests.
> >> What is the reason these are commented out? Can I get around it for
> >> now? Thanks.
> >>
> >> Nathaniel
> >>
> >> On Mon, Apr 30, 2012 at 9:46 AM, Nathaniel Cook <nv...@gmail.com>
> >> wrote:
> >> > Great thanks, I created an bug and will submit a patch soon.
> >> > THRIFT-1588. I'll also look into writing a cross language test to
> >> > help catch this in all languages
> >> >
> >> > Nathaniel Cook
> >> >
> >> > On Sat, Apr 28, 2012 at 2:09 PM, Roger Meier
> >> > <ro...@bufferoverflow.ch>
> >> wrote:
> >> >> Yes, this might be a bug.
> >> >>
> >> >> The TException.java does nearly nothing, this is probably the
> >> >> reason
> > why
> >> the
> >> >> generated classes inherit Exception.
> >> >> However, java should also inherit from TException to align cross
> > language
> >> >> behavior.
> >> >> Please, create an issue and submit a patch if possible.
> >> >>
> >> >> Another thing to improve cross language interoperability are cross
> >> language
> >> >> tests:
> >> >> https://builds.apache.org/view/S-
> >> Z/view/Thrift/job/Thrift/lastSuccessfulBuil
> >> >> d/artifact/thrift/test/test.log
> >> >> any patch to improve these tests or patches to fix issues is
welcome!
> >> >>
> >> >> ;-r
> >> >>
> >> >>> -----Ursprüngliche Nachricht-----
> >> >>> Von: Nathaniel Cook [mailto:nvcook42@gmail.com]
> >> >>> Gesendet: Dienstag, 24. April 2012 19:41
> >> >>> An: user@thrift.apache.org
> >> >>> Betreff: Discussion on thrift Exceptions
> >> >>>
> >> >>> I have some questions about how exceptions are handled in thrift
> >> because
> >> >> it
> >> >>> seems to be inconsistent across different languages.
> >> >>>
> >> >>> The way I see it there are two kinds of exceptions that should be
> > thrown
> >> >>> when a client makes a call:
> >> >>>
> >> >>> 1. The service itself throws an exception that was generated for
> >> >>> that
> >> >> service
> >> >>> 2. The thrift application had an error and throws an exception
> >> >>>
> >> >>> It seems that the TApplicationException was designed to handle
> >> >>> the
> >> second
> >> >>> case. Also all exceptions thrown should inherit one common
> >> >>> exception
> >> so
> >> >>> that they can easily be caught in the client application.
> >> >>>
> >> >>> Currently java is different from many of the other languages. The
> >> >> generated
> >> >>> exceptions from java inherit from the base Exception class while
> >> >>> in
> >> >>> C++,Python,PHP, JS and possible others extend TException. Is
> >> >>> C++there a
> >> >>> specific reason that the Java exceptions are different?
> >> >>>
> >> >>> If this is a bug I will gladly add it to JIRA and submit a patch.
> >> >>>
> >> >>> Nathaniel Cook
> >> >>>
> >> >>
> >> >>
> >>
> >
> >
>