You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Gen TANG (JIRA)" <ji...@apache.org> on 2015/01/08 22:37:34 UTC

[jira] [Commented] (SPARK-4983) Tag EC2 instances in the same call that launches them

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

Gen TANG commented on SPARK-4983:
---------------------------------

By boto, we can only tag instance after it launched, to my best knowledge. Therefore, I think that we can resolve this problem by using try except else statement. If you want, I can try to do this.
 

> Tag EC2 instances in the same call that launches them
> -----------------------------------------------------
>
>                 Key: SPARK-4983
>                 URL: https://issues.apache.org/jira/browse/SPARK-4983
>             Project: Spark
>          Issue Type: Bug
>          Components: EC2
>    Affects Versions: 1.2.0
>            Reporter: Nicholas Chammas
>            Priority: Minor
>              Labels: starter
>
> We launch EC2 instances in {{spark-ec2}} and then immediately tag them in a separate boto call. Sometimes, EC2 doesn't get enough time to propagate information about the just-launched instances, so when we go to tag them we get a server that doesn't know about them yet.
> This yields the following type of error:
> {code}
> Launching instances...
> Launched 1 slaves in us-east-1b, regid = r-cf780321
> Launched master in us-east-1b, regid = r-da7e0534
> Traceback (most recent call last):
>   File "./ec2/spark_ec2.py", line 1284, in <module>
>     main()
>   File "./ec2/spark_ec2.py", line 1276, in main
>     real_main()
>   File "./ec2/spark_ec2.py", line 1122, in real_main
>     (master_nodes, slave_nodes) = launch_cluster(conn, opts, cluster_name)
>   File "./ec2/spark_ec2.py", line 646, in launch_cluster
>     value='{cn}-master-{iid}'.format(cn=cluster_name, iid=master.id))
>   File ".../spark/ec2/lib/boto-2.34.0/boto/ec2/ec2object.py", line 80, in add_tag
>     self.add_tags({key: value}, dry_run)
>   File ".../spark/ec2/lib/boto-2.34.0/boto/ec2/ec2object.py", line 97, in add_tags
>     dry_run=dry_run
>   File ".../spark/ec2/lib/boto-2.34.0/boto/ec2/connection.py", line 4202, in create_tags
>     return self.get_status('CreateTags', params, verb='POST')
>   File ".../spark/ec2/lib/boto-2.34.0/boto/connection.py", line 1223, in get_status
>     raise self.ResponseError(response.status, response.reason, body)
> boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
> <?xml version="1.0" encoding="UTF-8"?>
> <Response><Errors><Error><Code>InvalidInstanceID.NotFound</Code><Message>The instance ID 'i-585219a6' does not exist</Message></Error></Errors><RequestID>b9f1ad6e-59b9-47fd-a693-527be1f779eb</RequestID></Response>
> {code}
> The solution is to tag the instances in the same call that launches them, or less desirably, tag the instances after some short wait.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org