text:
keeps crashing after 20 minutes

Hello,
firstly, thanks for all your work on this. I've been a Zwift user since beta and it's a dream come true to finally be able to run on linux.
i've run the game 3 times now, and each time, it crashes around the 25 minutes into the ride. any ideas on how to troubleshoot this issue?
here's a chunk of my journal log just before the crash
Oct 02 19:16:32 [redacted] systemd[1]: Starting fwupd-refresh.service - Refresh fwupd metadata and update motd...
Oct 02 19:10:03 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706ba
Oct 02 19:10:03 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706ba
Oct 02 19:10:02 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:10:02 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:10:02 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:10:01 [redacted] drkonqi-coredump-launcher[747490]: Nothing handled the dump :O
Oct 02 19:10:01 [redacted] drkonqi-coredump-launcher[747490]: QFile::remove: Empty or null file name
Oct 02 19:10:01 [redacted] drkonqi-coredump-launcher[747490]: Unable to find file for pid 747338 expected at "kcrash-metadata/747338.ini"
Oct 02 19:10:01 [redacted] systemd[1]: drkonqi-coredump-processor@115-747356-0.service: Deactivated successfully.
Oct 02 19:10:01 [redacted] systemd[1209]: Started drkonqi-coredump-launcher@115-747364-0.service - Launch DrKonqi for a systemd-coredump crash (PID 747364/UID 0).
Oct 02 19:10:01 [redacted] drkonqi-coredump-processor[747364]: "/opt/wine-stable/bin/wine64-preloader" 747338 "/var/lib/systemd/coredump/core.mscorsvw\\x2eexe.1000.a8dc208b362b4c4fac36dd23fd3193c3.747338.1696288200000000.zst"
Oct 02 19:10:01 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:10:01 [redacted] systemd[1]: systemd-coredump@115-747356-0.service: Deactivated successfully.
Oct 02 19:10:01 [redacted] systemd-coredump[747359]: [🡕] Process 747338 (mscorsvw.exe) of user 1000 dumped core.

                                                    Stack trace of thread 44505:
                                                    #0  0x00007f56aaf1e107 n/a (/opt/wine-stable/lib64/wine/x86_64-unix/ntdll.so + 0x3f107)
                                                    #1  0x0000000000000000 n/a (n/a + 0x0)
                                                    ELF object binary architecture: AMD x86-64
Oct 02 19:10:01 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706bf
Oct 02 19:10:01 [redacted] angry_jepsen[698494]: 0584:err:rpc:RpcAssoc_BindConnection rejected bind for reason 0
Oct 02 19:10:01 [redacted] angry_jepsen[698494]: 110c:err:rpc:RpcAssoc_BindConnection rejected bind for reason 0
Oct 02 19:10:01 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:10:00 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:10:00 [redacted] systemd[1]: Started drkonqi-coredump-processor@115-747356-0.service - Pass systemd-coredump journal entries to relevant user for potential DrKonqi handling.
Oct 02 19:10:00 [redacted] systemd[1]: Started systemd-coredump@115-747356-0.service - Process Core Dump (PID 747356/UID 0).
Oct 02 19:10:00 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:59 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:59 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:58 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:58 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:58 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:57 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:57 [redacted] angry_jepsen[698494]: 0584:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
Oct 02 19:09:57 [redacted] drkonqi-coredump-launcher[747095]: Nothing handled the dump :O
Oct 02 19:09:57 [redacted] drkonqi-coredump-launcher[747095]: QFile::remove: Empty or null file name
Oct 02 19:09:57 [redacted] drkonqi-coredump-launcher[747095]: Unable to find file for pid 746930 expected at "kcrash-metadata/746930.ini"
Oct 02 19:09:57 [redacted] systemd[1]: drkonqi-coredump-processor@114-746954-0.service: Deactivated successfully.
Oct 02 19:09:57 [redacted] systemd[1209]: Started drkonqi-coredump-launcher@114-746964-0.service - Launch DrKonqi for a systemd-coredump crash (PID 746964/UID 0).
Oct 02 19:09:57 [redacted] drkonqi-coredump-processor[746964]: "/opt/wine-stable/bin/wine64-preloader" 746930 "/var/lib/systemd/coredump/core.mscorsvw\\x2eexe.1000.a8dc208b362b4c4fac36dd23fd3193c3.746930.1696288195000000.zst"
Oct 02 19:09:57 [redacted] systemd[1]: systemd-coredump@114-746954-0.service: Consumed 1.145s CPU time.
Oct 02 19:09:57 [redacted] systemd[1]: systemd-coredump@114-746954-0.service: Deactivated successfully.
Oct 02 19:09:57 [redacted] systemd-coredump[746957]: [🡕] Process 746930 (mscorsvw.exe) of user 1000 dumped core.

                                                    Stack trace of thread 44137:
                                                    #0  0x00007fb20f1be107 n/a (/opt/wine-stable/lib64/wine/x86_64-unix/ntdll.so + 0x3f107)
                                                    #1  0x0000000000000000 n/a (n/a + 0x0)
                                                    ELF object binary architecture: AMD x86-64
Oct 02 19:09:57 [redacted] angry_jepsen[698494]: 11e0:err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be

OS: Debian sid
CPU: AMD ryzen 5600
RAM: 32GB
GPU: AMD RX580
thanks in advance

I've had similar consistent crashes back on 1.47.0 but it hasn't happened to me in a while.
Is youe image up to date, 1.49.0?

I've had similar consistent crashes back on 1.47.0 but it hasn't happened to me in a while. Is your image up to date, 1.49.0?
Maybe there's something in the Zwift logs, too.

i don't see anything strange in the zwift logs... the only thing weird is that the timestamps are in a different time zone. 4 hours ahead of me...

I Would monitor the resource consumption while running the application, maybe there is a memory leak with system ram or gpu? Especially since you state that its fairly reproducible at 25 minutes. Something is probably hitting the roof.
Would also try to tweak the graphics setting, and maybe setting resolution and quality way down to see if it has any effect on when it crashes.
I've seen my system crash when running to many instances of zwift at once, (once had 4 running simultaneously) but that was due to out of memory on the graphics card.

Maybe this will provide some insight? https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-dcom/4383e2aa-ae3c-4da6-a094-30233ac4b285

And are you running docker or podman?

And are you running docker or podman?

podman.

I Would monitor the resource consumption while running the application, maybe there is a memory leak with system ram or gpu? Especially since you state that its fairly reproducible at 25 minutes. Something is probably hitting the roof.

i will try to watch this. but i used to run zwift on a laptop with integrated graphics... so i assume my system well above the minimum requirements
thanks

If everything still fails with podman, i'd try docker as a last resort.

Here the same. I suspect it has something to do with resolution. The higher, the faster the container crashes. I couldn't find any clues in the journal. I get error messages from the wine64-preloader at irregular intervals while Zwift is running. Here are the last entries in the container log::
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] ERROR LEVEL: VIDEO_CAPTURE : WindowsFailure, 31442 of 10, reasons=["EncoderClip: CreateSinkWriter failed, hr=-2147467263", "Encoder: clip failed, clipIndex=0", "VCW_StateMachine: Encoder failed"]

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] ERROR LEVEL: VIDEO_CAPTURE : WindowsFailure, 31443 of 10, reasons=["EncoderClip: CreateSinkWriter failed, hr=-2147467263", "Encoder: clip failed, clipIndex=0", "VCW_StateMachine: Encoder failed"]

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] ERROR: ZwiftApp Crashed

Here the same. I suspect it has something to do with resolution. The higher, the faster the container crashes. I couldn't find any clues in the journal. I get error messages from the wine64-preloader at irregular intervals while Zwift is running. Here are the last entries in the container log:
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] ERROR LEVEL: VIDEO_CAPTURE : WindowsFailure, 31442 of 10, reasons=["EncoderClip: CreateSinkWriter failed, hr=-2147467263", "Encoder: clip failed, clipIndex=0", "VCW_StateMachine: Encoder failed"]

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] ERROR LEVEL: VIDEO_CAPTURE : WindowsFailure, 31443 of 10, reasons=["EncoderClip: CreateSinkWriter failed, hr=-2147467263", "Encoder: clip failed, clipIndex=0", "VCW_StateMachine: Encoder failed"]

