Cool thanks Chris I'll check that out. I'll make sure to update pywinrm, on one control in pretty sure i don't have that version because I didn't specify the repo to take it from. The other is probably a month old, and i was getting some 500s, SOs, and out of memories.
And should i just go ahead and turn the -v's up to 11? :-D that should make the Spinal Tap logo show up instead of the cow! On Aug 28, 2014 9:49 PM, "Chris Church" <flyingfr...@gmail.com> wrote: > Damon -- I've been getting occasional stack overflow and out of memory > exceptions when testing against Server 2008 R2 without updates. See > https://github.com/ansible/ansible/pull/8345#issuecomment-52074837 for a > hotfix that might work. > > Running with -vvvvv when using winrm provides even more output, including > all of stderr if something goes wrong, whereas -vvvv only displays a > truncated version (e.g. WINRM RESULT <Response code 0, out "....", err > "......">). > > Make sure you're running the latest pywinrm (pip install -U > http://github.com/diyan/pywinrm/archive/master.zip#egg=pywinrm). I'd > submitted some fixes earlier this week related to timeouts; previously you > would get 500 errors for any command taking longer than 60 seconds. > > > > On Thu, Aug 28, 2014 at 6:06 PM, Damon Overboe <damon.over...@gmail.com> > wrote: > >> Well I'm consistently getting StackOverflows now too, so I think the two >> might be related; some kind of infinite loop that sometimes runs out of >> memory before it can overflow the stack. >> >> The VMs should have plenty of memory, but, then again some of the VMs we >> have are a bit laggy, so I'm trying some other servers too. >> >> I'm a bit fried though, so I'm probably going to put this on hold for >> tonight, I'll hit it clean tomorrow. >> >> >> I have the latest from your win_package branch, plus the patch to >> powershell. I also have a clean checkout from the ansible devel branch, and >> I'm seeing it in both. >> >> To be safe, I think tomorrow I'll do clean checkouts of both again, just >> to make sure I haven't hosed something on my end. >> >> >> >> >> On Thursday, August 28, 2014 4:05:36 PM UTC-5, Trond Hindenes wrote: >> >>> Out of memory? For real? I havent seen that since the 90's. Put some >>> more ram in your box? >>> >>> On Thursday, August 28, 2014 7:38:24 PM UTC+2, Damon Overboe wrote: >>> >>> "seen it without that as well" = seen the StackOverflow on the mainline >>> dev branch, using win_msi and the powershell.ps1 from the mainline as well. >>> >>> On Thursday, August 28, 2014 12:26:44 PM UTC-5, Damon Overboe wrote: >>> >>> Cool I just hit the StackOverflow again. >>> >>> I used win_get_url to download, and then win_package to install. I am >>> using the updated powershell.ps1 script from 8759, but I have seen it >>> without that as well. >>> >>> failed: [clone] => {"failed": true, "parsed": false} >>> invalid output was: >>> Process is terminated due to StackOverflowException. >>> >>> >>> FATAL: all hosts have already failed -- aborting >>> ____________ >>> < PLAY RECAP > >>> ------------ >>> \ ^__^ >>> \ (oo)\_______ >>> (__)\ )\/\ >>> ||----w | >>> || || >>> >>> >>> to retry, use: --limit @/home/damon/slaves-svn-package.retry >>> >>> clone : ok=2 changed=1 unreachable=0 failed=1 >>> >>> >>> The only two files in the temp directory on the remote are the >>> `arguments` file and `powershell.ps1`. Here are the contents of the args >>> file: >>> >>> {"arguments": "ADDLOCAL=CLI", "creates": "C:\\Program >>> Files\\TortoiseSVN", "ensure": "present", "name": "TortoiseSVN-1.7.15", >>> "path": "E:\\.installs\\tortoise-1.7.msi", "product_id": >>> "{087D2CC7-C1FA-45EC-9FC1-B06CA4A073A0}"} >>> >>> I'm going to try changing up the values a bit and see if it's bad >>> arguments going into it. Here is the playbook (currently), and I'm also >>> going to try rerunning with -vvvv >>> >>> - name: get svn client - version 1.7 >>> win_get_url: >>> url: 'http://sourceforge.net/projects/tortoisesvn/files/1. >>> 7.15/Application/Tor$ >>> dest: 'E:\.installs\tortoise-1.7.msi' >>> >>> - name: ensure svn is version 1.7 >>> win_package: >>> path='E:\.installs\tortoise-1.7.msi' >>> name='TortoiseSVN-1.7.15' >>> product_id='{087D2CC7-C1FA-45EC-9FC1-B06CA4A073A0}' >>> creates='C:\Program Files\TortoiseSVN' >>> ensure=present >>> arguments="ADDLOCAL=CLI" >>> >>> >>> >>> >>> On Thursday, August 28, 2014 10:59:29 AM UTC-5, Damon Overboe wrote: >>> >>> I changed it to run win_get_url to download the package so I could >>> rename the file (using 'dest'). >>> >>> And then, I hit a nice System.OutOfMemoryException. This server isn't >>> that beefy and it's wanting to run updates, so it could be that... but I'm >>> going to try to grab the remote files anyway. >>> >>> I wasn't running -vvvv, here's what I saw: >>> >>> failed: [clone] => {"failed": true, "parsed": false} >>> invalid output was: Exception of type 'System.OutOfMemoryException' was >>> thrown. >>> At C:\Users\dummy\AppData\Local\Temp\ansible-tmp-1409241114. >>> 17-71859971213315 >>> \win_package.ps1:1395 char:5 >>> + if ($testdscresult -eq $true) >>> + ~~~~~~~~~~~~~~~~~~~~~~~~ >>> + CategoryInfo : OperationStopped: (:) [], >>> OutOfMemoryException >>> + FullyQualifiedErrorId : System.OutOfMemoryException >>> >>> >>> >>> FATAL: all hosts have already failed -- aborting >>> ____________ >>> < PLAY RECAP > >>> ------------ >>> \ ^__^ >>> \ (oo)\_______ >>> (__)\ )\/\ >>> ||----w | >>> || || >>> >>> >>> to retry, use: --limit @/home/damon/slaves-svn-package.retry >>> >>> clone : ok=2 changed=1 unreachable=0 failed=1 >>> >>> >>> >>> >>> On Thursday, August 28, 2014 10:44:52 AM UTC-5, Damon Overboe wrote: >>> >>> OK I'm testing it out. >>> >>> First, I love that you can pass arguments. I have been automating the >>> Jenkins clients; I'm adding a specific version of SVN, and with the win_msi >>> installer, I couldn't figure out how to pass arguments to it so it would >>> install the Command Line Interface. >>> >>> With the win_package, that is super easy, so I was happy to see that! >>> >>> >>> But I ran into my first situation; if you give it a URL and the download >>> file doesn't include the extension, it will fail to install. Test out this >>> url: >>> >>> http://sourceforge.net/projects/tortoisesvn/files/1. >>> 7.15/Application/TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi/download >>> >>> Running a plain wget, `wget http://sourceforge.net/ >>> projects/tortoisesvn/files/1.7.15/Application/TortoiseSVN- >>> 1.7.15.25753-x64-svn-1.7.18.msi/download` >>> <http://sourceforge.net/projects/tortoisesvn/files/1.7.15/Application/TortoiseSVN-1.7.15.25753-x64-svn-1.7.18.msi/download> >>> will download the installer as "download" so I'm assuming the scripts are >>> doing the same. >>> >>> So, it probably needs an option to specify the output file, much like >>> you would with `wget -o` or `wget --output-file`. >>> >>> >>> >>> >>> >>> >>> >>> On Tuesday, August 26, 2014 6:25:56 PM UTC-5, Damon Overboe wrote: >>> >>> Awesome I'll give that as shot. >>> >>> The biggest thing I wanted to know was how to catch the output so I can >>> at least try to debug it or ask for help, so that'll be huge. >>> >>> I'm off for the night tonight but I'll be testing out win_package >>> tomorrow for sure. I'll let you know how it goes. >>> >>> On Tuesday, August 26, 2014 5:53:24 PM UTC-5, Trond Hindenes wrote: >>> >>> Nice, >>> So, Chris just tipped me about this ansible.cfg setting: >>> [defaults] >>> keep_remote_files = 1 >>> >>> Stick that in your /ansible/etc/ansible.cfg and re-run your playbook >>> with -vvv >>> >>> All those temp paths Ansible uses for powershell files will now be left >>> on your windows system. Each folder basically has a script file (the >>> module) and an arguments file. That should do wonders for debugging windows >>> modules (it would still require some PowerShell proficiency tho) >>> >>> >>> >>> >>> On Wednesday, August 27, 2014 12:48:36 AM UTC+2, Damon Overboe wrote: >>> >>> There it is, finally!!! >>> >>> This is still using the win_msi, I'll switch to the win_package now. >>> >>> I'm not sure why but I just wasn't going to be happy until I broke it. >>> >>> >>> >>> changed: [node1.domain.com] >>> Traceback (most recent call last): >>> File "/home/damon/src/ansible/lib/ansible/runner/connection_ >>> plugins/winrm.py", line 149, in exec_command >>> result = self._winrm_exec(cmd_parts[0], cmd_parts[1:], from_exec= >>> True) >>> File "/home/damon/src/ansible/lib/ansible/runner/connection_ >>> plugins/winrm.py", line 118, in _winrm_exec >>> response = Response(self.protocol.get_command_output(self.shell_id, >>> command_id)) >>> File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line >>> 277, in get_command_output >>> self._raw_get_command_output(shell_id, command_id) >>> File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line >>> 293, in _raw_get_command_output >>> rs = self.send_message(xmltodict.unparse(rq)) >>> File "/usr/local/lib/python2.7/dist-packages/winrm/protocol.py", line >>> 173, in send_message >>> return self.transport.send_message(message) >>> File "/usr/local/lib/python2.7/dist-packages/winrm/transport.py", >>> line 90, in send_message >>> raise WinRMTransportError(error_message) >>> WinRMTransportError: Bad HTTP response returned from server. Code 500 >>> fatal: [node3.domain.com] => failed to exec cmd PowerShell -NoProfile - >>> NonInteractive -EncodedCommand KABOAGUAdwAtAEkAdABlAG0AIAAtAF >>> QAeQBwAGUAIABEAGkAcgBlAGMAdABvAHIAeQAgAC0AUABhAHQAaAAgACQAZQ >>> BuAHYAOgB0AGUAbQBwACAALQBOAGEAbQBlACAAIgBhAG4AcwBpAGIAbABlAC >>> 0AdABtAHAALQAxADQAMAA5ADAAOQAyADkAOAA2AC4ANgAtADIANwA2ADMAMA >>> A3ADAAMAA2ADUAMgA0ADEAOAAiACkALgBGAHUAbABsAE4AYQBtAGUAIAB8AC >>> AAVwByAGkAdABlAC0ASABvAHMAdAAgAC0AUwBlAHAAYQByAGEAdABvAHIAIAAnACcAOwA= >>> _________________________________ >>> < TASK: ensure svn is version 1.7 > >>> --------------------------------- >>> \ ^__^ >>> \ (oo)\_______ >>> (__)\ )\/\ >>> ||----w | >>> || || >>> >>> >>> failed: [node1.domain.com] => {"failed": true, "parsed": false} >>> invalid output was: >>> Process is terminated due to StackOverflowException. >>> >>> >>> FATAL: all hosts have already failed -- aborting >>> ____________ >>> < PLAY RECAP > >>> ------------ >>> \ ^__^ >>> \ (oo)\_______ >>> (__)\ )\/\ >>> ||----w | >>> || || >>> >>> >>> to retry, use: --limit @/home/damon/slaves-svn-cleanup.retry >>> >>> node1.domain.com : ok=1 changed=1 unreachable=0 failed=1 >>> node3.domain.com : ok=0 changed=0 unreachable=1 failed=0 >>> >>> >>> >>> On Tuesday, August 26, 2014 5:40:07 PM UTC-5, Trond Hindenes wrote: >>> >>> This thread is fine. I haven't submitted a PR for win_package just yet. >>> >>> On Wednesday, August 27, 2014 12:36:19 AM UTC+2, Damon Overboe wrote: >>> >>> That's exactly what I did to get your changes into the mainline, so I'm >>> doing that again. >>> >>> You want me to post feedback (if I have any) in this thread or on the >>> pull request? >>> >>> On Tuesday, August 26, 2014 5:25:46 PM UTC-5, Trond Hindenes wrote: >>> >>> Me too. I would just grab the file manually and stick it in your on fork >>> for now: >>> https://raw.githubusercontent.com/trondhindenes/ansible/win_ >>> setup_json_depth/lib/ansible/module_utils/powershell.ps1 >>> >>> My repo has a branch for each change/PR i've submitted, so you're >>> probably better off forking the original ansible code and just come up with >>> your own way of managing the various changes you put in it. I guess I >>> should try and rebase everything back into my devel branch, but it's that's >>> not the case right now. >>> >>> On Wednesday, August 27, 2014 12:20:37 AM UTC+2, Damon Overboe wrote: >>> >>> I'm still somewhat of a git noob; >>> >>> I've cloned your repo, but I'm not sure how to get the pull request from >>> 8759 into that clone... >>> >>> I'm guessing there's a command to merge, any pointers? >>> >>> On Tuesday, August 26, 2014 5:15:45 PM UTC-5, Trond Hindenes wrote: >>> >>> Here you go sir: >>> https://github.com/trondhindenes/ansible/tree/win_package >>> >>> Note that I'm using the updated helper functions from the main >>> powershell.ps1 script, so you'll need to grab that as well. You can grab if >>> from this PR: >>> https://github.com/ansible/ansible/pull/8759 (the powershell.ps1 file >>> goes in /lib/ansible/module_utils in your ansible directory structure) >>> >>> On Wednesday, August 27, 2014 12:07:09 AM UTC+2, Trond Hindenes wrote: >>> >>> Cool, I'm writing up a short doc and putting it on a branch in my >>> ansible fork right now. Will send you links and stuffs in a couple of >>> minutes. >>> >>> On Wednesday, August 27, 2014 12:00:08 AM UTC+2, Damon Overboe wrote: >>> >>> Yah that'd be great. I'll happily test it out if you like. >>> >>> I'm only targeting Svr 12s, and just using it right now to set up new >>> build agent nodes. I want to do a lot more with it but figured that would >>> be a good place to start. >>> >>> On Tuesday, August 26, 2014 4:55:53 PM UTC-5, Trond Hindenes wrote: >>> >>> BTW, i have a brand spankin new win_package module coming up which will >>> handle not only msis but all kinds of installs, and also supports >>> auto-downloading source files from a url so that you don't need to >>> win_get_url first. I'm waiting for some improvements to the powershell >>> helper scripts to be merged before i PR that modu >>> >>> ... >> >> -- >> 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 ansible-project+unsubscr...@googlegroups.com. >> To post to this group, send email to ansible-project@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/4603448b-a24a-49e8-8d8a-b1bb9770ad8e%40googlegroups.com >> <https://groups.google.com/d/msgid/ansible-project/4603448b-a24a-49e8-8d8a-b1bb9770ad8e%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Ansible Project" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/ansible-project/nve1NRr2Vx4/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > ansible-project+unsubscr...@googlegroups.com. > To post to this group, send email to ansible-project@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/CAH%2BKTJ7tV69tbEnZefFoAPPFn3SYhPT96YXtqOrLA0jtJH0Agw%40mail.gmail.com > <https://groups.google.com/d/msgid/ansible-project/CAH%2BKTJ7tV69tbEnZefFoAPPFn3SYhPT96YXtqOrLA0jtJH0Agw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAGLAh-oN%2BHnnozSuC5wJwba7ZwJHgCayzV4A0r%3DAsXEp_AfhMg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.