Rename deprecated assert* to require* in o1js precondition APIs

adapt the CLI to https://github.com/o1-labs/o1js/issues/1247

cc @LuffySama-Dev

cc @LuffySama-Dev

Hi Gregor,
Thanks for assigning.
I will get started with it 🙋.
Thank You 😄


double-proxy sandbox is flakey for unknown reasons

I can repro failure on this sandbox locally - altho it was not exactly the same so need to debug further

is there any log about that?

ill post one when i next see it


Table search in metadata not work

System information:
Operating system (distribution) and version Win10
DBeaver version 21.0.5
Connection specification:
Database: MSSQL
Steps to reproduce, if exist:
Open metadata search, select object source 'any database', select object types 'Tables', select Name match to 'Contains' enter a valid value and begin the search
Expected: suitable objects are found
Actual result: objects are not found.
In version 21.0.2 works fine.

I cannot reproduce it. Is you table in dbo schema?

there is no update on the issue for a long time.
If it is still actual for you - feel free to reopen it with additional info

Sorry I'd forgotten send response.
My table is in cor schema, or any other schemas. If I selected DB and try search table, it's not work.

If is selected schema with table, search works. But I have many schemas and search worked on all of it.

On version 21.1.1 still not work.

In 21.1.2 still not work.

This is in 21.0.2

Thank you for your report. I'm working on it. The same problem can be observed in PostgreSQL.

Duplicate of https://github.com/dbeaver/dbeaver/issues/12143.

Same problem again. Again, can't search in table metadata. The table exists, but it cannot be searched. The problem first manifested itself on a brand new DBeaver installation. I have tried reinstalling to versions 22.3.4, 22.3.3, 22.3.2, 22.3.1, 22.3.0 and 22.1.5. But strangely, on the old PC where I am using version 22.3.3, the search works. Even resetting the settings does not help.
New PC with 22.3.4 originally installed and reinstalled on 22.1.5

Old PC with version 22.3.3


fix: watcher not reloading changes done to local filters and hooks

Description

clear module cache each time hooks and filters are required

Related issue(s)
Resolves #204

@jonaslagoni as you reported the issue, would be cool if you could check it out. I tried on local and when I add console log to hook or filter during watching, the changes are picked up

@jonaslagoni as you reported the issue, would be cool if you could check it out. I tried on local and when I add console log to hook or filter during watching, the changes are picked up

I'll review it later tonight if I have the time 😄

@jonaslagoni I'm planning to sleep tonight :)


Could not obtain flags for

I'm running the same setup that works for other haskell projects (same resolver), all using stack. Here is a link to the repo that I'm seeing the issue in.
https://github.com/drewboardman/thinking_with_types
## versions

vim version: NVIM v0.4.3
node version: v13.5.0
coc.nvim version: 0.0.74-3712edf331
term: screen-256color
platform: linux

## Messages
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]

"src/exercises/Two.hs" 18L, 378C written
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
"src/exercises/Two.hs" 18L, 377C written
parse error on input ‘)’ |18 |   fmap f (T5 aii) = T5 (\bi -> aii $ bi . ) |                                           ^
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
1 change; before #4  3 seconds ago
"src/exercises/Two.hs" 18L, 378C written
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] Run :CocInstall coc-json for json intellisense
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
[coc.nvim] CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
## Output channel: languageserver.haskell