[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200

[17:44:25] ERROR: ZwiftApp Crashed

making progress... i did 2 tests today:

i opened the game and just let it sit while i did something else. i noticed that that the VIRT memory column in top kept going up.... it was at 21G at one point.... after around 25mins, it crashed as usual
i opened up the game and disabled the "video screenshots" option in settings. all of the "Allocating pixel buffer..... Encoder failed" messages disappeared from the log, and the VIRT memory use in top seems to have stabilized. i left the game open for over an hour and it didn't crash.

next test is to actually do a long ride and see if it crashes... but seems like i made some progress. thanks to everyone who chimed into this thread with ideas.
CC: @netbrain

#28 would let us experiment with different versions of wine and custom
tweaks to test failures like this.
On Thu, Oct 5, 2023, 06:29 S74HK9hV @.***> wrote:

Here the same. I suspect it has something to do with resolution. The
higher, the faster the container crashes. I couldn't find any clues in the
journal. I get error messages from the wine64-preloader at irregular
intervals while Zwift is running. Here are the last entries in the
container log:
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200
[17:44:25] ERROR LEVEL: VIDEO_CAPTURE : WindowsFailure, 31442 of 10, reasons=["EncoderClip: CreateSinkWriter failed, hr=-2147467263", "Encoder: clip failed, clipIndex=0", "VCW_StateMachine: Encoder failed"]
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200
[17:44:25] ERROR LEVEL: VIDEO_CAPTURE : WindowsFailure, 31443 of 10, reasons=["EncoderClip: CreateSinkWriter failed, hr=-2147467263", "Encoder: clip failed, clipIndex=0", "VCW_StateMachine: Encoder failed"]
[17:44:25] INFO LEVEL: VIDEO_CAPTURE : Allocating pixel buffer, w=1920, h=1200
[17:44:25] ERROR: ZwiftApp Crashed
making progress... i did 2 tests today:

i opened the game and just let it sit while i did something else. i
noticed that that the VIRT memory column in top kept going up.... it was at
21G at one point.... after around 25mins, it crashed as usual
i opened up the game and disabled the "video screenshots" option in
settings. all of the "Allocating pixel buffer..... Encoder failed" messages
disappeared from the log, and the VIRT memory use in top seems to have
stabilized. i left the game open for over an hour and it didn't crash.

next test is to actually do a long ride and see if it crashes... but seems
like i made some progress. thanks to everyone who chimed into this thread
with ideas.
CC: @netbrain https://github.com/netbrain
—
Reply to this email directly, view it on GitHub
https://github.com/netbrain/zwift/issues/26#issuecomment-1748014643, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACTNC7SQYOHJFVLWZN2ZUDX5YZTDAVCNFSM6AAAAAA5QEPSCOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBYGAYTINRUGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

Not the first time I read that video screenshots cause crashes, even on the Zwift forums there are mentions of it.
I've always had it disabled personally.

i opened the game and just let it sit while i did something else. i noticed that that the VIRT memory column in top kept going up.... it was at 21G at one point.... after around 25mins, it crashed as usual
i opened up the game and disabled the "video screenshots" option in settings. all of the "Allocating pixel buffer..... Encoder failed" messages disappeared from the log, and the VIRT memory use in top seems to have stabilized at around 6G. i left the game open for over an hour and it didn't crash.

@S74HK9hV I was able to reproduce your experience. After the container had consumed around 50GB of virtual memory, it was terminated. Turning off the “Video Screenshot” function also solves the problem for me. The virtual memory consumption has remained constant for 2.5 hours now and Zwift is running without any problems. It is a

Would be interesting to see at which version this started to happen.

looks like the "Video Screenshot" feature was released on PC July 26th
https://forums.zwift.com/t/video-screenshots-windows-release-july-2023/609842
it was a server side change. dev claims that there was no special client version update needed:
https://forums.zwift.com/t/video-screenshots-windows-release-july-2023/609842/4

Well, that can't be true
On Fri, Oct 6, 2023, 01:57 S74HK9hV @.***> wrote:

Would be interesting to see at which version this started to happen.
looks like the "Video Screenshot" feature was released on PC July 26th
https://forums.zwift.com/t/video-screenshots-windows-release-july-2023/609842
it was a server side change. dev claims that there was no special client
version update needed:
https://forums.zwift.com/t/video-screenshots-windows-release-july-2023/609842/4
—
Reply to this email directly, view it on GitHub
https://github.com/netbrain/zwift/issues/26#issuecomment-1749808424, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AACTNC7YJQH6PN34MMHH5FTX55CNRAVCNFSM6AAAAAA5QEPSCOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONBZHAYDQNBSGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

authors: S74HK9hV fandan netbrain quietvoid

repo: netbrain/zwift

license: Unlicense


text:
IP address shows when searched but not in report IP Inventory

I am running Netdisco 2.58.3 and most things appear to be working quite well (I haven't tried all the features).  If I search for an IP address in the 'Find Anything' field such as 10.96.50.91, it shows me which switch it is connected to and all the normal info.  If I go to Reports -> IP -> IP Inventory and then put in 10.96.50.0/24, a small subset of the devices I can look up via the 'find anything' appear.  Any idea why?

I'm moving this into the main repo issues since it's probably unrelated to running in docker

source: gharchive/issue

repo: netdisco/netdisco-docker

license_type: permissive

license_source: github-api


text:
How to use webhook response instance

The Webhook::read function will return a Notification instance. Please, explore the different notifications availables.
I am getting the instance , but those properties are private, i can access directly, So how can i access that properties.. ??

There are public methods provided to access the entries. Follow the location where those properties have been declared and you'll find the methods to use. Some examples for Text instance:
$message_text = $webhook->message();
$userid = $webhook->customer()->id();
$user_name = $webhook->customer()->name();
$messageid = $webhook->id();

repo: netflie/whatsapp-cloud-api

license: MIT


text:
Class names including $ cause compile error

Describe the bug
If you use a class name with a $ sign, it will cause compiler errors in the .g.dart file. It seems the name is directly inserted into a Exception message without escaping.
This might occur with the default setting of the graphql_codegen package, which generates class names like Query$character$character.
For example:
throw Exception(
          'Mapping Query$character$character → Character failed because Query$character$character was null, and no default value was provided. '
          'Consider setting the whenSourceIsNull parameter on the MapType<Query$character$character, Character> to handle null values during mapping.');

To Reproduce
Code to reproduce issue:

Add a class with a $ in the mapping annotation
Run flutter pub run build_runner build

Demo project: mapprgraphql.zip
Expected behavior
The class names are espaced before they are merged into strings.
For example:
 throw Exception(
          'Mapping Query\$character\$character → Character failed because Query\$character\$character was null, and no default value was provided. '
          'Consider setting the whenSourceIsNull parameter on the MapType<Query\$character\$character, Character> to handle null values during mapping.');

Version info

Package version : 1.3.1

Additional context
As a workaround the graphql_codegen can be instructed to change all the class names to something safe, like using the _.
targets:
    $default:
        builders:

            graphql_codegen:
                options:
                    clients:
                        - graphql
                        - graphql_flutter
                    namingSeparator: "_" # <------- overwrite the default behavior to a safe char

            auto_mappr:
                enabled: false
            auto_mappr_after_graphql_codegen:
                enabled: true

builders:
    auto_mappr_after_graphql_codegen:
        import: "package:auto_mappr/auto_mappr.dart"
        builder_factories: ["autoMapprBuilder"]
        build_extensions: { ".dart": [".auto_mappr.g.part"] }
        auto_apply: root_package
        build_to: cache
        applies_builders: ["source_gen:combining_builder"]
        required_inputs: [".freezed.dart", ".drift.dart", ".graphql.dart"]

Hi again @denxorz ✋, thanks for opening an issue! Hmm, we need to take a look at this but for sure we should support all names with $ and _ in it.

Hello again indeed @tenhobi ,
Yeah it seems all generation of the classes is correct. But because the $ is unescaped in the Exception message, the compiler mistakes it for a string interpolation.
I suspect map_model_body_method_builder.dart:363 might need to do escape the value of mapping to fix this.
_ works fine as a workaround (because _ is not used for string interpolation).

authors: denxorz tenhobi


text:
Which version of goBGP should be used with SRv6-PI?

Can't find goBGP version 2.3.4 ?

Hi @beyond2002, there is a typo in our docs, the correct version is goBGP 2.34.0.
Thank you


text:
Update gatsby-config.js to resolve startup issue

Resolves https://github.com/netlify-templates/gatsby-starter-netlify-cms/issues/659

As mentioned above, this resolves issue 659.

What kind of change does this PR introduce?
bugfix. I think this likely got introduced via renovate changing a dependency which broke things.
Does this PR introduce a breaking change?
No
What needs to be documented once your changes are merged?
Nothing, no functional changes

Thank you!

source: gharchive/pull-request

authors: ZoltanVeres colmb


text:
rename deploy path

closes https://github.com/netlify/cli/issues/507

nice

authors: DavidWells sw-yx

repo: netlify/cli


text:
Suggested solutions for responsive UI

I've noticed that there are a couple of issues (one still open) regarding the responsiveness of the CMS. I've reviewed the existing collections page and have some suggestions on fixing the layout to improve the experience of using the CMS on a mobile.
Page switcher
The default screen you land on in the CMS would be the Contents page and listing, on desktop you have a main navigation in the header that allows you to switch between Contents, Media library and Workflow. This pattern won't work on a mobile so I suggest the introduction of a simple page switcher that only shows the name of the current page/view you are on and once you click this you get a list of options to change page (see below).

If this were to be implemented it would cause a potential issue with the media library as this loads as a modal/popup on desktop. I think it would make sense to implement a route for the media library for mobile view.
Account menu
There are a few links that can be consolidated into a single menu that would be displayed when the avatar is clicked, this allows for a clean header without losing any functionality (see below).

Sidebar and collection view
The main issue on mobile is the sidebar and collection listing, this is what renders the CMS unusable on mobile devices. A breakdown of change suggestions are below:

Remove sidebar completely
Introduce a new change collections link
I've removed the search but not entirely sure how I feel about limiting functionality on mobile but to make it usable for the time being it could be removed with a view to be re implemented in the future.

Quick add
I suggest introducing a floating action button to replace the quick add button in the header, this is a recognised pattern and again it would free up space in the header (see below).

You can see a working prototype of my suggestions here: https://bit.ly/2Z3MDTL
I appreciate this is quite a lot of changes but it would only impact the CMS on screens less than 768px. I'd be really keen to get your thoughts on these suggestions, I think they could be broken down into smaller issues and I would be more than happy to actually develop some of these solutions if you were to be happy with them.
If anything doesn't quite make sense or if you want to hear more of my reasoning for certain decisions then please let me know!

Woah this is fantastic!! If you want to put in the work, I’m good with the choices you’ve made here - they’re obviously a massive improvement over the CMS not working at all for mobile.
Any thoughts on the editor view?
Sent with GitHawk

That's great, I'll break them down into smaller pull requests as some of these improvements can be totally independent and self-contained. I haven't explored the repo in too much detail but I was wondering if you have a media query object at all? I've seen the style objects in netlify-cms-ui-default but there doesn't seem to be one in there. I would probably create a new object with the below pattern unless you already have one defined?
const mediaQueries = {
   xsmall: '',
   small: '',
   medium: '',
   large: '',
}

The only suggestion that I think will need additional input on is creating a new route for the media library - do you have any thoughts on this?
With regards to the editor view I haven't given it much thought just yet, I didn't want to go too far until you had seen these suggestions. I think some of the patterns I have used here can be reused on the editor screens but I'm happy to do a bit of research and mock some ideas together for that area too.

Scoped issues/pull requests would be perfect. I’m mobile right now and not sure if we have centralized media queries, but if we did they would probably be here: https://github.com/netlify/netlify-cms/blob/master/packages/netlify-cms-ui-default/src/styles.js
The media library has to open in a few different contexts, so it can’t have a dedicated route. If you can explain the goal maybe we can find a workaround?
Sent with GitHawk

That's where I thought they would be but they arent, I can add one in.
That makes sense, I only suggested it due to how the main view selector will work in the header but I think I may have a solution for this anyway.
Ill try and work on these over the next few days.

Sounds great - reach out in Slack if you have any questions or need to bounce something off of a maintainer.

Maybe something like this for the editor.
Also, the widgets need to be responsive.

hey @alexbuiltit, love your design. i would love to see a more mobile-friendly UI for netlify CMS. is there anything you need help with? i'd be happy to contribute

hey @alexbuiltit, love your design. i would love to see a more mobile-friendly UI for netlify CMS. is there anything you need help with? i'd be happy to contribute

authors: alexbuiltit erquhart hkennyv pniedzwiedzinski

repo: netlify/netlify-cms


text:
Don't allow non repo members into admin

- Do you want to request a feature or report a bug?

bug

- What is the current behaviour?

If I log in as a GitHub user that is not a member of the repository, I am able to see part of the admin interface. I am even able to go to the collection editing page and fill out the form. I get an error when I attempt to save the new collection entry, but it seems odd that anyone could log into my admin and have limited access.

- If the current behaviour is a bug, please provide the steps to reproduce.

Log in as a GitHub user that is not a member of the repository

- What is the expected behaviour?

I would expect that a user would get an error message saying they are not a member of the repository, and then not aloud to see the admin interface.

- Please mention your node.js, and operating system version.

Node: v6.10.1
macOS Sierra

Ultimately, the interface is only showing information that is publicly available in the config.yml, so it's not a security concern. However, I think it would be more user friendly to display an error message instead of a non-functioning UI.

GitHub Permission Checking APIs: https://developer.github.com/v3/repos/collaborators/

I was just coming to ask about this. Actually found out by mistake as a collaborator hadn't joined properly. So was seeing API errors and I was off down a rabbit hole till I saw this.

It's a priority for sure. I don't expect it would be a very heavy lift if anyone wants to take a crack at it.

Not very familiar with React -- would you put this in AuthenticationPage.js or API.js?

Does the same issue apply to the netlify-auth backend?

Good point, @josephearl, my only thought was that since we may add GitLab support eventually, we might want to keep the implementations separated.

Yes, the same fix might need to be applied twice. The github backend uses Authenticator from lib/netlify-auth.js.
The netlify-auth backend uses NetlifyAuthClient from netlify-auth-js (an npm package).

Need design for denied screen; when a user tries to access/login but they do not have push access to the repo

Would it make sense to also add some kind of .htaccess or or other permissions solution to deny the general public access to the config.yml file?
I'm gonna try and figure out an implementation for both of these asap as I'd like to make sure this is all taken care of before I deploy anything to production.

Actually, @Benaiah is working on #341, which should result in the config file only containing backend details (which must be publicly accessible), while the remainder of the config would be fetched from the repo. So public access of config.yml shouldn't be a problem.

Unless anyone has any issues, I'm going to close this.

authors: chadfawcett colindensem erquhart josephearl neutyp tech4him1 tortilaman


text:
Is there or could there be a good workflow for using the CMS to do translation?

- Do you want to request a feature or report a bug?
feature
- What is the current behavior?
missing feature :)
- If the current behavior is a bug, please provide the steps to reproduce.
n/a
- What is the expected behavior?
the hoped-for behavior is that the CMS would support a workflow that allows for translation of a set of fixed strings.  It may already do this, so the solution to this issue may be "here's a way to set up that workflow" but @dkjess and I were talking and I didn't have one at hand.
Suppose that your app uses strings for all of the text in the site.  The site is built from some arbitrary-format files (e.g. ERB files).  Is there a way that this and only this could be handled by the CMS?  My suggestion was something like:

use a markdown file to contain the original strings and placeholders for their translations
use the CMS to edit that markdown file (already supported by the CMS) and
pull the content from the markdown file into your app using a script (something smarter than, but resembling "TOKEN1_SPANISH=grep TOKEN1_SPANISH input.md | cut -d= -f2 sed s/TOKEN1_SPANISH/$TOKEN1_SPANISH/g file.erb" and cycling through the tokens to repeat.

I guess the big hangup is, this wouldn't be a category, doesn't need media files, etc - just wants a git-backed way to expose just this file for editing to the content team, whose commit could still trigger a site build.  Clearly there would need to be some sanity checking in the script, but besides that, any advice on achieving this workflow?
- Please mention your node.js, and operating system version.
shouldn't matter :)

@fool it's an interesting idea - but I think this is more the job of static site generators like Jekyll or Hugo.
There is a plugin for Jekyll that can do this https://github.com/Anthony-Gaudino/jekyll-multiple-languages-plugin - and you would be able to edit those files using Netlify CMS by defining collections for the localization files.

@fool closing, I agree that this is probably out of scope for the cms.

authors: erquhart fool josephearl


text:
How to get in touch about a security issue?

Hey there,
As there isn't a SECURITY.md with an email on your repository, I am unsure how to contact you regarding a potential security issue.
Would you kindly add a SECURITY.md file with an e-mail to your repository? GitHub recommends this as the best way to ensure security issues are responsibly disclosed, and it would massively help security researchers get in touch next time.
Thank you so much and I look forward to hearing from you!

Hi @zidingz, thank you for raising this.
You can report to security@netlify.com or via Hacker one.
Keeping this issue open until we add a SECURITY.md.

Thank you for your quick response!
An email will be with you shortly.

Closing per https://github.com/netlify/netlify-cms/security/policy.
We've added an organization wide policy to our repos. Thank you for raising this!

authors: erezrokah zidingz


text:
1486 html

- Summary

Replaces divs with HTML elements #1486
Create HTML lists for list of collections in sidebar & EntryListing and EntryCard in main

- Test plan
AFAIK, this has to be tested manually to see if any layout issues, as I'm not aware of any visual regression tests for project.

- Description for the changelog
Use semantic HTML elements in structure of app

Same hoss I'm afraid…
![Small chestnut horse peering out of a wood](https://farm1.staticflickr.com/932/28618494257_1179c63348_z_d.jpg
- A picture of a cute animal (not mandatory but encouraged)

Deploy preview for netlify-cms-www ready!
Built with commit 9c6516ed9fe8d31c910439dddcfef6ec76696995
https://deploy-preview-1585--netlify-cms-www.netlify.com

Pushed a fix for an e2e test that was depending on a specific tag (our setup is brittle like that). Should pass now.

Deploy preview for cms-demo ready!
Built with commit 07e1a7fd60142ec615be695c1d77eeda22fc6972
https://deploy-preview-1585--cms-demo.netlify.com

authors: erquhart growdigital verythorough


text:
fix: bump babel-plugin-inline-svg to v1.0.1

Closes #2345
Summary
Fixed version to support Node 12 for monorepo

Awesome, thanks Tony 👍

authors: erquhart talves


text:
Heisenbug: periodic error TextMarshaler error

On creating a Netlify site with no settings site (params are empty), I'm periodically getting this:
netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

Sorry, it is in Go => string format.
This is in a loop of creating/deleting a site with no params. Seems to be about 1 in 10 chance.

Getting this a lot more often tonight... usually when running all tests (which are now up in the dozens). And it seems to only be the latter tests.
Could this perhaps be some sort of rate limiting error that the Netlify API client is not reporting properly? Terraform can make an awful lot of API calls in a very short period of time and I just now realized that I didn't have to configure any backoff parameters so unsure if that's related or not. Just an idea.
Here is a snippet example:
=== RUN   TestProvider
--- PASS: TestProvider (0.00s)
=== RUN   TestProvider_impl
--- PASS: TestProvider_impl (0.00s)
=== RUN   TestAccDeployKey_basic
--- PASS: TestAccDeployKey_basic (3.99s)
=== RUN   TestAccDeployKey_disappears
--- PASS: TestAccDeployKey_disappears (2.36s)
=== RUN   TestAccHook
--- FAIL: TestAccHook (0.71s)
	testing.go:513: Step 0 error: Error applying: 1 error(s) occurred:

		* netlify_site.test: 1 error(s) occurred:

		* netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
=== RUN   TestAccHook_disappears
--- FAIL: TestAccHook_disappears (0.62s)
	testing.go:513: Step 0 error: Error applying: 1 error(s) occurred:

		* netlify_site.test: 1 error(s) occurred:

		* netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
=== RUN   TestAccHook_updateData
--- FAIL: TestAccHook_updateData (0.60s)
	testing.go:513: Step 0 error: Error applying: 1 error(s) occurred:

		* netlify_site.test: 1 error(s) occurred:

		* netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
=== RUN   TestAccSite_basic
--- FAIL: TestAccSite_basic (0.55s)
	testing.go:513: Step 0 error: Error applying: 1 error(s) occurred:

		* netlify_site.test: 1 error(s) occurred:

		* netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
=== RUN   TestAccSite_disappears
--- FAIL: TestAccSite_disappears (0.49s)
	testing.go:513: Step 0 error: Error applying: 1 error(s) occurred:

		* netlify_site.test: 1 error(s) occurred:

		* netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
=== RUN   TestAccSite_updateName
--- FAIL: TestAccSite_updateName (0.49s)
	testing.go:513: Step 0 error: Error applying: 1 error(s) occurred:

		* netlify_site.test: 1 error(s) occurred:

		* netlify_site.test: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

It's possible that this is a rate limiting error, I'm going to dive into the logs. Can you try enabling debug mode? Setting os.Setenv("DEBUG", "1") should make open-api to log all the request/response interactions raw, which might let you see the response object.

@calavera Confirmed! 😊
HTTP/2.0 429 Too Many Requests
Content-Length: 70
Age: 0
Content-Type: text/plain; charset=utf-8
Date: Wed, 20 Dec 2017 17:22:52 GMT
Server: Netlify
X-Ratelimit-Limit: 3
X-Ratelimit-Remaining: -2
X-Ratelimit-Reset: 2017-12-20 17:23:52 UTC

{"code":429,"error":"API Deploy rate limit surpassed for application"}

Many API clients we work with in Terraform implement handling of the X-Ratelimit-* headers themselves (with options for backoff and so on). Is that something you're interested in? In the mean time we can probably do something...
In any case one issue is that that error isn't being parsed properly into an error message!

I asked our TF providers team and they said that the API client pretty much always handles this in some way. They gave me a couple examples to share if you're interested.
Azure: Azure actually does a really fantastic job. Retries are pretty much invisible and just work. They use go-autorest under the hood and here is the relevant code: https://github.com/Azure/go-autorest/blob/809ed2ef5c4c9a60c3c2f3aa9cc11f3a7c2ce59d/autorest/sender.go#L208 The only tunable they expose is "MaxRetries" and we just use the default.
AWS: The AWS client uses a Handlers struct which is a callback for various stages of the API request. One of those callbacks is Retry. But by default the AWS client handles the rate limit, waits the necessary window, and retries the request: https://github.com/terraform-providers/terraform-provider-aws/blob/cba83a50b79c55183b918152cd94aed1eaac8c98/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go#L10 And setting the handlers: https://github.com/terraform-providers/terraform-provider-aws/blob/cba83a50b79c55183b918152cd94aed1eaac8c98/aws/config.go#L437

Thanks for the info, those examples are super useful. I agree that we should handle the retries in the client.

This started happening again in some circumstances around timed out uploadFile call.  Re-opening to track and investigate.

Here's an example in the wild: https://app.netlify.com/sites/devopsdays-web/deploys/5c7dbf8c591fc60008c4fd86
We have almost nothing happening in our deploy that should take much time. Last week we had timeouts, and this started happening today. Happy to work with you if you want to try to reproduce/test with us.
/cc @mattstratton

Thank you @bridgetkromhout! We've identified the underlying issue and are working on a fix.  Once that's out, I'll dig around and figure out why errors aren't propagating correctly (to figure out what's causing the awkward TextMarshaler error to be what you are seeing, instead of something actually useful).

The offending parameter in the response seems to be application/json missing from Content-Type.  So its super important our endpoints set that header.  It seems like this is sometimes not the case, especially when things are going wrong.
Asking about the TextConsumer error in go-swagger's slack I received this tip:
it should only do that if there is no default content type set
at the global level in the spec

Which we do set if my understanding is correct.  This could be an error in the open-api runtime, or we aren't setting a definition correctly in our spec, however I suspect its a bug or some error handling in need of improvement.

Tips to fix upstream:

ic I just checked our templates
yeah we don't implement the text marshaller
it's probably very similar to the binary stuff though
https://github.com/go-swagger/go-swagger/blob/master/generator/templates/schema.gotmpl#L215-L233

The problem seems to be in this generated code:
// Code generated by go-swagger; DO NOT EDIT.

package sales_order

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"fmt"
	"io"

	"github.com/go-openapi/runtime"

	strfmt "github.com/go-openapi/strfmt"
)

// SalesOrderPostReader is a Reader for the SalesOrderPost structure.
type SalesOrderPostReader struct {
	formats strfmt.Registry
}

// ReadResponse reads a server response into the received o.
func (o *SalesOrderPostReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) {
	switch response.Code() {

	case 201:
		result := NewSalesOrderPostCreated()
		if err := result.readResponse(response, consumer, o.formats); err != nil { /* It's failing in the call to readResponse. I presume because the response.Body() is nil *shrug* */
			return nil, err
		}

		return result, nil

	default:
		return nil, runtime.NewAPIError("unknown error", response, response.Code())
	}
}

// NewSalesOrderPostCreated creates a SalesOrderPostCreated with default headers values
func NewSalesOrderPostCreated() *SalesOrderPostCreated {
	return &SalesOrderPostCreated{}
}

/*SalesOrderPostCreated handles this case with default header values.

Created
*/
type SalesOrderPostCreated struct {
	Payload interface{}
}

func (o *SalesOrderPostCreated) Error() string {
	return fmt.Sprintf("[POST /controller/api/v1/salesorder][%d] salesOrderPostCreated  %+v", 201, o.Payload)
}

func (o *SalesOrderPostCreated) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {

	// response payload
	if err := consumer.Consume(response.Body(), &o.Payload); err != nil && err != io.EOF {
		return err
	}

	return nil
}

It seems to be failing in the call to ReadResponse in the 201 case. I'm still investigating, but perhaps the response.Body is nil and so it's failing to deserialize it?

As far as I am aware, its when we don't receive a content type of json, and it appeared to be an upstream generator issue.  I intended to look into it, but ran out of time in the window I had.

I believe I might have fixed this issue. See my issue here: https://github.com/go-swagger/go-swagger/issues/1917

@jeffreydwalter wow amazing.  I'll pull it in.

@bcomnes let me know how it goes. Should be enough to just update the openapi/runtime package.

@jeffreydwalter I don't think it does quite solve the issue, but I'll take the updates!  The issue I think we are running into here is twofold:

If the API you are talking to respondes in a weird way, say, returns a non json content type, you get a NoConsumer error.  While this is the cause of the error, it would be better if the client returned a better error along the lines of, Bad response, error code etc.
If the API should return JSON and it isn't, the API should be fixed to return JSON.

@bcomnes sorry for the false hope. 🙃 In my case I was dealing with issue number two. I had a third party API that was returning an empty body and text/plain in response to a 302 after a POST. The spec only had application/json specified for the content-type. Since the body was empty, the client was trying to unmarshal it as plain text and failing.

It seem to me that the TextConsumer is trying to unmarshal an empty body into models.Error and failing. Thinking about it further, I think my fix is inadequate. What happened when you updated openapi/runtime?

I think ultimately, that message is due to the fact that the API is returning a content type that the spec doesn't define. The spec and/or the API need fixing.
You can see in this comment that the content type is text/plain: https://github.com/netlify/open-api/issues/58#issuecomment-353127943
The openapi/runtime code is trying to cast the request data data.(encoding.TextUnmarshaler) and failing since models.Error doesn't implement the TextUnmarshaler interface. See: https://github.com/go-openapi/runtime/blob/3d6572c5a80826d5e7f6362d4c681875207c3ef6/text.go#L48

Its been a while, but iirc the ideas I had were:

Support encoding.TextUnmarshaler in the Error template.
Wrap the no-consumer error to return a better top-level error.  While no consumer IS the underlying problem, the consumer of the client should get an error that more closely resembles a server error or bad response error (e.g. what was the route, what was the code, what was the content type etc).

sorry for the false hope

No problem at all.  I appreciate the pings on possibly helpful updates and it sounds like you DID fix something that maybe affects us but I haven't realized yet.

Can someone unassigned me on this?  I can't for some reason.

Error: Deploy did not succeed: Failed to execute deploy: &{0 } (*models.Error) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface
Seeing error like this when I tried to deploy just now

authors: bcomnes bridgetkromhout calavera jeffreydwalter mitchellh pencilcheck

repo: netlify/open-api


text:
Update workflow, setup workflow-test

Can trigger workflow from branch workflow-test
Make default multi-arch to single amd64
Remove specific ci targets; make shortlive builds more straightforward
Disambiguate makefile env vs workflow env
Remove unused targets
Remove now unused shortlived dockerfile

Testing worflows:

on PR: https://github.com/netobserv/flowlogs-pipeline/actions/runs/5066872158/jobs/9097209551
on merge: https://github.com/netobserv/flowlogs-pipeline/actions/runs/5066838603/jobs/9097135603
on release: https://github.com/netobserv/flowlogs-pipeline/actions/runs/5066854616/jobs/9097170982

Hold on, something wrong here: the per-PR sha isn't in quay

Hold on, something wrong here: the per-PR sha isn't in quay

OK, my last commit fixed it

I've pushed a new commit, to restore the latest tagging that I removed in the first place - will have to do so on other repos too

/LGTM

/approve

repo: netobserv/flowlogs-pipeline


text:
NETOBSERV-1914 improved status message

Description
Improve status message and display it only if one storage is empty.

Dependencies
n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[X] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[X] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

/label qe-approved
(based on testing on BP PR)

authors: jpinsonneau memodi


text:
[Bug]: lbvserer fails with servicename

Summary
it is imposible to delete vserver:
"msg": "Exception <class 'KeyError'>: 'servicename'"

Issue Type
Bug Report
Component Name
adc.lbvserver
Python Version
$ python --version # or python3 --version
3.9

Ansible Version
$ ansible --version
2.15

Ansible Configuration
$ ansible-config dump --only-changed

netscaler.adc Collection Version
$ ansible-galaxy collection list netscaler.adc
2.0.3

Target NetScaler Version
> show ns version

Equivalent NetScaler CLI Command

Steps to Reproduce

- name: Task
  delegate_to: localhost
  netscaler.adc.lbvserver:
        connfailover: STATEFUL
        ipv46: 10.10.10.231
        lbvserver_service_binding:
          binding_members:
            - name: cust2foo-test-cert-10.10.10.231-tcp-7777
            - servicename: 10.123.123.123-tcp-11451
        listenpolicy: client.ip.src.eq(100.100.100.1)
        name: cust2foo-test-cert-10.10.10.231-tcp-7777
        netprofile: cust2foo-default-cert-snat-ip
        port: 7777
        rhistate: ACTIVE
        servicetype: TCP
        state: absent

Expected Results
deleted lbvserver
Actual Results

FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "adfsproxyprofile": null,
            "api_path": "nitro/v1/config",
            "appflowlog": "ENABLED",
            "authentication": "OFF",
            "authenticationhost": null,
            "authn401": "OFF",
            "authnprofile": null,
            "authnvsname": null,
            "backuplbmethod": "ROUNDROBIN",
            "backuppersistencetimeout": 2.0,
            "backupvserver": null,
            "bypassaaaa": "NO",
            "cacheable": "NO",
            "clttimeout": null,
            "comment": "DO NOT MODIFY MANUALY! ansible source: 00testpp.yml.rollback",
            "connfailover": "STATEFUL",
            "cookiename": null,
            "datalength": null,
            "dataoffset": null,
            "dbprofilename": null,
            "dbslb": "DISABLED",
            "disableprimaryondown": "DISABLED",
            "dns64": null,
            "dnsprofilename": null,
            "downstateflush": "ENABLED",
            "hashlength": 80.0,
            "healththreshold": null,
            "httpprofilename": null,
            "httpsredirecturl": null,
            "icmpvsrresponse": "PASSIVE",
            "insertvserveripport": null,
            "ipmask": null,
            "ippattern": null,
            "ipset": null,
            "ipv46": "10.10.10.231",
            "l2conn": null,
            "lbmethod": "LEASTCONNECTION",
            "lbprofilename": null,
            "lbvserver_analyticsprofile_binding": null,
            "lbvserver_appflowpolicy_binding": null,
            "lbvserver_appfwpolicy_binding": null,
            "lbvserver_appqoepolicy_binding": null,
            "lbvserver_auditnslogpolicy_binding": null,
            "lbvserver_auditsyslogpolicy_binding": null,
            "lbvserver_authorizationpolicy_binding": null,
            "lbvserver_botpolicy_binding": null,
            "lbvserver_cachepolicy_binding": null,
            "lbvserver_cmppolicy_binding": null,
            "lbvserver_contentinspectionpolicy_binding": null,
            "lbvserver_dnspolicy64_binding": null,
            "lbvserver_feopolicy_binding": null,
            "lbvserver_lbpolicy_binding": null,
            "lbvserver_responderpolicy_binding": null,
            "lbvserver_rewritepolicy_binding": null,
            "lbvserver_service_binding": {
                "binding_members": [
                    {
                        "name": "cust2foo-test-cert-10.10.10.231-tcp-7777"
                    },
                    {
                        "servicename": "10.123.123.123-tcp-11451"
                    }
                ],
                "mode": "desired"
            },
            "lbvserver_servicegroup_binding": null,
            "lbvserver_spilloverpolicy_binding": null,
            "lbvserver_tmtrafficpolicy_binding": null,
            "lbvserver_transformpolicy_binding": null,
            "lbvserver_videooptimizationdetectionpolicy_binding": null,
            "lbvserver_videooptimizationpacingpolicy_binding": null,
            "listenpolicy": "client.ip.src.eq(100.100.100.1)",
            "listenpriority": 101.0,
            "m": "IP",
            "macmoderetainvlan": "DISABLED",
            "maxautoscalemembers": null,
            "minautoscalemembers": null,
            "mssqlserverversion": "2008R2",
            "mysqlcharacterset": null,
            "mysqlprotocolversion": null,
            "mysqlservercapabilities": null,
            "mysqlserverversion": null,
            "name": "cust2foo-test-cert-10.10.10.231-tcp-7777",
            "netmask": null,
            "netprofile": "cust2foo-default-cert-snat-ip",
            "newname": null,
            "newservicerequest": null,
            "newservicerequestincrementinterval": null,
            "newservicerequestunit": "PER_SECOND",
            "nitro_auth_token": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "nitro_pass": null,
            "nitro_protocol": "https",
            "nitro_user": null,
            "nsip": "10.10.10..35",
            "oracleserverversion": "10G",
            "order": null,
            "orderthreshold": null,
            "persistavpno": null,
            "persistencebackup": null,
            "persistencetype": null,
            "persistmask": null,
            "port": 7777,
            "probeport": null,
            "probeprotocol": null,
            "probesuccessresponsecode": "\"200 OK\"",
            "processlocal": "DISABLED",
            "push": "DISABLED",
            "pushlabel": "\"none\"",
            "pushmulticlients": "NO",
            "pushvserver": null,
            "quicbridgeprofilename": null,
            "quicprofilename": null,
            "range": 1.0,
            "recursionavailable": "NO",
            "redirectfromport": null,
            "redirectportrewrite": "DISABLED",
            "redirurl": null,
            "redirurlflags": null,
            "resrule": "\"none\"",
            "retainconnectionsoncluster": "NO",
            "rhistate": "ACTIVE",
            "rtspnat": "OFF",
            "rule": "\"none\"",
            "save_config": false,
            "servicename": null,
            "servicetype": "TCP",
            "sessionless": "DISABLED",
            "skippersistency": "None",
            "sobackupaction": null,
            "somethod": null,
            "sopersistence": "DISABLED",
            "sopersistencetimeout": 2.0,
            "sothreshold": null,
            "state": "absent",
            "tcpprobeport": null,
            "tcpprofilename": null,
            "td": null,
            "timeout": 2.0,
            "toggleorder": "ASCENDING",
            "tosid": null,
            "trofspersistence": "ENABLED",
            "v6netmasklen": 128.0,
            "v6persistmasklen": 128.0,
            "validate_certs": false,
            "vipheader": null,
            "weight": null
        }
    },
    "loglines": [
        "DEBUG: Initializing ModuleExecutor for resource lbvserver",
        "TRACE: ENTRY: get_valid_desired_states() called with ('lbvserver',), {}",
        "TRACE: EXIT: get_valid_desired_states() returned {'disabled', 'enabled', 'absent', 'present'}",
        "TRACE: ENTRY: get_netscaler_version() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>,), {}",
        "TRACE: ENTRY: get_resource() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>, 'nsversion'), {}",
        "TRACE: ENTRY: send() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>, 'GET', 'https://10.10.10..35/nitro/v1/config/nsversion'), {}",
        "DEBUG: self={'_module': <ansible.module_utils.basic.AnsibleModule object at 0x7f5f1e8cfc70>, 'check_mode': False, 'api_path': 'nitro/v1/config', '_headers': {'Content-Type': 'application/json', 'User-Agent': 'ansible-ctxadc', 'Cookie': 'NITRO_AUTH_TOKEN=********'}}",
        "DEBUG: fetch_url()-resonse-info={'url': 'https://10.10.10..35/nitro/v1/config/nsversion', 'status': 200, 'date': 'Sun, 03 Dec 2023 08:24:05 GMT', 'server': 'Apache', 'x-frame-options': 'SAMEORIGIN', 'expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'pragma': 'no-cache', 'vary': 'Accept-Encoding', 'feature-policy': \"camera 'none'; microphone 'none'; geolocation 'none'\", 'referrer-policy': 'no-referrer', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-length': '201', 'content-type': 'application/json; charset=utf-8', 'connection': 'close', 'cookies_string': '', 'cookies': {}, 'msg': 'OK (201 bytes)'}",
        "TRACE: EXIT: send() returned (200, {'errorcode': 0, 'message': 'Done', 'severity': 'NONE', 'nsversion': {'installedversion': False, 'version': 'NetScaler NS13.1: Build 42.47.nc, Date: Feb 22 2023, 08:08:13   (64-bit)', 'mode': '1'}})",
        "TRACE: EXIT: get_resource() returned [{'installedversion': False, 'version': 'NetScaler NS13.1: Build 42.47.nc, Date: Feb 22 2023, 08:08:13   (64-bit)', 'mode': '1'}]",
        "TRACE: EXIT: get_netscaler_version() returned (13.1, 42.47)",
        "INFO: NetScaler version: 13.1-42.47",
        "DEBUG: All params (including non module-specific params) are: {'comment': 'DO NOT MODIFY MANUALY! ansible source: 00testpp.yml.rollback', 'connfailover': 'STATEFUL', 'ipv46': '10.10.10.231', 'lbvserver_service_binding': {'binding_members': [{'name': 'cust2foo-test-cert-10.10.10.231-tcp-7777'}, {'servicename': '10.123.123.123-tcp-11451'}], 'mode': 'desired'}, 'listenpolicy': 'client.ip.src.eq(100.100.100.1)', 'name': 'cust2foo-test-cert-10.10.10.231-tcp-7777', 'netprofile': 'cust2foo-default-cert-snat-ip', 'port': 7777, 'rhistate': 'ACTIVE', 'servicetype': 'TCP', 'state': 'absent', 'nsip': '10.10.10..35', 'nitro_protocol': 'https', 'validate_certs': False, 'nitro_auth_token': '********', 'save_config': False, 'api_path': 'nitro/v1/config', 'appflowlog': 'ENABLED', 'authentication': 'OFF', 'authn401': 'OFF', 'backuplbmethod': 'ROUNDROBIN', 'backuppersistencetimeout': 2.0, 'bypassaaaa': 'NO', 'cacheable': 'NO', 'dbslb': 'DISABLED', 'disableprimaryondown': 'DISABLED', 'downstateflush': 'ENABLED', 'hashlength': 80.0, 'icmpvsrresponse': 'PASSIVE', 'lbmethod': 'LEASTCONNECTION', 'listenpriority': 101.0, 'm': 'IP', 'macmoderetainvlan': 'DISABLED', 'mssqlserverversion': '2008R2', 'newservicerequestunit': 'PER_SECOND', 'oracleserverversion': '10G', 'probesuccessresponsecode': '\"200 OK\"', 'processlocal': 'DISABLED', 'push': 'DISABLED', 'pushlabel': '\"none\"', 'pushmulticlients': 'NO', 'range': 1.0, 'recursionavailable': 'NO', 'redirectportrewrite': 'DISABLED', 'resrule': '\"none\"', 'retainconnectionsoncluster': 'NO', 'rtspnat': 'OFF', 'rule': '\"none\"', 'sessionless': 'DISABLED', 'skippersistency': 'None', 'sopersistence': 'DISABLED', 'sopersistencetimeout': 2.0, 'timeout': 2.0, 'toggleorder': 'ASCENDING', 'trofspersistence': 'ENABLED', 'v6netmasklen': 128.0, 'v6persistmasklen': 128.0, 'nitro_user': None, 'nitro_pass': None, 'adfsproxyprofile': None, 'authenticationhost': None, 'authnprofile': None, 'authnvsname': None, 'backupvserver': None, 'clttimeout': None, 'cookiename': None, 'datalength': None, 'dataoffset': None, 'dbprofilename': None, 'dns64': None, 'dnsprofilename': None, 'healththreshold': None, 'httpprofilename': None, 'httpsredirecturl': None, 'insertvserveripport': None, 'ipmask': None, 'ippattern': None, 'ipset': None, 'l2conn': None, 'lbprofilename': None, 'lbvserver_analyticsprofile_binding': None, 'lbvserver_appflowpolicy_binding': None, 'lbvserver_appfwpolicy_binding': None, 'lbvserver_appqoepolicy_binding': None, 'lbvserver_auditnslogpolicy_binding': None, 'lbvserver_auditsyslogpolicy_binding': None, 'lbvserver_authorizationpolicy_binding': None, 'lbvserver_botpolicy_binding': None, 'lbvserver_cachepolicy_binding': None, 'lbvserver_cmppolicy_binding': None, 'lbvserver_contentinspectionpolicy_binding': None, 'lbvserver_dnspolicy64_binding': None, 'lbvserver_feopolicy_binding': None, 'lbvserver_lbpolicy_binding': None, 'lbvserver_responderpolicy_binding': None, 'lbvserver_rewritepolicy_binding': None, 'lbvserver_servicegroup_binding': None, 'lbvserver_spilloverpolicy_binding': None, 'lbvserver_tmtrafficpolicy_binding': None, 'lbvserver_transformpolicy_binding': None, 'lbvserver_videooptimizationdetectionpolicy_binding': None, 'lbvserver_videooptimizationpacingpolicy_binding': None, 'maxautoscalemembers': None, 'minautoscalemembers': None, 'mysqlcharacterset': None, 'mysqlprotocolversion': None, 'mysqlservercapabilities': None, 'mysqlserverversion': None, 'netmask': None, 'newname': None, 'newservicerequest': None, 'newservicerequestincrementinterval': None, 'order': None, 'orderthreshold': None, 'persistavpno': None, 'persistencebackup': None, 'persistencetype': None, 'persistmask': None, 'probeport': None, 'probeprotocol': None, 'pushvserver': None, 'quicbridgeprofilename': None, 'quicprofilename': None, 'redirectfromport': None, 'redirurl': None, 'redirurlflags': None, 'servicename': None, 'sobackupaction': None, 'somethod': None, 'sothreshold': None, 'tcpprobeport': None, 'tcpprofilename': None, 'td': None, 'tosid': None, 'vipheader': None, 'weight': None}",
        "TRACE: ENTRY: _filter_resource_module_params() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>,), {}",
        "DEBUG: Desired `lbvserver` module specific params are: {'comment': 'DO NOT MODIFY MANUALY! ansible source: 00testpp.yml.rollback', 'connfailover': 'STATEFUL', 'ipv46': '10.10.10.231', 'listenpolicy': 'client.ip.src.eq(100.100.100.1)', 'name': 'cust2foo-test-cert-10.10.10.231-tcp-7777', 'netprofile': 'cust2foo-default-cert-snat-ip', 'port': 7777, 'rhistate': 'ACTIVE', 'servicetype': 'TCP', 'appflowlog': 'ENABLED', 'authentication': 'OFF', 'authn401': 'OFF', 'backuplbmethod': 'ROUNDROBIN', 'backuppersistencetimeout': 2.0, 'bypassaaaa': 'NO', 'cacheable': 'NO', 'dbslb': 'DISABLED', 'disableprimaryondown': 'DISABLED', 'downstateflush': 'ENABLED', 'hashlength': 80.0, 'icmpvsrresponse': 'PASSIVE', 'lbmethod': 'LEASTCONNECTION', 'listenpriority': 101.0, 'm': 'IP', 'macmoderetainvlan': 'DISABLED', 'mssqlserverversion': '2008R2', 'newservicerequestunit': 'PER_SECOND', 'oracleserverversion': '10G', 'probesuccessresponsecode': '\"200 OK\"', 'processlocal': 'DISABLED', 'push': 'DISABLED', 'pushlabel': '\"none\"', 'pushmulticlients': 'NO', 'range': 1.0, 'recursionavailable': 'NO', 'redirectportrewrite': 'DISABLED', 'resrule': '\"none\"', 'retainconnectionsoncluster': 'NO', 'rtspnat': 'OFF', 'rule': '\"none\"', 'sessionless': 'DISABLED', 'skippersistency': 'None', 'sopersistence': 'DISABLED', 'sopersistencetimeout': 2.0, 'timeout': 2.0, 'toggleorder': 'ASCENDING', 'trofspersistence': 'ENABLED', 'v6netmasklen': 128.0, 'v6persistmasklen': 128.0}",
        "TRACE: EXIT: _filter_resource_module_params() returned None",
        "TRACE: ENTRY: _filter_desired_bindings() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>,), {}",
        "DEBUG: Desired `lbvserver` module specific bindings are: ['lbvserver_service_binding']",
        "TRACE: EXIT: _filter_desired_bindings() returned None",
        "TRACE: ENTRY: get_existing_resource() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>,), {}",
        "TRACE: ENTRY: get_resource() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>,), {'resource_name': 'lbvserver', 'resource_id': 'cust2foo-test-cert-10.10.10.231-tcp-7777', 'args': {}, 'filter': {}}",
        "TRACE: ENTRY: send() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>, 'GET', 'https://10.10.10..35/nitro/v1/config/lbvserver/cust2foo-test-cert-10.10.10.231-tcp-7777'), {}",
        "DEBUG: self={'_module': <ansible.module_utils.basic.AnsibleModule object at 0x7f5f1e8cfc70>, 'check_mode': False, 'api_path': 'nitro/v1/config', '_headers': {'Content-Type': 'application/json', 'User-Agent': 'ansible-ctxadc', 'Cookie': 'NITRO_AUTH_TOKEN=********'}}",
        "DEBUG: fetch_url()-resonse-info={'url': 'https://10.10.10..35/nitro/v1/config/lbvserver/cust2foo-test-cert-10.10.10.231-tcp-7777', 'status': 404, 'date': 'Sun, 03 Dec 2023 08:24:06 GMT', 'server': 'Apache', 'x-frame-options': 'SAMEORIGIN', 'expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'pragma': 'no-cache', 'vary': 'Accept-Encoding', 'feature-policy': \"camera 'none'; microphone 'none'; geolocation 'none'\", 'referrer-policy': 'no-referrer', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-length': '126', 'content-type': 'application/json; charset=utf-8', 'connection': 'close', 'msg': 'HTTP Error 404: Not Found', 'body': b'{ \"errorcode\": 258, \"message\": \"No such resource [name, cust2foo-test-cert-10.10.10.231-tcp-7777]\", \"severity\": \"ERROR\" }'}",
        "TRACE: EXIT: send() returned (404, {'errorcode': 258, 'message': 'No such resource [name, cust2foo-test-cert-10.10.10.231-tcp-7777]', 'severity': 'ERROR'})",
        "TRACE: EXIT: get_resource() returned []",
        "TRACE: EXIT: get_existing_resource() returned {}",
        "TRACE: ENTRY: main() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>,), {}",
        "TRACE: ENTRY: sync_all_bindings() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>,), {}",
        "TRACE: ENTRY: sync_single_binding() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>, 'lbvserver_service_binding'), {}",
        "INFO: Binding mode is `desired`",
        "DEBUG: Desired binding members: [{'name': 'cust2foo-test-cert-10.10.10.231-tcp-7777'}, {'servicename': '10.123.123.123-tcp-11451'}]",
        "TRACE: ENTRY: get_bindings() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>,), {'binding_name': 'lbvserver_service_binding', 'binding_id': 'cust2foo-test-cert-10.10.10.231-tcp-7777'}",
        "TRACE: ENTRY: get_resource() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>,), {'resource_name': 'lbvserver_service_binding', 'resource_id': 'cust2foo-test-cert-10.10.10.231-tcp-7777'}",
        "TRACE: ENTRY: send() called with (<ansible_collections.netscaler.adc.plugins.module_utils.client.NitroAPIClient object at 0x7f5f1eee1eb0>, 'GET', 'https://10.10.10..35/nitro/v1/config/lbvserver_service_binding/cust2foo-test-cert-10.10.10.231-tcp-7777'), {}",
        "DEBUG: self={'_module': <ansible.module_utils.basic.AnsibleModule object at 0x7f5f1e8cfc70>, 'check_mode': False, 'api_path': 'nitro/v1/config', '_headers': {'Content-Type': 'application/json', 'User-Agent': 'ansible-ctxadc', 'Cookie': 'NITRO_AUTH_TOKEN=********'}}",
        "DEBUG: fetch_url()-resonse-info={'url': 'https://10.10.10..35/nitro/v1/config/lbvserver_service_binding/cust2foo-test-cert-10.10.10.231-tcp-7777', 'status': 404, 'date': 'Sun, 03 Dec 2023 08:24:07 GMT', 'server': 'Apache', 'x-frame-options': 'SAMEORIGIN', 'expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'pragma': 'no-cache', 'vary': 'Accept-Encoding', 'feature-policy': \"camera 'none'; microphone 'none'; geolocation 'none'\", 'referrer-policy': 'no-referrer', 'x-xss-protection': '1; mode=block', 'x-content-type-options': 'nosniff', 'content-length': '126', 'content-type': 'application/json; charset=utf-8', 'connection': 'close', 'msg': 'HTTP Error 404: Not Found', 'body': b'{ \"errorcode\": 258, \"message\": \"No such resource [name, cust2foo-test-cert-10.10.10.231-tcp-7777]\", \"severity\": \"ERROR\" }'}",
        "TRACE: EXIT: send() returned (404, {'errorcode': 258, 'message': 'No such resource [name, cust2foo-test-cert-10.10.10.231-tcp-7777]', 'severity': 'ERROR'})",
        "TRACE: EXIT: get_resource() returned []",
        "TRACE: EXIT: get_bindings() returned []",
        "DEBUG: Existing `lbvserver_service_binding` bindings: []",
        "TRACE: ENTRY: return_failure() called with (<ansible_collections.netscaler.adc.plugins.module_utils.module_executor.ModuleExecutor object at 0x7f5f1edb6370>, \"Exception <class 'KeyError'>: 'servicename'\"), {}"
    ],
    "msg": "Exception <class 'KeyError'>: 'servicename'"

Additioinal Notes
No response

@pkodzis, can you please confirm that the below box in the screenshot is by mistake? If not, then name and servicename should be present as one list.

You can find the correct example below
https://github.com/netscaler/ansible-collection-netscaleradc/blob/6912cf34cc1b2026ad8261ae1fd25f88a2ed4d67/examples/lbvserver.yaml#L84

    lbvserver_service_binding:
      binding_members:
        - name: cust2foo-test-cert-10.10.10.231-tcp-7777
        - servicename: 10.123.123.123-tcp-11451

cust2foo-test-cert-10.10.10.231-tcp-7777 --- this is lbvserver name
10.123.123.123-tcp-11451 --- this is name of the service that is bound to lbvserver cust2foo-test-cert-10.10.10.231-tcp-7777
do I understand incorrectly lbvserver_service_binding bindings? Documentation on this is really limited, I'm more guessing based on python source code than I'm sure.

ACK. The issue was on my side. I can reproduce it by defning separate item "- servicename". If I defined "servicename" as part of the same item as "name" ("servicename" instead of "- servicename") I can successfully delete lbvserver. thank you so much! :)
just for refernce if somebody looking for something simlar:
BAD:
    lbvserver_service_binding:
      binding_members:
        - name: cust2foo-test-cert-10.10.10.231-tcp-7777
        - servicename: 10.123.123.123-tcp-11451

