[ 
https://issues.apache.org/jira/browse/AVRO-748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael A. Smith updated AVRO-748:
----------------------------------
    Description: 
Here's a trivial test case:

{code:python}
schema = """
{
  "namespace": "test",
  "protocol": "test",
  "types": [],
  "messages": {"test_method": {
               "request": [],
               "response": "string"}}
}
"""

from avro.protocol import parse
protocol = parse(schema)
assert protocol.messages['test_method'].errors is not None
{code}

This may be a bit white-box; the problem actually manifests in 
avro.ipc.Responder.respond (line 338), when making a call to write_error with 
the "writers_schema" being "local_message.errors". local_message.errors is 
None, and it blows up while validating the schema.

This only seems to happen when there is *no* errors field in the message; if an 
errors field is provided, it still doesn't explicitly include "string" in the 
"errors" field, but it does seem to allow the error message to be passed back. 
So maybe this is an error in the protocol parser, or maybe it's an error in the 
code that actually tries to write the error response.

  was:
Here's a trivial test case:


schema = """
{
  "namespace": "test",
  "protocol": "test",
  "types": [],
  "messages": {"test_method": {
               "request": [],
               "response": "string"}}
}
"""

from avro.protocol import parse
protocol = parse(schema)
assert protocol.messages['test_method'].errors is not None


This may be a bit white-box; the problem actually manifests in 
avro.ipc.Responder.respond (line 338), when making a call to write_error with 
the "writers_schema" being "local_message.errors". local_message.errors is 
None, and it blows up while validating the schema.

This only seems to happen when there is *no* errors field in the message; if an 
errors field is provided, it still doesn't explicitly include "string" in the 
"errors" field, but it does seem to allow the error message to be passed back. 
So maybe this is an error in the protocol parser, or maybe it's an error in the 
code that actually tries to write the error response.


> Python library does not include the implicit 'string' error type for messages
> -----------------------------------------------------------------------------
>
>                 Key: AVRO-748
>                 URL: https://issues.apache.org/jira/browse/AVRO-748
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: python
>    Affects Versions: 1.4.1
>         Environment: Ubuntu, Python 2.6.6
>            Reporter: Christopher Armstrong
>            Priority: Major
>
> Here's a trivial test case:
> {code:python}
> schema = """
> {
>   "namespace": "test",
>   "protocol": "test",
>   "types": [],
>   "messages": {"test_method": {
>                "request": [],
>                "response": "string"}}
> }
> """
> from avro.protocol import parse
> protocol = parse(schema)
> assert protocol.messages['test_method'].errors is not None
> {code}
> This may be a bit white-box; the problem actually manifests in 
> avro.ipc.Responder.respond (line 338), when making a call to write_error with 
> the "writers_schema" being "local_message.errors". local_message.errors is 
> None, and it blows up while validating the schema.
> This only seems to happen when there is *no* errors field in the message; if 
> an errors field is provided, it still doesn't explicitly include "string" in 
> the "errors" field, but it does seem to allow the error message to be passed 
> back. So maybe this is an error in the protocol parser, or maybe it's an 
> error in the code that actually tries to write the error response.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to