2019-12-29 10:08:21.743258683 [ThreadId 4] - run entered for hie-wrapp
er(hie-wrapper) Version <IP_ADDRESS>, Git revision c686b63cea7eaacb692a854e
450515893707b6c1 (3509 commits) x86_64 ghc-8.6.5
2019-12-29 10:08:21.7
56961605 [ThreadId 4] - Current directory:/home/drew/code/thinking_wit
h_types
2019-12-29 10:08:21.759016655 [ThreadId 4] - Operating system:
linux
2019-12-29 10:08:21.762325225 [ThreadId 4] - Cabal-Helper dirs:
["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_
types/File.hs"]
2019-12
-29 10:08:23.274163878 [ThreadId 4] - Cradle directory:/home/drew/code/thinki
ng_with_types
2019-12
-29 10:08:23.27492
574 [ThreadId 4] - Using stack GHC versi
on
2019-
12-29 10:08:23.670538076 [ThreadId 4] - Project GHC version:8
.6.5
2019-12-29
10:08:23.670891
939 [ThreadId 4
] - hie exe cand
idates :["hie-8.
6.5","hie-8.6","
hie"]
2019
-12-29 10:08:23.672295479 [ThreadId 4]
- found hie exe at:/home/d
rew/.local/bin/hie-8.6.
5
2019-1
2-29 10:08:23.67269
0485 [ThreadId 4] -
 args:[]
2019-12-29 10:08:2
3.672949943 [ThreadId 4
] - launching ....

2019-12-29 10:08:23.675058936 [ThreadId 4] - Run entered for HIE(hie-8.6.5) Version <IP_ADDRESS>, Git revision c686b63cea7eaacb692a854e450515893707b6c1 (3509 commits) x86_64 ghc-8.6.5
2019-12-29 10:08:23.675458724 [ThreadId 4] - Current directory:/home/drew/code/thinking_with_types
2019-12-29 10:08:23.675519442 [ThreadId 4] - args:[]
2019-12-29 10:08:23.738260405 [ThreadId 8] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/File.hs"]
Using hie version: Version <IP_ADDRESS>, Git revision c686b63cea7eaacb692a854e450515893707b6c1 (3509 commits) x86_64 ghc-8.6.5
2019-12-29 10:08:25.352646338 [ThreadId 8] - Using stack GHC version
Using hoogle db at: /home/drew/.hoogle/default-haskell-5.0.17.hoo
2019-12-29 10:08:25.645975107 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:25.647035382 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:27.173341293 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:27.639998628 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:27.640106277 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:27.640315499 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:27.641507665 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:29.241673758 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:29.699803372 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:29.699935713 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:42.819326466 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:42.820319726 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:44.513563559 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:44.959008843 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:44.959525906 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:44.959955812 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:44.961620441 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:46.691813907 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:47.199913824 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:47.200357507 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:47.200638638 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:47.202070967 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:48.983457875 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:49.485466217 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:49.485619404 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:49.485973614 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:49.487112672 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:51.016998391 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:51.497157984 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:51.497269822 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:51.4974836 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:51.49842879 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:53.172831392 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:53.620299303 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:53.620444867 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:53.620721577 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:53.622229212 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:55.468346366 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:55.879091837 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:55.879224301 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:55.879496677 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:55.880692053 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:57.467644783 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:08:57.965304772 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:57.96540919 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:08:57.965645599 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:08:57.96689398 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:08:59.575244688 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:00.039942655 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:00.040040056 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:00.040204532 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:00.041517861 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:01.437554552 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:01.843631287 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:01.843729082 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:01.844000263 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:01.845088032 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:03.393410808 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:03.882320861 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:03.882440014 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:03.882641167 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:03.883811925 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:05.308682417 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:05.753438885 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:05.753537172 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:05.753790896 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:05.75493812 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:07.259304892 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:07.664293884 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:07.664394925 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:07.664592142 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:07.665558478 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:09.172651142 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:09.601438486 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:09.601565217 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:09.601844036 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:09.603419895 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:11.099681388 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:11.519546787 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:11.519703491 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:11.519942002 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:11.521204371 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:12.964767906 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:13.355918294 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:13.356047104 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:13.356344489 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:13.358203035 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:14.936576772 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:15.351739031 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:15.35183939 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:15.3520813 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:15.35331074 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:17.009609485 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:17.449476193 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:17.449576129 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:17.449810743 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:17.450850406 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:19.05683928 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:19.538731689 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:19.538910141 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:19.539189236 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:19.540372652 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:20.970506598 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:21.432539241 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:21.432696693 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:21.433125569 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:21.434310009 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:22.900737693 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:23.351458918 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:23.351725335 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:23.352082281 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:23.353551241 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:24.988100474 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:25.489387839 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:25.489547816 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:25.489757236 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:25.490753826 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:27.148945739 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:27.627502517 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:27.627601542 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:27.627808846 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:27.628713885 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:29.255588753 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:29.679878354 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:29.680013848 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:29.680277988 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:29.681419733 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:31.044445569 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:31.526060061 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:31.526257944 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:31.526910312 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:31.528767679 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:33.009864895 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:33.44775828 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:33.447899573 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:33.448188597 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:33.449370792 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:34.856147598 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:35.323517417 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:35.323615733 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:35.323856992 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:35.325482962 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:36.852767148 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:37.363307947 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:37.363413835 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:37.363661864 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:37.364878002 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:38.778838751 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:39.231461139 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:39.231569623 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:39.23174651 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:39.23277247 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:40.684506641 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:41.189495805 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:41.189643595 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:41.189906581 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:41.190953037 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:42.745490754 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:43.196222351 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:43.196373554 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:43.196761594 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:43.198182118 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:44.52634049 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:44.9850064 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:44.985111281 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:44.985318424 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:44.986369564 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:46.525388176 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:46.96381282 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:46.963956595 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:46.964228244 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:46.966044837 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:48.46622695 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:48.886029916 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:48.886123096 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:48.886319168 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:48.887289083 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:50.326677003 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:50.770555749 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:50.77065831 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:50.770906553 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:50.772928908 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:52.20069614 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:52.610091125 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:52.61018825 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:52.610375389 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:52.611336067 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:54.042229972 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:54.490011683 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:54.490163186 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:54.490419793 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:54.493382068 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:56.004462809 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:56.513493048 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:56.513629454 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:56.513944985 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:56.5155404 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:58.032764245 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:09:58.460695246 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:58.460841158 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:09:58.461096421 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:09:58.462161469 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:09:59.801769966 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:00.249227373 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:00.249322943 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:00.249570649 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:00.250665274 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:01.836464616 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:02.247597622 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:02.247698847 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:02.247884608 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:02.248822733 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:03.706841492 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:04.140122647 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:04.14024498 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:04.140493587 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:04.141830395 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:05.522249885 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:05.923905482 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:05.924011116 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:05.924202643 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:05.925203454 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:07.662571264 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:08.063351717 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:08.063480566 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:08.063685209 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:08.064816812 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:09.661721161 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:10.182171159 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:10.182280541 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:10.182452481 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:10.183388843 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:12.11385497 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:12.778131035 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:12.778250657 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:12.778550152 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:12.780339821 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:14.497104079 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:14.968949479 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:14.969079497 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:14.969351334 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:14.970633592 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:16.557302389 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:17.127531644 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:17.127662437 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:17.127918156 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:17.12917416 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:18.785513955 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:19.396979929 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:19.397177953 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:19.397576261 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:19.399601789 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:21.458665761 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:21.918862917 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:21.918997568 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:21.919236771 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:21.920600451 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:23.488537795 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:23.939308587 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:23.939448258 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:23.939726464 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:23.940748745 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:25.362954766 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:25.839251178 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:25.83935893 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:25.839570816 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:25.840880696 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:27.254198257 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:27.67615676 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:27.676253945 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:27.676511399 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:27.678157968 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:29.298955681 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:29.759409013 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:29.759553794 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:29.75982356 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:29.761016242 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:31.235232389 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:31.753322707 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:31.753468611 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:31.753733144 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:31.754811587 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:33.131203547 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:33.550547276 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:33.550676993 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:33.551016231 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:33.5526058 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:35.070841881 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:35.536243269 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:35.536374713 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing
2019-12-29 10:10:35.536634103 [ThreadId 10] - New cradle: /home/drew/code/thinking_with_types/src/exercises/Two.hs
2019-12-29 10:10:35.537791431 [ThreadId 10] - Cabal-Helper dirs: ["/home/drew/code/thinking_with_types","/home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:36.963002058 [ThreadId 10] - Found cradle: Cradle {cradleRootDir = "/home/drew/code/thinking_with_types", cradleOptsProg = CradleAction: Cabal-Helper-Stack}
2019-12-29 10:10:37.390127418 [ThreadId 10] - GhcException on cradle initialisation: CradleError (ExitFailure 2) ["Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs"]
2019-12-29 10:10:37.390288276 [ThreadId 10] - ghcDispatcher:Got error for a request: IdeError {ideCode = OtherError, ideMessage = "CradleError (ExitFailure 2) [\"Could not obtain flags for /home/drew/code/thinking_with_types/src/exercises/Two.hs\"]", ideInfo = Null} with mid: Nothing

Can you please do the same in debug mode, e.g. invoking hie -d, and link the logs here again? I will try the project, too.

Found the problem:
In the generated *.cabal file, there is no exposed module Two, for some reason.
If you open the src/Lib.hs everything works as expected for me.

As a short explanation, in Haskell you have to tell the build system exactly which modules are exposed, e.g. should be build.
In your project, I see multiple problems. You are writing a library within another library, e.g. src is source directory for a library and src/exercises is another. Easiest solution is to rename it to src/Exercises and changing the module header to:
module Exercises.Two where
...

By the way, haskell can not work module names that start with a number, e.g. the modules 1.hs and 2.hs wont fly. Also, the name of the file and module must coincide, and in the file 1.hs the module header is:
module ChapterOne where

therefore, that file should be named ChapterOne.hs.
The app folder has the identical problem as your library component. To solve this, either move the files in chapters and exercises into their own executable, or rename the folder and module structure.

Ah, thanks. My mistake.


[KAFKA-3991]: allow MirrorMaker to have custom producer

Please see jira: https://issues.apache.org/jira/browse/KAFKA-3991

MirrorMaker is now deprecated and as this PR is stalled I'll close it out for now.


[PE-D][Tester C] Not all data is saved when exiting and entering the application

The "attending physician" field for patients is not saved after the app is exited and re-entered. The unmark field is also not saved.

Labels: type.FunctionalityBug severity.Medium
original: chngchngchng/ped#5

Havent check whether the attending physician field got saved


fix: ODRL LogicConstraint validator

What this PR changes/adds
Avoid leftOperand, operator and rightOperand validation when a constraint is Logic.
Currently the check is on the @type value, but it is not mandatory, so I switched the validation on the attributes.
Why it does that
odrl validation
Further notes

some additional refactoring

Linked Issue(s)
Closes #4071
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 74.53%. Comparing base (7f20ba5) to head (4a0a77f).
Report is 189 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4073      +/-   ##
==========================================
+ Coverage   71.74%   74.53%   +2.79%
==========================================
  Files         919      976      +57
  Lines       18457    19977    +1520
  Branches     1037     1120      +83
==========================================
+ Hits        13242    14890    +1648
+ Misses       4756     4604     -152
- Partials      459      483      +24

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Using gMSA on multiple containers simultaneously causes Domain Trust Relationship to fail

Describe the bug
When running multiple containers simultaneously using the same gMSA on either the same host or different hosts, it causes one or multiple containers to lose their domain trust relationship leading to various issues including LsaLookUp and negotiate auth failures. This especially happens when the count of containers is equal to or more than count of domain controllers in the environment. However, it is also possible to run into this issue when the count of containers is less than count of domain controllers in the environment, provided two or more containers attempt to talk to the same domain controller.
To Reproduce

Build an image from the following Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:6.0-windowsservercore-ltsc2019 AS base

USER ContainerAdministrator
RUN reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v LsaLookupCacheMaxSize /t REG_DWORD /d 0 /f

USER ContainerUser
ENTRYPOINT ["powershell.exe", "1..500 | %{ [void][System.Security.Principal.NTAccount]::new('contoso\\someobj').Translate([System.Security.Principal.SecurityIdentifier]).Value; Start-Sleep -Milliseconds (Get-Random -Minimum 100 -Maximum 1000); }"]

Replace contoso\someobj above with sam name of an actual object.

Run the container image simultaneously on multiple hosts using the following command. To increase the chances of running into the issue, if there are N domain controllers in the environment, run the container image simultaneously on at least N+1 hosts

docker run --security-opt "credentialspec=file://gmsa-credspec.json" --hostname <gMSAName>  -it <image>

Replace <gMSAName> with actual gMSA and file://gmsa-credspec.json with actual gMSA Credential Spec file and <image> with the container image

Monitor the output of all the containers, eventually one or more containers will start throwing the following error message. This usually happens within first few seconds of the container starting, assuming the docker run ... in (2) above was run simultaneously on different hosts. If it does not happen, repeat (2) until it does.

Exception calling "Translate" with "1" argument(s): "The trust relationship between this workstation and the primary domain failed.

While a running container is throwing the above error message in its output, exec into it and try performing some domain operation - that will fail as well.

Expected behavior
gMSAs on multiple Windows Containers is officially supported since at least Windows Server 2019. Running gMSA on multiple containers simultaneously should not result in trust relationship to fail.
Configuration:

Edition: Windows Server 2022
Base Image being used: Windows Server Core
Container engine: docker

Additional context

While the reproducer uses a PowerShell base image to demonstrate the bug, we had originally run into this issue in an ASP.NET Core web application while performing negotiate authentication.

The container image in the reproducer purposefully disables LSA LookUp Cache by setting LsaLookupCacheMaxSize to 0 to simplify the example.

If you were to observe traffic of a container that has run into this issue, the packet capture will indicate a lot of DSERPC/RPC_NETLOGON failure messages. You may also observe packets reporting nca_s_fault_sec_pkg_error

Sometimes the container may "autorecover". It is purely a chance event. Whenever this happens, you can see RPC_NETLOGON packets in the network capture. Typically this results in the container recovering its domain trust relationship only when the NETLOGON happens through a different domain controller than what container had earlier communicated to.

It is also possible to re-establish domain trust relationship of a failing container by running the following command in a failing container (the runtime user should be a ContainerAdministrator or should have administrators privileges)
nltest.exe /sc_reset:contoso.com

If the above command does not succeed, you may have to run it more than once. When the command succeeds, more often than not, all the affected containers and not just the current container "recover".

As mentioned in the bug description, it is very easy to run into this issue when the count of containers is more than the number of domain controllers in the environment but that is not the only scenario.

docker run ... is not the only way to run into this issue. It can be also be reproduced on an orchestration platform like Kubernetes, by setting replicas count of the Deployment to N+1; or by using scaling feature.

Hi, thanks for bringing this issue to our attention. First, I've have to give credit where credit is due. This is so well written up! Thank you for providing a very clear description of the current and expected behavior.
Second, this is a quick question: Is there a reason why all the containers in this cluster all have the same gMSA?

Is there a reason why all the containers in this cluster all have the same gMSA?

We actually don't use the same gMSA for all the containers in the cluster. Different type of application containers run with different gMSAs.
The problem arises when there are multiple instances (replicas) of the same application, such as an application that requires to be highly available. During my testing I also found that it does not have to replicas of same container image/deployment, different containers still running as the same gMSA will also run into this issue.
Multiple containers running as same gMSA can't be avoided for these purposes - without them we can't distribute our workload or promise high availability.

@ntrappe-msft has there been an internal confirmation of this bug and any discussions on a fix ? This issue severely limits ability to scale Windows containers and use AD authentication because of direct relation between number of containers and domain controllers.

Hi, thank you for your patience! We know this is blocking you right now and we're working hard to make sure it's resolved as soon as possible. We've reached out to the gMSA team to get more context on the problem and some troubleshooting suggestions.

The gMSA team is still doing their investigation but they can confirm that this is unexpected and unusual behavior. We may ask for some logs in the future if it would help them diagnose the root cause.

Internal ticket<PHONE_NUMBER>002775).

Hi, could you give us a few follow-up details?

Are you using process-isolated or hyper-v isolated containers?
Are you using the same container hostname and gMSA name?
What is the host OS version?

Hi Nicole @ntrappe-msft

Are you using process-isolated or hyper-v isolated containers?

Process Isolation

Are you using the same container hostname and gMSA name?

Correct

What is the host OS version?

Microsoft Windows Server 2022 Standard (Core),  with October CU applied
Sharing some more data from our experiments, in case it help the team to troubleshoot the issue:

When all the containers of a gMSA are given a different, unique, value for the hostname, at least the Domain Trust Relationship error goes away - although that may have broken something else, we did not look in that direction. However;

If the value of hostname for each container is >15 characters in length, and the value is unique BUT first 15 characters are not-unique, we again start seeing the issue related to Domain Trust Relationship. This interestingly coincides with 15 character length limit for computer name / NETBIOS limitation.
This means if you have a very long value of hostname and first few characters are not unique, gMSA issues start occurring in multi-container scenario.
If you were to use some container orchestration solution, like Kubernetes, the value of pod name, which is what gets supplied as hostname value to the container runtime, is in all the realistic scenarios >15 characters and the first few characters are common for each pod (deployment name + replicaset ID) -- this would cause problem with gMSAs in that case as well

Just out of curiosity, instead of docker runtime, I directly used containerd and I could reproduce the problem there as well

Not specifying hostname when launching containers with same gMSA does not give this error, I believe the container runtime internally gives some random ID as the value for hostname in that case (scenario (1) above) -- that seem to imply the problem here is multiple container having same name ?
In context of containers with gMSA, having same name as gMSA name has been the norm for a while. Not specifying hostname isn't always possible, explicitly specifying hostname shouldn't break the status quo, and when using orchestration solutions, like the example I listed above, the user has no direct control on the value of hostname.

This issue has been severely restricting usage of Windows Containers at scale :(

🔖 ADO 47828389

While we appreciate that the Containers team is still looking into this issue, I wanted to share some insights into just how seemingly difficult this problem is to work around.
In order to prevent requests landing on "bad" containers, I was trying to write custom aspnet core health check that could inquire the status of Trust Relationship of the container and mark the service as unhealthy when Domain Trust fails. What seemed to be a very straightforward tempory fix/compromise for our problems turned out to be a complex anomaly:

Firstly, netapi32 DLL is not available in nanoserver, and won't be until next major release of Windows Server - https://github.com/microsoft/Windows-Containers/issues/72#issuecomment-1569257600
If we have the Server Core image as the base image and have the DLL moved to the nanoserver container, we could work around this but only to run into more problems
Within the gMSA container - the Win32 call will not automatically pick the Netlogon Policy Server
And if you do hardcode the a domain controller for this purpose, the netlogon query response would still indicate that the trust relationship exists (NERR_Success as opposed to something like RPC_S_SERVER_UNAVAILABLE)
And even if we had managed to get all of this to work, to "repair" the Secure Channel we would have to run our container as ContainerAdministrator which introduces bunch of other security concerns
PowerShell commands such as Test-ComputerSecureChannel simply fail, because the interpretation of "hostname" is different within a gMSA Container vs. outside of it - where the command is typically used
In essence, any of the means to [programmatically] catch gMSA and Domain Trust issues for Containers, like ones documented at https://kubernetes.io/docs/tasks/configure-pod-container/configure-gmsa/#troubleshooting, turned out to be unhelpful

My guesses for why the usual means to troubleshoot gMSA/Trust problems are not working for us is probably an attempted to fix a VERY SIMILAR problem for Containers in Server 2019:

We changed the behavior in Windows Server 2019 to separate the container identity from the machine name, allowing multiple containers to use the same gMSA simultaneously.

Since we do not understand how this was achieved, we have again reached a dead end and are desperately hoping the Containers team is able to solve our gMSA-Containers-At-Scale problem

Thanks for the additional details. We've had a number of comments from internal and external teams struggling with the same issue. Our support team is still working to find a workaround that they can publish.

We're also running into this issue, we're using Windows Server 2019 container images, however there are no multiple container instances running with the same gMSA however we still get the same error about trust.
Our case is that we try to login with an AD user it doesn't work, but the gMSA does work, should I raise a ticket with support for assistance.

Hello @ntrappe-msft - is Containers team in touch with the gMSA/CCG group. Our support engineers informed us that we are the only one who have reported this issue, but based on your confirmation in https://github.com/microsoft/Windows-Containers/issues/405#issuecomment-1911045014, and assuming from reactions on this issue, it is clear there are many users who have run into this exact problem.

Our case is that we try to login with an AD user it doesn't work, but the gMSA does work, should I raise a ticket with support for assistance.

@israelvaldez, see my above comment. I would think it is worth highlight this problem to Microsoft Support from your end as well, so that that it is obvious, without any doubt, that multiple customers face this and it could be appropriately prioritized (if not already)

Hi   @ntrappe-msft we are also experiencing the same issue with our gMSA containers intermittently losing trusts with our domain and needs to be restarted. Wondering if Microsoft has any update on this issue.
We have multiple container instances running the same app and using the gMSA. Interestingly even though each of them have their own unique hostname defined, the log shows it's connecting to the DC using the gMSA name as MachineName. Host/domain/dc names replaced with **.
EventID            : 5720
MachineName        : gmsa_**
Data               : {138, 1, 0, 192}
Index              : 1309
Category           : (0)
CategoryNumber     : 0
EntryType          : Error
Message            : The session setup to the Windows Domain Controller \** for the domain **
failed because the computer gmsa_** does not have a local security database account.
Source             : NETLOGON
ReplacementStrings : {\**, **, **}
InstanceId         : 5720
TimeGenerated      : 13/03/2024 10:23:24 AM
TimeWritten        : 13/03/2024 10:23:24 AM
UserName           :
Site               :
Container          :

@avin3sh you are definitely not the only one experiencing this Issue. There are a number of internal teams who would like to increase the severity of this Issue and attention towards it. I'm crossing my fingers that we'll have a positive update soon. But it does help us if more people comment on this threat highlighting that they too are encountering this problem.

This is a huge issue for us at Broadcom with multiple fortunate 100 customers wanting this feature in one of our products and thousands of workloads being blocked from being migrated off VMs to containers

In my scenario I created a new gMSA othern than the one I was using (which was not being used in multiple pods) and I was able to workaround this problem.
i.e. my pod had gmsa1, I created gmsa2 and suddenly the trust betweent he pod and the domain was fine.

The workaround is appreciated, but we would like to see Microsoft fix this issue directly so that customers do not need to significantly redesign their environments.

This issue has been fortunate enough to not get attention of auto-reminder bots so far, but I am afraid they will be here anytime soon. I see this has been finally assigned, does it mean a fix is in the works ?

Please do not close this issue until the underlying technical problem has been resolved.On Jun 3, 2024, at 3:01 PM, microsoft-github-policy-service[bot] @.***> wrote:
This issue has been open for 30 days with no updates.
@riyapatel-ms, please provide an update or close this issue.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

We have started seeing a new issue with nanoserver images released April onwards (build 20348.2402+), the HTTP service running inside the container has started throwing  'System.Net.InternalException' was thrown. -1073741428, which, as per someone in the .NET platforms, translates to The trust relationship between the primary domain and the trusted domain failed. (see: https://github.com/dotnet/runtime/discussions/105567#discussioncomment-10161657)
As a result, all our new containers are failing to serve ANY incoming kerberized requests!! This is no longer intermittent. This is no longer about number of containers running simultaneously with a gMSA. This is straight up fatal error rendering the container pretty much unusable.
Now one would think "downgrading" to an older nanoserver image released prior to April would fix this ? Wrong. That would make the problem even more worse because of the another unresolved Windows-Containers issue - https://github.com/microsoft/Windows-Containers/issues/502 -- downgrading will potentially cause all the container infrastructure to BSOD!!!
To summarize,

the original issue remains unresolved!
April onwards, you can't use latest or even older nanoserver images
apps built off newer images are pretty much incapable of Kerberos
going back to images built off March or prior CUs has potential to cause your container host to go in BSOD

This issue desperately needs a fix. It's almost as if you can't use Windows Containers for any of your gMSA and Active Directory use cases anymore!

We are facing also similar issue on the usage of gMSA within scaling windows containers. We also provide hostname into the container creation, but in fact due to gMSA containers are identify themself as the gMSA name. This leads to mismatches on our backend that tries to keep track on incoming traffic. It gets heavily confused while all request are coming from the same "machine". Of course, as long as I only have one container started making use of the one gMSA I am all good. the moment I scale it crashes. (fun fact: the product that gets confused is also from Microsoft :P)

So also curious what will happen to this :)

We are also facing the "The trust relationship between the primary domain and the trusted domain failed" issue on our AKS cluster.

Quick question on the environment you folks have on which you are seeing this issue: Is NETBIOS enabled in your environment? NETBIOS uses port 137,138, and 139, with 139 being Netlogon. I have tested this with a customer (who was kind enough to validate their environment) on which a deployment with multiple pods worked normally. This customer has NETBIOS disabled and port 139 between pods/AKS cluster is blocked to the Domain Controllers.
I'm not saying this is a fix, but wanted to check if others see this error even with NETBIOS disabled or the port blocked.

From what I have found (I can do a more thorough test later), NETBIOS is disabled on the container host's primary interface and on the HNS management vNIC (we use Calico in VXLAN mode). However, the vNICs for individual pods show NETBIOS as enabled. We haven't done anything to block traffic on Port 139.
Do you suggest we perform a test after disabling NETBIOS on Pod vNICs as well; AND blocking Port 139 ? I am not sure how to configure this within CNI but perhaps I can write some script to disable netbios by making registry change after the container is network has come up, unless you have some script handy that you could share.
BTW just to reiterate the severity from my earlier comment https://github.com/microsoft/Windows-Containers/issues/405#issuecomment-2253067799 - nanoserver images after March 2024 have made this problem worse. Earlier the issue was intermittent and dependent on some environmental factors but March 2024+ nanoserver images are causing 100% failures.

Thanks @avin3sh for the note. No need for a fancy script or worrying from the cluster/pod side - if you block port 139 at the network/NSG level, this should help validate. Again, I'm asking here as a validation, we haven't been able to narrow it down yet, but we have customers running multiple containers simultaneously with no errors and I noticed they have NETBIOS disabled AND port 139 blocked.
As for the Nano Server issue, can you please clarify: The issue happens even if you launch just one container? You're saying gMSA is not working on Nano Server at all?

Thank you so much for clarifying. I will share my observation after blocking traffic on port 139.

As for the Nano Server issue, can you please clarify: The issue happens even if you launch just one container? You're saying gMSA is not working on Nano Server at all?

We have a bunch of ASP.NET services. We use Negotiate/Kerberos authentication middleware. If I use an ASP.NET nanoserver image that is using Windows build from ~March~ April 2024 or later, the Kerberos token exchange is straight up failing and no request is able to get authenticated. You can see SSPI blob exchange functions in the error call stack - see here for the full call stack -> https://github.com/dotnet/runtime/discussions/105567#discussion-6980650
So essentially our web services are not able authenticate using negotiate when using any image from April or later. This does not happen if I launch just one container, but it happens 100% if there are multiple containers. I think I haven't seen this behavior in beefier windowserver image but can't say for sure as we don't generally use them due to their large size.
I have also seen varying behavior depending on whether the container user is ContainerUser or NT AUTHORITY\NetworkService - the issue exists in both the scenarios but manifests differently.

@avin3sh a little off topic, but you may want to look at my project that can seamlessly translate tokens from jwt to kerberos and vice versa. It's often used as sidecar and it doesn't require container to be domain joined - it uses kerberos.net library under the covers which is a managed implementation instead of relying on sspi.
https://github.com/NMica/NMica.Security

@vrapolinario I tried this with Port 139 blocked like so (for TCP, UDP, Inbound and Outbound):

New-NetFirewallRule -DisplayName "Block Port 139" -Direction Inbound -LocalPort 139 -Protocol TCP -Action Block

But the problem persisted.
Any chance the customer who tried this had large number of domain controllers in their environment ? We have seen that as long as your deployment replicas is less than or equal to number of domain controllers in the environment, you typically don't run into this issue.

We are happy to collaborate with you to test out various scenarios/experimental patches/etc. We already have a Microsoft Support case ongoing (@ntrappe-msft may be familiar) but it hasn't moved in several months - if you want to take a look at our case, more than willing to validate any suggestions that you may have for this problem.

I believe I'm aware of the internal support case and I reached out to the team with this note as well. They are now running some internal tests as well, but I haven't heard back from them. The main thing I wanted you all here to please evaluate is if your environment is for some reason using NETBIOS. The fact that some of you reported the DCs getting the same hostname from the pod requests with a character limit of 15 tells me there's some NETBIOS communication happening.
https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/dc-locator-changes
By default, DNS should be in use, so if you only see 15 characters in the hostnames going to the DCs, tells me something is off. By disabling NETBIOS or blocking port 139, you can quickly check if this helps solve the issue you are seeing.

Blocking TCP/139 hasn't helped. I also tried blocking UDP/137 and UDP/138 out of curiosity but that does not seem to have made any difference either.
I started a packet capture before even pods came up and reproduced the scenario, I don't see any packets going on TCP/139

There is bunch of chatter on TCP/135 - RPC - but of course I can't block it without disrupting other things on the host.
There are indeed RPC_NETLOGON (per wireshark) packets originating from the containers during this time, but that's over random high numbered ports, taking us back to my very first update. I believe this is just netlogon RPC happening over a port picked from 49152 - 65535

Let me know if you want me to try something else.

Thank you for the validation. We actually ran the same test last night, but I didn't have time to reply here. I can confirm that blocking TCP 139 won't solve the problem. Microsoft still recommends moving away from NETBIOS unless you need it for compatibility, but this is not the issue here.
We're still investigating this internally and will report back.
As for the Nano Server image issue, can I ask you to please open a separate issue here so we can investigate? These seem like Teo separate problems that are unrelated. The fact that you can't make the nano server ima work at all indicates a different root cause.

As for the Nano Server image issue, can I ask you to please open a separate issue here so we can investigate? These seem like Teo separate problems that are unrelated. The fact that you can't make the nano server ima work at all indicates a different root cause.

@vrapolinario I have create a new issue https://github.com/microsoft/Windows-Containers/issues/537 with the exact steps to reproduce the bug. It's a simple aspnetcore web app with minimal api with Kerberos enabled. Given the error message is related to the domain trust failure and it does not happen when using NTLM but only Kerberos, I strongly feel it may be related to the larger gMSA issue being discussed here but I will wait for your analysis.

I've followed this guid on a new cluster https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/gmsa-aks-ps-module
It results in the same error 1786 0x6fa ERROR_NO_TRUST_LSA_SECRET
This is with a AD server running Windows Server 2016 and a AKS cluster with windows server 2019 nodes with GMSA enabled.

Sharing an update from the internal team.
We've released a new version of the Windows gMSA webhook. One of the new changes is creating a random hostname for gMSA which should help to get around the random domain trust failures. To use this:

Check that the pod spec hostname isn't set
Set randomHostname to be true

Thanks to @jsturtevant, @zylxjtu, and @AbelHu for this release.

Thank you @ntrappe-msft and everyone who worked on releasing the workaround. While I am still evaluating it and there are some error scenario that no longer occur after deploying the newer gmsa-webhook, I still see few inconsistencies.
#537 is still an issue, unless I use nanoserver image released in March 2024 or prior. All the recent Windows 2022 nanoserver images don't work with NTAuth + aspnetcore unless I change my container user to Network Service instead of ContainerUser. Could you please provide clarification on what is the recommendation for ContainerUser vs NetworkService when using gMSAs ?


Icon request: Linode

URL of the site or app (required): https://www.linode.com/
Logo resources for the icon (optional, but recommended): https://www.linode.com/wp-content/uploads/2018/10/linode-logo-blk-rgb-minified.svg

Here you go!
https://github.com/aegis-icons/aegis-icons/blob/master/PNG/Linode.png

Thank you so much for making these beautiful icons!


NLB-2475: update NGINXaaS for Azure

the README is updated to only refer to “NGINXaaS” for Azure, not “NGINX for Azure”
descriptions are updated to refer to “NGINXaaS for Azure”, not “NGINX for Azure”
update docs links with new URL
Keep file names, workflow names

@xynicole - thanks for making these changes.


Problem with app title bar for some themes

@tse_na_ia on Twitter noticed that when using "Pop" theme, the window decoration for Purple Task has "Adwaita" theme instead. Flokk, which is also a Flutter app has the correct window decoration.

Fixed in devel branch commit aa58c98


Create animation for the dashboard

The purpose is to invite the users to drag&drop data in this screen:

Oh...

Aloha XXX!
Welcome to the CartoDB Editor.
Drag your data file to your dashboard to create your first map.
From here, your Dashboard, you will be able to create new maps (A) as well as finding the ones you've liked(b)