OK:
    lbvserver_service_binding:
      binding_members:
        - name: cust2foo-test-cert-10.10.10.231-tcp-7777
          servicename: 10.123.123.123-tcp-11451

authors: pkodzis sumanth-lingappa


text:
change app color scheme

potential colors:
-black
-navy
-gray

PR #63

repo: nettube/mbtapuller

license: mit

license_source: bigquery


text:
java.lang.NoClassDefFoundError: io/netty/channel/DefaultChannelId

i write a netty demo,then run on my android phone,but it throws an exception,the error trace such as:
01-21 14:06:39.028: E/AndroidRuntime(25455): FATAL EXCEPTION: main
01-21 14:06:39.028: E/AndroidRuntime(25455): java.lang.NoClassDefFoundError: io/netty/channel/DefaultChannelId
01-21 14:06:39.028: E/AndroidRuntime(25455):    at io.netty.channel.AbstractChannel.(AbstractChannel.java:51)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at io.netty.channel.VoidChannel.(VoidChannel.java:34)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at io.netty.channel.VoidChannel.(VoidChannel.java:31)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:265)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at io.netty.bootstrap.Bootstrap.doConnect(Bootstrap.java:181)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:137)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at com.example.netty.nettycore.NettyClient.start(NettyClient.java:47)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at com.example.netty.MainActivity.onCreate(MainActivity.java:16)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.Activity.performCreate(Activity.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.ActivityThread.access$700(ActivityThread.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.os.Handler.dispatchMessage(Handler.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.os.Looper.loop(Looper.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at android.app.ActivityThread.main(ActivityThread.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at java.lang.reflect.Method.invokeNative(Native Method)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at java.lang.reflect.Method.invoke(Method.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
01-21 14:06:39.028: E/AndroidRuntime(25455):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
who can tell me how to resolve this problem?
thanks !

What version of netty and android are you using?

thank you to scottmitch,the problem is solved,the reason is that client version not correct!

hi @steven-gao   can you expain more more details?  thanks

hi @steven-gao can you expain more more details? thanks

hi @steven-gao can you expain more more details? thanks

I think there is most likely netty 4.0 and 4.1 on the class path. Only one of these can exists

authors: Scottmitch baiwfg2 juanmao123 normanmaurer oikomi steven-gao

repo: netty/netty


text:
qps is unstable

Expected behavior
if has code  { System.out.print(" ");}，qps is 4-5w，stable and very high
if put off code  { System.out.print(" ");}  qps is unstable, very low。
why? (the similar code netty 3 no this problem)
(server just read message)
Actual behavior
Steps to reproduce
Minimal yet complete reproducer code (or URL to code)
private static final String message = RandomStringUtils.randomAlphanumeric(1000) + "\r\n";
public static void main(String[] args) {
    EventLoopGroup group = new NioEventLoopGroup(1 * 2);
    try {
        Bootstrap bootstrap = new Bootstrap();

        bootstrap.channel(NioSocketChannel.class).group(group)
                .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
                .option(ChannelOption.TCP_NODELAY, Boolean.TRUE)
                .option(ChannelOption.SO_SNDBUF, 100000)
                .option(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 100000000)
                .handler(new ChannelInitializer<Channel>() {

                    @Override
                    protected void initChannel(Channel ch) throws Exception {
                        ChannelPipeline pipeline = ch.pipeline();
                        pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192,
                                Delimiters.lineDelimiter()));

                        pipeline.addLast("decoder", new StringDecoder());
                        pipeline.addLast("encoder", new StringEncoder());
                        pipeline.addLast("clientHandler", new ClientHandler());
                    }
                });

        ChannelFuture f = bootstrap.connect(new InetSocketAddress("127.0.0.1", 8888));

        final Channel channel = f.channel();
        while (!Thread.currentThread().isInterrupted()) {
            System.out.print(" ");
            if (channel.isWritable()) {
                ChannelFuture future = channel.writeAndFlush(message);
            }
        }

        f.channel().closeFuture().sync();
    } catch (Exception e) {

    } finally {
        group.shutdownGracefully();
    }

Netty version
4.0.24.Final
JVM version (e.g. java -version)
jdk7
OS version (e.g. uname -a)
mac

@andyyin is this issue resolved?

authors: andyyin whoisyao


text:
Check if CommandLineTools are installed before trying to execute inst…

…all_name_tool
Motivation:
We should check if CommandLineTools are installed before trying to execute install_name_tool as otherwise it might open a prompt to ask users to install it which is unexpected.
Modifications:
Check if the folder /Library/Developer/CommandLineTools exists before trying to execute install_name_tool
Result:
Better user experience. Related to https://github.com/netty/netty/issues/13125

Lets just merge this one for now


text:
[#4449] Remove registered events from eventloop before close

Motivation:
We need to remove all registered events for a Channel from the EventLoop before doing the actual close to ensure we not produce a cpu spin when the actual close operation is delayed or executed outside of the EventLoop.
Modifications:

Add preClose() method that can be overriden.
Implement it for NIO and EPOLL implementions when SO_LINGER is used.

Result:
No more cpu spin.

@trustin PTAL :)

@normanmaurer do we need to do the same thing for Nio or just Epoll?

wow, time for coffee. didn't scroll down to the bottom.

LGTM

Looking from the PR description, it seems to me preClose() should be called only when SO_LINGER is enabled and non-zero, but it seems like preClose() is always invoked.

Also, we will cal doDeregister() once again later. Perhaps we should not call it twice?

I thought it can't harm to always call it and so make it easier to reason about. I think it makes no sense to still register for events once close is called. @trustin WDYT?

Am 10.12.2015 um 10:52 schrieb Trustin Lee notifications@github.com:
Looking from the PR description, it seems to me preClose() should be called only when SO_LINGER is enabled and non-zero, but it seems like preClose() is always invoked.
—
Reply to this email directly or view it on GitHub.

Well i think these two may have different sematics for different channel impls

Am 10.12.2015 um 10:54 schrieb Trustin Lee notifications@github.com:
Also, we will cal doDeregister() once again later. Perhaps we should not call it twice?
—
Reply to this email directly or view it on GitHub.

I thought it can't harm to always call it.

It may harm if it's called twice depending on transport implementation. (I'm not talking about a specific transport implementation though.) If we are more careful in AbstractChannel, the transport implementations would have less checks for example.

Maybe we should rename the moethod then? Any good idea for a name? Another thing we could do is remove it and just return a special Executor from closeExecutor() which will do the dergister once something is passed in to execute.

Am 10.12.2015 um 11:17 schrieb Trustin Lee notifications@github.com:
I thought it can't harm to always call it.
It may harm if it's called twice depending on transport implementation. (I'm not talking about a specific transport implementation though.) If we are more careful in AbstractChannel, the transport implementations would have less checks for example.
—
Reply to this email directly or view it on GitHub.

@trustin ping :)

Another thing we could do is remove it and just return a special Executor from closeExecutor() which will do the dergister once something is passed in to execute.

Sounds like a good idea if we rename closeExecutor() to something else? prepareBlockingClosure()? Not sure it's a good name though..

@trustin ok done... PTAL again. I did not rename the method though as I think the same is good enough as it is. WDYT ?

@normanmaurer I still think we should:

Rename the method
Perform the deregistration before returning the Executor.

protected Executor ...() {
    if (...) {
        doDeregister();
        return GlobalEventExecutor.INSTANCE;
    }
}

Why running before and not in the executor itself?

Am 11.12.2015 um 16:11 schrieb Trustin Lee notifications@github.com:
@normanmaurer I still think we should:
Rename the method
Perform the deregistration before returning the Executor.
protected Executor ...() {
if (...) {
doDeregister();
return GlobalEventExecutor.INSTANCE;
}
}
—
Reply to this email directly or view it on GitHub.

Let's say a transport impl somehow calls execute() twice. We need to be defensive here.

It can not call it twice as we guard in AbstractChannell

Am 12.12.2015 um 04:02 schrieb Trustin Lee notifications@github.com:
Let's say a transport impl somehow calls execute() twice. We need to be defensive here.
—
Reply to this email directly or view it on GitHub.

and it seems like it creates a new executor on every call, no?

@trustin PTAL again...

@trustin addressed... PTAL again

LGTM! Thanks for your patience. :-)

Cherry-picked into 4.0 (26088b778f0d9484f5045df144d3b88427f75613) , 4.1(89ff831a670d4303881db17a91a9c54e9f41987e)  and master (3e7bd2558901a8ef2377a90de8a707ccca5b1cf7)

authors: johnou normanmaurer trustin


text:
Uncaught TypeError: Cannot read property 'setSocketUrl' of undefined

Easyrtc and Sockiet.io-client is not loaded by the example.

Fixed by https://github.com/networked-aframe/naf-easyrtc-adapter/pull/2/commits/2cc35b0c3811d77700f5cf40097aaf7bda3b492c#diff-5b0e3367cfabe5a0173e80753b827d6cR14

The easyrtc adapter moved again to the networked-aframe repository. I'm closing all issues in this repository.

authors: hthetiot vincentfretin

repo: networked-aframe/naf-easyrtc-adapter


text:
add metadata to Status to support customizing info

add a metadata field to Status when send response so that customized info will be added as metadata

 add metadata to Status to support customizing info light-4j master

 add metadata to Status to support customizing info light-4j master

@BalloonWen Could you please update the status document to reflect the changes we have made? Thanks.

@BalloonWen Could you please update the status document to reflect the changes we have made? Thanks.

authors: BalloonWen stevehu


text:
Move the static analysis class to large

This shoudl make the target pass
Signed-off-by: Nikolay Nikolaev nnikolay@vmware.com

Description

Motivation and Context
Static analysis is failing.
How Has This Been Tested?

[x] Covered by existing integration testing
[ ] Added integration testing to cover
[ ] Tested locally
[ ] Have not tested

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

In my opinion, It's bad that the linter takes many resources. Can we use a more stable version 1.16.0?
Another possible solution: we can use the default preset of linters to reduce resource usage.

@denis-tingajkin I see what you say, yet I personally prefer to have "more" checks even at the cost of higher resources. Are you saying that 1.7.1 shall be considered unstable?  IMO it is just enabling more and more things to check, and that should be good for the project.

authors: denis-tingajkin nickolaev

repo: networkservicemesh/networkservicemesh


text:
Django 3.0 compatibility

Hi there,
Would it be possible to support Django 3.0?
The only issue so far seems to be that django.utils.encoding.python_2_unicode_compatible was dropped. I could be replaced by the same functionality in the six package of python 2 compatibility could be dropped.

@jphilip Well I have not tested it myself with Django 2.2 or 3.0 yet. Does it still work there beside the six issue? Note that there are several possible breaking points that need to be tested:

Does the field construction logic still work? Imho this did not change in Django with 2.2/3.0. Affected files: fields.py, maybe template files.
Does it still integrate well with newer admin stylesheets? Not sure Django changed them, possibly affected default.css.
Does it still work with updated tree model packages? The unified TreeQuerySet only implements treebeard and mptt hooks, affected file tree.py.
Is the JS part still compatible to newer jQuery version delivered with newer Django versions? Is the workaround still needed, does it still work as described?
Optional: jstree could use an update as well. Atm 3.3.4 is delivered, official repo lists 3.3.9 as current release. Affected files: default.js, formatters.py.

For the six part imho we should drop Python 2 and Django 1.11 support, both are beyond their official support cycle now.
If you want to tackle some issues listed above - sure thing, would be nice to see it being updated. If you have a good idea, how this package could be tested automatically without setting up expensive selenium tests - I am all ears. For the listed versions I did it manually in the past, which gets exhausting for multiple versions pretty soon.

authors: jerch jphilip

repo: netzkolchose/django-treewidget


text:
Add a custom console function

This would enable us to give the developer the possibility to define a toString() method and use the JSON lib for pretty print the objects. In addition, warn, error, info could be implemented.

Done.

repo: netzpirat/guard-jasmine


text:
Give support for GoLand

Hi, and thank you for building such a useful plugin!
I am using GoLand to develop Neo4j. And I really want language injections to work out. Right now my workaround is to manually set each cql to use Cypher syntax. After that, I have a completion hint and the run button. And the run button is not working.

Hello @coolyrat,
great to hear that plugin is useful to you!
Currently, language injections work only for selected Java libraries (#121). We might look into defining injections for Go, but it might take some time.
Meanwhile, you can configure language injection for Go libraries manually in IntelliJ Settings → Editor → Language Injections. If you do, please export and share it, so we could add this to plugin and make available for other Go users.
Regarding button, that is not working - this is a bug, and we will look into it.

Hi @dwitry,
I gave it a try, but no luck. Unlike IDEA, seems there's no proper template in GoLand to choose

@coolyrat you are right, it seems that language injections for Go are not currently supported in GoLand. Injection comments could help your requirement a little bit.

authors: coolyrat dwitry


text:
Do not generate requirements.txt from template file

Currently, requirements.txt for backend is generated from backend/templates/requirements.mustache, but the mustache file doesn't contain tags to expand. Using requirements.txt directly is simpler and easier to maintain.

cc: @neubig @odashi

@tetsuok Thanks for the PR! I think the original purpose is to keep the sources of truth in only these three places: backend/templates (mustache files that get converted to the backend skeleton code), backend/src/impl (our implementation of business logic), and openapi.yaml (API definition which swagger follows to generate the skeleton code). I guess making requirements.txt an exception is okay as long as we document it since it's more developer friendly and common than mustache files.
There's one more thing, it seems that by default if no matching template is provided, swagger codegen will use its own internal template to generate a file for us, so if we do npm run gen-api-code, a wrong requirements.txt file with the following content will be generated under backend/src/gen:
connexion == 2.6.0
python_dateutil == 2.6.0
setuptools >= 21.0.0

We should either remove it after the generation or tell swagger to ignore it.

It looks the current API generator is somewhat over-utilized to generate almost everything. I think it is good if we decouple several components that are not really related to the APIs from the generator pipeline.
(additionally, tamplating prevents editors to perform static analysis, which is another point that we need to improve.)

@OscarWang114 Thanks for the review. Added .swagger-codegen-ignore to teach swagger-codegen to skip generating its own requirements.txt rather than our own one. I'm not sure this needs to be documented in README.md or somewhere. It seems implementation specific information. I think it seems enough as long as this repo runs automations using GitHub Actions to test generated code in pull request builds.

Hmm. When I re-requested review, GitHub automatically removed request for @lyuyangh...

@odashi It seems generating lots of code including configuration files and README.md is by design. This repo runs swagger-codegen by specifying python-flask as the target language. The tool defines a set of the template files corresponding to "python-flask" in https://github.com/swagger-api/swagger-codegen-generators/tree/master/src/main/resources/handlebars/pythonFlaskConnexion, and the tool generates files from that templates unless users explicitly instructs the tool not to generate specific files via a .swagger-codegen-ignore file

@tetsuok @OscarWang114 I think we shouldn't touch generated requirements.txt anymore. Since requirements can be specified multiple times in pip (pip install -r foo.txt -r bar.txt), it is more desirable to separate application-specific requirements into other file and consume it at the same time with the generated requirements.

@odashi (@OscarWang114) OK, I'll revert most of the changes, and then separate application specific requirements from backend/templates/requirements.mustache into backend/requirements.txt.

Resolved merge conflicts.

authors: OscarWang114 odashi tetsuok


text:
Strange error: ReqlClientError: MALFORMED PROTOBUF (missing field type)

 File "/app/releases/20150916042638/node_modules/rethinkdbdash/lib/connection.js", line 196, in Connection._processResponse
    currentReject(new Err.ReqlClientError(helper.makeAtom(response), self.metadata[token].query, response));
  File "/app/releases/20150916042638/node_modules/rethinkdbdash/lib/connection.js", line 150, in Socket.<anonymous>
    self._processResponse(response, token);
  File "events.js", line 77, in emitOne
  File "events.js", line 169, in Socket.emit
  File "_stream_readable.js", line 146, in readableAddChunk
  File "_stream_readable.js", line 110, in Socket.Readable.push
  File "net.js", line 523, in TCP.onread

The query:
r.table("deleted_sessions").between([true, r.minval], [true, r.now().inTimezone("-03:00").sub(3600)], {
    index: "last_pass_created_at"
}).delete({
    durability: "soft",
    returnChanges: true
})("changes")("old_val").default([]).forEach(function(var_159) {
    return r.branch(var_159.ne(null), r.table("sessions").get(var_159("id")).delete({
        durability: "soft"
    }).do(function() {
        return r.expr(["events", "errors", "forms", "purchases", "mailings"]).concatMap(function(var_160) {
            return r.table(var_160).getAll(var_159("id"), {
                index: "session_id"
            }).map(function(var_161) {
                return {
                    batch: [{
                        table: var_160,
                        data: var_161.merge(r.branch(var_161.hasFields("updated_at"), {
                            visitor_id: var_159("new_visitor_id"),
                            session_id: var_159("new_session_id"),
                            created_at: var_161("created_at").toISO8601(),
                            ended_at: var_161("updated_at").toISO8601()
                        }, {
                            visitor_id: var_159("new_visitor_id"),
                            session_id: var_159("new_session_id"),
                            created_at: var_161("created_at").toISO8601()
                        }))
                    }]
                }
            })
        })
    }).do(function(var_162) {
        return r.expr(["traits", "pageviews", "subscriptions", "impressions", "session_goals", "visitor_goals"])
            .forEach(function(var_163) {
                return r.table(var_163).getAll(var_159("id"), {
                    index: "session_id"
                }).delete({
                    durability: "soft",
                    returnChanges: true
                })("changes")("old_val").default([]).map(function(var_164) {
                    return {
                        batch: [{
                            table: var_163,
                            data: var_164.merge({
                                id: r.literal(),
                                created_at: var_164("created_at").toISO8601(),
                                visitor_id: var_159("new_visitor_id"),
                                session_id: var_159("new_session_id")
                            }).merge(r.branch(var_163.eq("subscriptions"), {
                                email: var_159("new_email")
                            }, {})).merge(r.branch(var_164.hasFields("ended_at"), {
                                ended_at: var_164("ended_at").toISO8601()
                            }, r.branch(var_164.hasFields("updated_at"), {
                                updated_at: var_164("updated_at").toISO8601()
                            }, {})))
                        }]
                    }
                }).coerceTo("array").add(var_162)
            })
    }), [])
})("batch").distinct().default([])

This query works fine for me. Do you dynamically generate this query?

Yeah

I've changed to the official driver, without changing any logic and the error disappeared

The failing script:
"use strict";

var moment = require("moment-timezone"),
    nano = require("nanomsg"),
    mq = nano.socket("push", {
        tcpnodelay: true
    }),
    returnChanges = {
        durability: "soft",
        returnChanges: true
    },
    busy = false;

module.exports = function(r, conn, onerror, status) {
    mq.bind("tcp://*:7000");
    return function() {
        if (!busy) {
            busy = true;
            const tz = moment().tz("America/Sao_Paulo").format("Z"),
                seconds_diff = status ? 3600 : 300,
                tables = ["events", "errors", "forms", "purchases", "mailings"],
                dependent_tables = ["traits", "pageviews", "subscriptions", "impressions", "session_goals", "visitor_goals"];

            let query = r.table("deleted_sessions").between([status, r.minval], [status, r.now().inTimezone(tz).sub(seconds_diff)], {
                index: "last_pass_created_at"
            });
            if (!status) {
                query = query.update({
                    last_pass: true
                }, returnChanges);
            } else {
                query = query.delete(returnChanges);
            }
            query = query("changes")("old_val").default([]).forEach(function(session) {
                return r.branch(session.ne(null),
                    r.table("sessions").get(session("id")).delete({
                        durability: "soft"
                    }).do(function() {
                        return r(tables).concatMap(function(table) {
                            return r.table(table).getAll(session("id"), {
                                index: "session_id"
                            }).map(function(item) {
                                return {
                                    batch: [{
                                        table: table,
                                        data: item.merge(r.branch(item.hasFields("updated_at"), {
                                            visitor_id: session("new_visitor_id"),
                                            session_id: session("new_session_id"),
                                            created_at: item("created_at").toISO8601(),
                                            ended_at: item("updated_at").toISO8601()
                                        }, {
                                            visitor_id: session("new_visitor_id"),
                                            session_id: session("new_session_id"),
                                            created_at: item("created_at").toISO8601()
                                        }))
                                    }]
                                };
                            });
                        });
                    }).do(function(items) {
                        return r(dependent_tables).forEach(function(table) {
                            return r.table(table).getAll(session("id"), {
                                index: "session_id"
                            }).delete({
                                durability: "soft",
                                returnChanges: true
                            })("changes")("old_val").default([]).map(function(item) {
                                return {
                                    batch: [{
                                        table: table,
                                        data: item.merge({
                                            id: r.literal(),
                                            created_at: item("created_at").toISO8601(),
                                            visitor_id: session("new_visitor_id"),
                                            session_id: session("new_session_id")
                                        }).merge(r.branch(table.eq("subscriptions"), {
                                            email: session("new_email")
                                        }, {})).merge(r.branch(item.hasFields("ended_at"), {
                                            ended_at: item("ended_at").toISO8601()
                                        }, r.branch(item.hasFields("updated_at"), {
                                            updated_at: item("updated_at").toISO8601()
                                        }, {})))
                                    }]
                                };
                            }).coerceTo("array").add(items);
                        });
                    }), []);
            })("batch").distinct().default([]).run().then(function(result) {
                if (result.length > 0) {
                    mq.send(JSON.stringify({
                        batch: true,
                        items: result
                    }));
                }
            }).error(onerror);
            busy = false;
        }
    };
};

Does it always fail with rethinkdbdash?

yes

rethinkdbdash 2.1.8 and node 4 btw

Can you provide a standalone script without mq/nano/etc. as I don't have this setup here?

I've updated the script

What version of node? Any special flag?

Node 4, no special flag

Hum, it works fine for me with node 4 (rc5), but then I guess I'm not hitting the same path as my tables are kind of scarce.
Can you set up a full stand alone script that reproduce this?

I received the same error myself, but it was due to accidentally passing a value of undefined into filter.  See the code example below to reproduce in a similar fashion.  FYI, I am on Node 4.1.1 and thinky 2.1.8:
const thinky = require('thinky')();
const type = thinky.type;
const r = thinky.r;

const Post = thinky.createModel('post_author', {
  id: type.string(),
  author_id: type.string(),
  post_id: type.string()
});

const author = ""; // probably should be an object
r.table('post_author')('author_id')
  .filter(author.id) // not null, but actually undefined
  .distinct().then(console.log);

// Possibly unhandled ReqlClientError: MALFORMED PROTOBUF (missing field `type`):

Thanks @sjmueller -- it's fixed in 2.1.9
Errors were not properly propagated through distinct

authors: neumino sjmueller thelinuxlich

repo: neumino/rethinkdbdash


text:
Code error

Hi,
I install all the package of neuralop. When i import the neuralop, it does not work.

I think you may have an old version of Python - can you check which version you have an update to a newer version?

repo: neuraloperator/neuraloperator