[Starcluster] Bug VolumeCreator _request_instance
 
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 _at_sc-volumecreator...
>>> No instance in group _at_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
 
 
 
Received on Thu Jul 08 2010 - 17:54:05 EDT
This archive was generated by
hypermail 2.3.0.