[ 
https://issues.apache.org/jira/browse/AURORA-654?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14104572#comment-14104572
 ] 

Josh Adams edited comment on AURORA-654 at 8/20/14 9:27 PM:
------------------------------------------------------------

I think you were onto something regarding {{sys.path}}. Hopefully I discovered 
something to support that suspicion just now. The old/working ttypes comes from 
the wheel in {{~/.pex/install}}

{noformat}
>>> import gen.apache.aurora.api.ttypes
>>> gen.apache.aurora.api.ttypes
<module 'gen.apache.aurora.api.ttypes' from 
'/foursquare/josh/.pex/install/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl.76707fc40c12ed46c8b6619914efd2cf14663ff4/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl/gen/apache/aurora/api/ttypes.py'>
>>>
{noformat}

Whereas the new one comes from within the generated pex's lib tree:

{noformat}
>>> import gen.apache.aurora.api.ttypes
>>> gen.apache.aurora.api.ttypes
<module 'gen.apache.aurora.api.ttypes' from 
'/foursquare/josh/loko/stagingjosh/infrastructure-aurora-base/installed/1aa579b/bin/aurora_client.pex/gen/apache/aurora/api/ttypes.pyc'>
>>>
{noformat}

Doing a {{diff}} on the {{ttypes.py}} from within the new {{aurora_client.pex}} 
and its respective {{~/.pex/install/}} version of the Thrift wheel's 
{{ttypes.py}} shows a bunch of changes. Here's the diff: 
https://gist.github.com/waxcorp/f17097f7d8f208430309

*edit* I've confirmed that the {{~/.pex/install}} version of {{ttypes.py}} 
installed by the new {{aurora_client.pex}} works as before, so I believe the 
embedded {{gen/apache/aurora/api/ttypes.py*}} files are to blame.

{noformat}
[josh@asgard api]$ pwd
/foursquare/josh/.pex/install/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl.76707fc40c12ed46c8b6619914efd2cf14663ff4/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl/gen/apache/aurora/api
[josh@asgard api]$ 
PYTHONPATH=/foursquare/josh/.pex/install/thrift-0.9.1-cp27-none-linux_x86_64.whl.5554a00a49bd3c9d0ed12679fbf9a9810c343ed1/thrift-0.9.1-cp27-none-linux_x86_64.whl/
 PYTHONSTARTUP= python2.7
Python 2.7.6 (default, Apr  2 2014, 22:16:48)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ttypes
>>> ttypes
<module 'ttypes' from 'ttypes.pyc'>
>>> constraint = ttypes.Constraint()
>>> result = set()
>>> result.add(constraint)
>>> import thrift
>>> thrift
<module 'thrift' from 
'/foursquare/josh/.pex/install/thrift-0.9.1-cp27-none-linux_x86_64.whl.5554a00a49bd3c9d0ed12679fbf9a9810c343ed1/thrift-0.9.1-cp27-none-linux_x86_64.whl/thrift/__init__.pyc'>
>>>
{noformat}

Best,
Josh


was (Author: waxcorp):
I think you were onto something regarding {{sys.path}}. Hopefully I discovered 
something to support that suspicion just now. The old/working ttypes comes from 
the wheel in {{~/.pex/install}}

{noformat}
>>> import gen.apache.aurora.api.ttypes
>>> gen.apache.aurora.api.ttypes
<module 'gen.apache.aurora.api.ttypes' from 
'/foursquare/josh/.pex/install/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl.76707fc40c12ed46c8b6619914efd2cf14663ff4/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl/gen/apache/aurora/api/ttypes.py'>
>>>
{noformat}

Whereas the new one comes from within the generated pex's lib tree:

{noformat}
>>> import gen.apache.aurora.api.ttypes
>>> gen.apache.aurora.api.ttypes
<module 'gen.apache.aurora.api.ttypes' from 
'/foursquare/josh/loko/stagingjosh/infrastructure-aurora-base/installed/1aa579b/bin/aurora_client.pex/gen/apache/aurora/api/ttypes.pyc'>
>>>
{noformat}

Doing a {{diff}} on the {{ttypes.py}} from within the new {{aurora_client.pex}} 
and its respective {{~/.pex/install/}} version of the Thrift wheel's 
{{ttypes.py}} shows a bunch of changes. Here's the diff: 
https://gist.github.com/waxcorp/f17097f7d8f208430309

