I was being a bit silly and tried to add an isolate to a Otter Script. Weirdly I got an error - this function is deprecated - but only when I ran it, not in the GUI. Any chance you could look at removing this from the GUI when you get a quiet moment?
Posts made by ForgotMyUsername
-
OtterScript and Isolate.
-
RE: Otter and High Memory Usage
@atripp my apologies. I figured this out. It turns out that I was returning objects during the configure which completely screwed it up. That isolate is a life saver. I'm on execution 118000 and the errors have gone. What did we do before Otter. Thank you to you all.
-
Two possible new bugs in BM
When adding a new PS script to an existing Build pipelines target, you get an error Object not set to an instance when trying to edit it. Furthermore you can no longer use the visual GUI to edit any scripts (not just PS) until you delete the object. My client application has a space and + in it (it's called TOM + JERRY) if that helps.
Second one is a weird one. If your code checked out as part of a BM pipeline target and you go to deploy it you get a "directory not empty error" if: A subfolder has folders in it but no files. I get around this by creating an empty file in that folder or doing a manual delete.
-
Otter and High Memory Usage
Otter - PowerShell Remnants and High Memory Usage
I raised this issue a while back but the Forum and I agreed that we thought it was something else and I was happy for the issue to be closed. Now I am using Otter in full flight mode, I'm seeing the problem re-occurring and wanted to re-open it for further diagnosis.
When using Otter and launching other processes from it (which are command line, silent), Otter is still keeping the powershell.exe process open even after a successful configuration run. Overtime this means that memory usage creeps up, eventually making the box unusable. The processes can be shut down by either force closing otter_agent.exe which cascades the close down or by using taskkill.exe /im:powershell.exe /f. However this is manual intervention which makes widespread use of it difficult - the whole advantage of Otter is not logging on to remote terminals!
I have tried the following to rectify this:
- Ensuring servers are only in one role.
- Restarting the service via the Web GUI (which restarts the Execution Dispatcher role).
- Removing any Otter Ensure scripts from the run.
- Restarting the service on the box.
I only noticed this when my monitoring window started showing excessive memory usage and sure enough Otter's PowerShell has hogged it all. From a programming perspective I can understand (although not agree with) if a configuration run fails that PowerShell might stick around for that individual process (if the Otter Agent can't tell it's hung or waiting for an issue). However, on a successful run there seems no explanation for this - can the last action of the Otter agent on a successful run not be to shut down any owned PowerShell scripts? Furthermore, I am unsure as to why if there are four PS scripts in the Otter script, all four stay around even when only one has the EXE launch in it.
I cannot prove that it is the EXE causing this problem but can confirm that:
- The other server roles which do not have the EXE launches are NOT affected.
- The EXEs are all using Start-Process with a -Wait. However, they all do successfully complete.
For information I am using the following EXES:
- Certutil - to import certificates (in enterprise mode)
- Openssl - to generate certificates.
I did try the workaround that was suggested - to wrap the PowerShell in an Otterscript with a timeout but that didn't work either.
Sorry for the long post!
-
RE: BuildMaster Bugs
@dean-houston said in BuildMaster Bugs:
ption, but I want to see where this is before explolring more.
Thanks Dean, yes for 2, defitnley a generic Git Repostitory.
4 - I understand! No problem if not! No real impact on me, maybe just perhaps a documentation update?
5 - I think I caused this by copying another .GIT repo into the existing repo with the same name. Therefore the repo was not what it was expecting?
-
Otter - IIS Ensures
Hi,
Please could you take a look at the IIS Ensure's specifically around creating a site?
I believe there is a bug:
- When entering a CertificateName (not hash) the GUI incorrectly spells the code as Certifcate when it converts it to Otterscript, meaning that when you try to run the code you receive an error message saying the key can't be found -it's looking for CertificateName. You can correct this manually in the text view of the editor to the CertificateName. However this took me a few hours to find!
- There is an edge case where using the Ensure Site exists in the following instance - you define a HTTPS binding outside Otter, on the same port as an existing HTTPS 443 binding with a valid cert. However, before the next configuration run starts, the certificate that is used for the existing HTTPS binding is deleted. In the GUI this would show as a HTTPS binding with "No Certificate Selected". At the next run, when the Ensure tries to correct the errors, it sees there is an existing HTTPS binding but you cannot configure the binding set in the Ensure Site configuration. Instead you receive an error saying that an existing Logon session existed. I think this is a refracted error and the actual fault is that you are trying to Ensure a HTTPS binding when one exists (although this cannot be used because the certificate has now been deleted). I think the fix for this would be to clear existing bindings before adding new ones.
- There is a bug in the Ensure Site whereby it incorrectly searches the wrong CertificateStore. In my case, the certificate was set to "LocalMachine" and indeed the certificate was stored in there. However every time I got configuration drift telling me it was actually in "CurrentUser". I think it is ignoring this setting or not searching correctly?
Because of all the above I had to write my own code to do the HTTPS bindings as it was just too sketchy. This is a shame as I'm using your wonderful Ensure Application and Ensure AppPool without fault! I think it might just need a few tweaks?
-
BuildMaster Bugs
I found the following bugs using the latest version of BuildMaster:
-
Checkout-Code operation using Generic Git repository with recurse submodules option set to True but where no submodules exist causes an exception (Exception of type system.exception) on attempt to build.
-
Every minute an exception appears in error logs when using a generic git repository using stored credentials. details as follows-category: automatic builds, level: error, message: an exception occured while checking resources xxxx at global:git-******* details. Unable to cast object of type inedo.extensions.credentials.usernamepasswordcredentials to type inedo.extensibility.git.gitservicecredentials at inedo.extensibility.git.gitrepository.getremotebranchesasync
-
Clone application fails when trying to clone application using generic git repository. Error fails on the getting list of security tasks in the system. Exception is system.argument.nullexceptiom. value cannot be null. Parameter key.
-
When using the include file path of * not **, in create artifact, folders are created (but no files - as expected). Should the folders still still be created?
-
Left over fail remnants on a failed build sometime result in the error "folder exists for xxxx.git" in the temp folder. This means when attempting a build it fails because the folder already exists (and doesn't attempt to overwrite it). Deleting the folder manually allows a build to continue.
-
-
Otter Roles Rename Bug
If you rename a Role, the application tries to redirect you back after successfully renaming to the old role page which no longer exists thus returning a 500 error with Object not sent to an instance of an object.
Fix? Update redirect to new name after rename successful.