[Starcluster] Bug VolumeCreator _request_instance

Joachim Van den Bogaert joachim at ccl.kuleuven.be
Thu Jul 8 17:54:03 EDT 2010


Hi Justin,

 

I tried to create a volume with the following command:

 

joachim at tm1:~$ starcluster createvolume 100 eu-west-1b --image-id
ami-6be5cf1f

 

>>> Using keypair sge

>>> Requesting host instance in zone eu-west-1b to attach volume to...

>>> Creating security group @sc-volumecreator...

>>> No instance in group @sc-volumecreator for zone eu-west-1b, launching
one now.

 

volume.py:186 - ERROR - exception thrown: EC2ResponseError: 400 Bad Request

<?xml version="1.0"?>

<Response>

  <Errors>

    <Error>

      <Code>InvalidParameterValue</Code>

      <Message>The requested instance type's architecture (i386) does not
match the architecture in the manifest for ami-6be5cf1f (x86_64)</Message>

    </Error>

  </Errors>

  <RequestID>4ff61a79-6a82-480e-b1dd-e26d8965eb70</RequestID>

</Response>

 

I was looking for an architecture parameter, but I couldn't find one

 

(volume.py line 32 - 56)

 

def _request_instance(self, zone):

        for i in self.security_group.instances():

            if i.state in ['pending','running'] and i.placement == zone:

                log.info("Using existing instance %s in group %s" % \

                         (i.id,self.security_group.name))

                self._instance = Node(i, self._key_location, 'vol_host')

                break

        if not self._instance:

            log.info("No instance in group %s for zone %s, launching one
now." % \

                     (self.security_group.name, zone))

            self._resv = self._ec2.run_instances(image_id=self._image_id,

                instance_type='m1.small',

                min_count=1, max_count=1,

                security_groups=[self.security_group.name],

                key_name=self._keypair,

                placement=zone)

            instance = self._resv.instances[0]

            self._instance = Node(instance, self._key_location, 'vol_host')

        s = Spinner()

        log.info("Waiting for instance %s to come up..." %
self._instance.id)

        s.start()

        while not self._instance.is_up():

            time.sleep(15)

        s.stop()

        return self._instance

 

Apparently the code in line 43 

 

instance_type='m1.small'

 

throws an error if you try to create a volume with a 64-bit StarCluster AMI,
since you can't launch an m1.small with 64 bit images.

 

I am in the eu zone, so I can't use the AMI defined in
image_id=static.BASE_AMI_32.

With the 64-bit image I use instead, an extra parameter could prevent this
error

 

After I changed the line into 

 

instance_type='m1.large'

 

the volume was created successfully.

 

 

 

Kind regards,

Joachim

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/starcluster/attachments/20100708/f76d4995/attachment.htm


More information about the StarCluster mailing list