*edit* I've confirmed that the {{~/.pex/install}} version of {{ttypes.py}} 
installed by the new {{aurora_client.pex}} works as before, so I believe the 
embedded {{gen/apache/aurora/api/ttypes.py*}} files are to blame.

{noformat}
[josh@asgard api]$ pwd
/foursquare/josh/.pex/install/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl.76707fc40c12ed46c8b6619914efd2cf14663ff4/src.main.thrift.org.apache.aurora.gen.py_thrift_c432d4bc-0.0.0-py2-none-any.whl/gen/apache/aurora/api
[josh@asgard api]$ 
PYTHONPATH=/foursquare/josh/.pex/install/thrift-0.9.1-cp27-none-linux_x86_64.whl.5554a00a49bd3c9d0ed12679fbf9a9810c343ed1/thrift-0.9.1-cp27-none-linux_x86_64.whl/
 PYTHONSTARTUP= python2.7                                                       
                                                                                
                                                             Python 2.7.6 
(default, Apr  2 2014, 22:16:48)                                                
                                                                                
                            [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2    
                                                                                
                                                                     Type 
"help", "copyright", "credits" or "license" for more information.
>>> import ttypes
>>> ttypes
<module 'ttypes' from 'ttypes.pyc'>
>>> constraint = ttypes.Constraint()
>>> result = set()
>>> result.add(constraint)
>>> import thrift
>>> thrift
<module 'thrift' from 
'/foursquare/josh/.pex/install/thrift-0.9.1-cp27-none-linux_x86_64.whl.5554a00a49bd3c9d0ed12679fbf9a9810c343ed1/thrift-0.9.1-cp27-none-linux_x86_64.whl/thrift/__init__.pyc'>
>>>
{noformat}

Best,
Josh

> "Could not deserialize AssignedTask" from thermos_executor.pex
> --------------------------------------------------------------
>
>                 Key: AURORA-654
>                 URL: https://issues.apache.org/jira/browse/AURORA-654
>             Project: Aurora
>          Issue Type: Bug
>          Components: Executor
>         Environment: CentOS 6.4 on x86_64 hardware
>            Reporter: Josh Adams
>
> We're seeing the following error when attempting to run a new task after 
> upgrading to incubator-aurora@8d98542 and mesos@dc0b7bf (0.19.1-rc1):
> {code}
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I0813 00:57:40.229567 10732 exec.cpp:131] Version: 0.19.1
> I0813 00:57:40.231796 10761 exec.cpp:205] Executor registered on slave
> 20140812-235601-84869386-5050-469-0
> FATAL] Could not deserialize AssignedTask
> FATAL] Traceback (most recent call last):
>   File "apache/aurora/executor/aurora_executor.py", line 234, in validate_task
>     assigned_task = assigned_task_from_mesos_task(task)
>   File "apache/aurora/executor/common/task_info.py", line 32, in
> assigned_task_from_mesos_task
>     assigned_task = thrift_deserialize(AssignedTask(), task.data)
>   File 
> "/root/.pex/install/thrift-0.9.1-cp27-none-linux_x86_64.whl.5554a00a49bd3c9d0ed12679fbf9a9810c343ed1/thrift-0.9.1-cp27-none-linux_x86_64.whl/thrift/TSerialization.py",
> line 37, in deserialize
>     base.read(protocol)
>   File "gen/apache/aurora/api/ttypes.py", line 2841, in read
>     self.task.read(iprot)
>   File "gen/apache/aurora/api/ttypes.py", line 1678, in read
>     self.constraints.add(_elem26)
> TypeError: unhashable instance
> {code}
> We are upgrading to get the Announcer implementation working. Here's a simple 
> task config that has no {{constraints}} and still produces the error (we 
> haven't been able to generate a {{.aurora}} config that doesn't result in 
> this exception.
> {code}
> drag_proc_0 = Process(
>   name = 'drag_proc_0',
>   cmdline = """
>     while sleep 1; do date; done
>   """
> )
> drag_task = Task(
>   processes = [drag_proc_0],
>   resources = Resources(cpu = 0.5, ram = 1*GB, disk = 1*GB)
> )
> jobs = [
>   Service(
>     task = drag_task,
>     cluster = 'staging',
>     role = 'produser',
>     environment = 'staging',
>     name = 'drag',
>     instances = 1,
>     update_config = UpdateConfig(batch_size = 1, watch_secs = 345, 
> rollback_on_failure = False, max_per_shard_failures = 3),
>   )
> ]
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to