Hi,
I've recently run into a problem where I get an error thrown while
serializing. The error is SystemError: ../Objects/dictobject.c:1562: bad
argument to internal function. After doing some googling, this shows up in
Cassandra's bugs around the time when new fields were added to thrift
objects. This would be helpful, but the object I'm serializing when this is
thrown is very shallow and contains no special objects. This is the
definition:
struct DataStorageRequest {
/* The type of request one of (get, put) */
1: required DataStorageRequestType requestType,
/* The list of keys for Get request. */
3: optional set<string> keys,
/* The map of key, values for the put request.*/
4: optional map<string, binary> keyValuesMap,
}
enum DataStorageRequestType {
GET = 1,
PUT = 2,
}
And the code that is calling it is:
request = DataStorageRequest()
request.requestType = DataStorageRequestType.PUT
request.keyValuesMap = items
...
<serialize thrift object>
I am looking into reproducing this in a test environment but it's not
seeming to be reproducible yet. Has anyone seen this behavior before and
have any suggestions as to fixes they've implemented or heard of?
Thanks,
Ned