Comment 10 for bug 461156

Revision history for this message
Thierry Carrez (ttx) wrote : Re: User data is not base64 decoded before being presented to the instance

From bug 461922 (which discusses a fix that did not make it into Ubuntu yet):
=====================================
After applying the [proposed] fix, euca-run-instances will fail depending on the user-data input. I found this while trying to provide a shell script as user data input. The bug is triggered by the --user-data parameter as well as providing user-data from a file using --user-data-file.

lindenm@dyn-220:~/cloud$ euca-run-instances -k markuskey -t c1.medium --user-data " << FO >" --kernel eki-245816A6 --ramdisk eri-05D01618 emi-092D1197
RESERVATION r-46BB06FB admin admin-default
INSTANCE i-47980954 emi-092D1197 0.0.0.0 0.0.0.0 pending markuskey 2009-10-27T12:37:51.99Z eki-245816A6 eri-05D01618

lindenm@dyn-220:~/cloud$ euca-run-instances -k markuskey -t c1.medium --user-data "<< FOO >" --kernel eki-245816A6 --ramdisk eri-05D01618 emi-092D1197
RESERVATION r-28AE050D admin admin-default
INSTANCE i-4EFD095C emi-092D1197 0.0.0.0 0.0.0.0 pending markuskey 2009-10-27T12:44:14.422Z eki-245816A6 eri-05D01618

lindenm@dyn-220:~/cloud$ euca-run-instances -k markuskey -t c1.medium --user-data " << FOO >" --kernel eki-245816A6 --ramdisk eri-05D01618 emi-092D1197
Warning: failed to parse error message from AWS: <unknown>:1:0: syntax error
EC2ResponseError: 403 Forbidden
Failure: 403 Forbidden

I understand that euca-run-instances should work with any sort of user-data regardless of it's content. ec2-run-instances works flawlessly with eucalyptus in this case.

Note the used input strings:

"<< FOO >" (no space at the beginning, works)
" << FO >" (space, two character word, works)
" << FOO >" (space at the beginning, three character word, fails)
=================================