[
https://issues.apache.org/jira/browse/AVRO-748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on AVRO-748 started by Michael A. Smith.
---------------------------------------------
> 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
> Assignee: Michael A. Smith
> 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)