Hi Daniel,

I am still working on reproducing this, but have not been able to yet.
My (generic) advice for now would be to update to the latest jclouds (1.8.0) 
and let us know if this happens again.
I will let you know if we make some progress reproducing this.
Also, if I remember correctly, the group is usually based on how the server is 
named.

-Zack
________________________________________
From: Daniel Widdis [[email protected]]
Sent: Monday, August 11, 2014 1:40 PM
To: [email protected]
Subject: Re: IllegalArgumentException when deleting node on Rackspace

Zack,

I've tried to reproduce this multiple ways, but was unable to do so
(yet), but I have a theory about what happened (which is difficult to
intentionally replicate).

Reviewing the stack trace, I noticed that the exception is occurring
after the actual deletion of the node, in a subsequent call to
cleanUpIncidentalResourcesOfDeadNodes(), which apparently attempts to
delete orphaned groups.  I don't understand enough of the concept of a
"group" to know with certainty what's going on here, and my reading of
Rackspace documentation only implies "security groups" which I don't
have; I do, however, utilize their "RackConnect" system to connect my
cloud nodes to a managed server and it is possible that setup is
involved somehow.  After my nodes are created, they are subsequently
switched over (by Rackspace using their scripts) to RackConnect.

I don't know what resources were being cleaned up, but it may be a
possibility that the following factors contributed:
- I had previously created a server named "Cloud-Server-35" which failed
to fully create (this happens about 1% of the time) and never got
switched over to the RackConnect group.
- I had issued the "delete" server command on the failed server, but the
node may have still been hanging around in the system; or at least, not
fully deleted by the time the second server got created.
- I had created another server named "Cloud-Server-35" to replace the
failed one.  This one operated normally and was switched over to
RackConnect.
- When I went to delete the second server by IP, jclouds found leftover
"resources" associated with the original server, and attempted to clean
them up.
- Somehow in this cleanup, the code/API detected duplicate names/groups,
and attempted to rename one of the groups, encountering the exception
because the group name was mixed case.

Dan


On 8/11/14, 6:45 AM, Zack Shoylev wrote:
> Hi Daniel,
>
> Can this issue be reproduced consistently? Does the number of servers matter?
>
>  From your stack traces it seems this code is called
> https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/predicates/validators/DnsNameValidator.java#L56
>   so it could be some kind of weird interaction.
>
> ________________________________________
> From: Daniel Widdis [[email protected]]
> Sent: Saturday, August 09, 2014 1:57 PM
> To:[email protected]
> Subject: IllegalArgumentException when deleting node on Rackspace
>
> This issue may be related, or may be completely different than Sunil
> Shah's recent thread on 2-letter DNS names when creating GCE nodes, but
> ultimately boils down to the same exception at the same line of code.  I
> debated whether to reply to that thread or start a new one, and elected
> the latter.  I will take a look at JIRA where the issues may possibly be
> combined.
>
> My specific symptoms/situation:
> - jclouds 1.7.3
> - I had manually created (through website API) several Rackspace cloud
> servers, with the names Cloud-Server-30, Cloud-Server-31, etc.  These
> were the default names provided on the website and I chose (by virtue of
> laziness) to leave them as they were.
> - My code deletes these servers when it is done using them.  I do this
> by passing the private IP address of the server to this code:
>         nodes = computeService
>             .destroyNodesMatching(new Predicate<NodeMetadata>() {
>               @Override
>               public boolean apply(final NodeMetadata input) {
>                 return input.getPrivateAddresses().contains(ipAddr);
>               }
>             });
>
> - Note that my code never uses the server name, nor is even aware of
> it.  I simply want to tell Rackspace, "delete the server with this IP
> address."
> - This code worked fine for 34 out of 35 servers, 15 of which had
> Cloud-Server-## names.  However, on the very last server (named
> Cloud-Server-35), passing the String ipAddr = "10.208.232.65" , I got
> this exception:
>      java.lang.IllegalArgumentException: Object 'Cloud-Server' doesn't
> match dns naming constraints. Reason: Should be only lowercase.
> - Full stack trace here:http://pastebin.com/PKuMqkqz  (ServerDeletor:110
> is the destroyNodesMatching() call listed above.)
>

Reply via email to