Not a lot to go on... I do see that the two errors are happening in
different places.  That might be bad news for you as may mean that any
fix for 1.9.3 might not be the fix needed for 1.7.2.  But let's see
what we can find:

On Wed, Sep 2, 2015 at 3:41 PM, Eugene Romero <[email protected]> wrote:

>
> TASK: [syslog-client | Stop the syslog-ng service before upgrading to
> upstart] ***
> Traceback (most recent call last):
>   File "/usr/bin/ansible-playbook", line 324, in <module>
>     sys.exit(main(sys.argv[1:]))
>   File "/usr/bin/ansible-playbook", line 264, in main
>     pb.run()
>   File "/usr/lib/pymodules/python2.7/ansible/playbook/__init__.py", line
> 348, in run
>     if not self._run_play(play):
>   File "/usr/lib/pymodules/python2.7/ansible/playbook/__init__.py", line
> 789, in _run_play
>     if not self._run_task(play, task, False):
>   File "/usr/lib/pymodules/python2.7/ansible/playbook/__init__.py", line
> 497, in _run_task
>     results = self._run_task_internal(task, include_failed=include_failed)
>   File "/usr/lib/pymodules/python2.7/ansible/playbook/__init__.py", line
> 439, in _run_task_internal
>     results = runner.run()
>   File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line 1493,
> in run
>     results = [ self._executor(h, None) for h in hosts ]
>   File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py", line 590,
> in _executor
>     msg = str(ae)
> UnicodeEncodeError: 'ascii' codec can't encode characters in position 40-41:
> ordinal not in range(128)
>

This is an error when trying to format this exception into a string
for display.  We can probably just substitute that line like this:

- msg = str(ae)
+ from ansible.utils.unicode import to_bytes
+ msg = to_bytes(ae)

That should solve this traceback but the fact we're getting an
exception there means that something else has gone wrong... It could
be something that you're expected to be able to handle by changing
configuration in your network though, so doing this so that you can
see what the actual error is should be helpful.

If we're lucky, once you see what the underlying error is here, you
can correct something else on your network and then 1.7.2 will run for
you as well.

I'll add a patch to the stable-1.9 tree to do this as well.  Not sure
if it will make 1.9.3 or not, though.

https://github.com/ansible/ansible/commit/f80494e434d36c1845c9fb830b6bd26ebcf35a89

>> >> fatal: [******] => Traceback (most recent call last):
>> >>   File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py",
>> >> line
>> >> 561, in _executor
>> >>     exec_rc = self._executor_internal(host, new_stdin)
>> >>   File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py",
>> >> line
>> >> 666, in _executor_internal
>> >>     return self._executor_internal_inner(host, self.module_name,
>> >> self.module_args, inject, port, complex_args=complex_args)
>> >>   File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py",
>> >> line
>> >> 756, in _executor_internal_inner
>> >>     if not utils.check_conditional(cond, self.basedir, inject,
>> >> fail_on_undefined=self.error_on_undefined_vars):
>> >>   File "/usr/lib/python2.7/dist-packages/ansible/utils/__init__.py",
>> >> line
>> >> 255, in check_conditional
>> >>
>> >> UnicodeEncodeError: 'ascii' codec can't encode characters in position
>> >> 15-16: ordinal not in range(128)

1.7.2 is old and I'm not sure of some of the ramifications of making
changes in the code (in newer versions of ansible we've been moving
towards making sure that internally we handle everything as unicode
strings and only using bytes when sending things externally.  In 1.7.2
we weren't doing that so most things were likely byte strings.  jinja2
takes and returns unicode type, however, so that's likely why we have
a problem converting from what jinja2 is returning to us here.) but we
may be able to fix this with the following code change:

- original = str(conditional).replace("jinja2_compare ","")
+ tmp_conditional = to_bytes(conditional,
errors='strict').replace("jinja2_compare ","")
+ original = tmp_conditional.replace("jinja2_compare ","")

Not sure if that will just bring us another error, further down the
line, though.

-Toshio

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAG9juEpANgXM5x-tyj-Zyrf7e2a10cHqjBrbxDoiWpx3rC3w1Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to