Some menu options are not visible

I cannot see the Filter and Publish menu items in edit mode in view designer. Why could that be?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 509bc5b8-98b4-001c-0111-bc9f2e4645a5
Version Independent ID: 3f44c969-e9a0-fc09-17e0-df9ecb842712
Content: Create views to analyze data in Azure Log Analytics
Content Source: articles/log-analytics/log-analytics-view-designer.md
Service: log-analytics
Product: unspecified
GitHub Login: @bwren
Microsoft Alias: bwren

@larsvillaume Thanks for the feedback! I have assigned the issue to the content author to evaluate and update as appropriate.

Investigating this with engineering team.  I was able to reproduce.

#in-progress

Got this figured out.  The UI was changed for filters. Click on the + next to the date filter to view filters for the view.  Publish was deprecated.  We'll be getting the documentation updated.

#please-close

@larsvillaume We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Class feedback

Use this ticket to leave feedback on the Cor class proposal.

I would like to advocate renaming has in favour of slot.

It doesn't work anything like Moose, Moo, etc. so shouldn't have the same name
slot explicitly describes what is being declared (like class)
Searching/Googling for "perl slot" shouldn't turn up a lot of unrelated documentation
Searching for "perl has" in does not return very helpful results in Google and DDG
slot is a noun so it can be pluralized if syntax for declaring multiple slots is simpler to implement:

    slot $cache    :private  :handles(get)             = Hash::Ordered->new;
    slot $created  :private  :reader :immediate        = time;
    slot $max_size :optional :reader :isa(PositiveInt) = 20;

    slots {
         $cache    :private  :handles(get)             = Hash::Ordered->new;
         $created  :private  :reader :immediate        = time;
         $max_size :optional :reader :isa(PositiveInt) = 20;
    }

If really wacky syntax was acceptable the attributes can be applied at the slots declaration to save even more typing:
    slots :private :required {
         $cache    :handles(get)             = Hash::Ordered->new;
         $created   :reader :immediate        = time;
    }

    slots :private {
         $max_size :optional :reader :isa(PositiveInt) = 20;
    }
# transforms/translates to
#
#   slot $cache    :private  :required :handles(get)             = Hash::Ordered->new;
#   slot $created  :private  :required :reader :immediate        = time;
#   slot $max_size :optional :reader :isa(PositiveInt) = 20;

This bulk declaration option does add another dimension of difficulty to detecting illegal attribute combinations on a slot

I suggest the definition of versions be:
 v? ( [0-9]{1,3} \. )? ( [0-9]{1,3} \. )? [0-9]{1,3} (without spaces)
In other words:

Optional leading v
1 numerical value of 1 to 3 digits, or
2 numerical values of 1-3 digits each, separated by a period, or
3 numerical values of 1-3 digits each, separated by a period

Spaces and non-digit numbers (other than optional leading 'v' or periods between the numerical fields) are not allowed. This includes underscores.
This allows us to have:

Semver versioning scheme
Works with Perl's versioning (5.10.0, 5.010.0, etc.)
Works with v versions (v5.10.0)
No funny stuff we have to work around (screw evaling versions variables)////

Allowing 1/2/3 part versions seems reasonable, but I would keep the leading v mandatory. If you allow 2 part versions without the v, it will lead to confusion with perl's classic version scheme.

Please consider also anonymous classes, eg:
my $foo1 = class isa Foo does Bar { }->new;
my $foo2 = class isa Foo does Bar2 { sub baz { } }->new;

ad builders:
builder method IMHO has no use as a standalone method as well as its prefix build may be confusing if the class will provide some Builder pattern(s). The only reasonable use case is overloading and calling the parent's builder.
What about definition syntax:
    build property => sub { ... };

@happy-barney Would very much love to have anonymous classes, but I suspect that will be v2. There are also open questions about what part of the behavior is compile-time versus runtime and that will impact this, also.

Traditional Perl OO (bless any reference) allows to do things in pure Perl which would need support by the core for Cor classes.  Here are some questions:

The Perl debugger can't display slot data for Cor objects if there is no reader (nor change them short of a writer).  Does Cor offer something like _DUMP as by Class::Std?
How would Data::Dumper and friends show Cor objects? I guess that ref $cor_object will return something meaningful, but everything beyond that seems opaque.
More generally, how can serialization of Cor object be done (without writing methods which painstakingly serialize each of their slots)?  Related is Class::Std::Storable, but it needs to make assumptions about the implementation of Class::Std - so probably no model for Cor::Storable.
De-serialization into traditional Perl objects usually avoids the constructor and is done with $object = bless $here_are_your_guts, $class.  Is there a Cor equivalent?

In addition for @HaraldJoerg 's comment I'd like to mention also re-bless.I found it quite useful when refactoring certain types of applications.
Would it be possible to add this possibility? Limitation "rebless only into child" will be acceptable, special syntax to call missing constructors as well.
eg:
my $foo = Foo->new;
$foo->Cor::UPGRADE (Bar => (bar_property => 1));

@clscott said:

I would like to advocate renaming has in favour of slot.

It doesn't work anything like Moose, Moo, etc. so shouldn't have the same name
slot explicitly describes what is being declared (like class)
Searching/Googling for "perl slot" shouldn't turn up a lot of unrelated documentation
Searching for "perl has" in does not return very helpful results in Google and DDG
slot is a noun so it can be pluralized if syntax for declaring multiple slots is simpler to implement:

On one hand I don't agree with point 1 because it shouldn't matter what Moose/Moo do when making Corinna the best it can be.  Also Raku does use the word "has".
I otherwise support this proposal in that my sensibilities prefer declarations like this to be nouns and points 2 thru 5 are good.

Perl should support authority declarations like Raku does, in addition to the version.  If not in its first version then later.

I will argue against the optional "abstract" declarator because this doesn't do anything that a role doesn't do.  If you want an "abstract" class then you actually want a role.  If you think an "abstract" class is different than a role then please explain why we should have both.

Everything official should use the full name Corrina, such as Universal::Corrina rather than Universal::Cor.
The term Cor should generally go away as confusing, and not be etched in stone by naming a package etc after it.

What benefit is multiple inheritance when we have roles?

Addressing various issues.

I'm not opposed to renaming has to slot.

I've been trying to strike a balance between the familiar and the new. It's hard. I'll think about it.

Sometimes you want an abstract class to be a base class and not a role.

For inheritance, sequencing matters and is (relatively) easy to control. This is not the case for roles. Thus, when writing something like Test::Class::Moose where you need to control exactly when the parent methods fire, building it on roles, where the ordering isn't guaranteed, is a problem. That problem goes away with inheritance.
That being said, most of the time I would favor a role for this.

Authority declarations might be v2 or later. But yet, I like that.
I will work to start changing "Cor" to "Corinna" (note the spelling) everywhere.
Debugging support for class internals.

I keep thinking about this and then forgetting it. I should put something in UNIVERSAL::Corinna. I had considered the MOP, but I don't think we will have that in V1 and debugging support is critical.

Proposal to change the builder to build property => sub { ... };.

Currently, Moo/se allow one to alter building in a subclass. Corinna was designed to support his. However, that can be a pretty huge encapsulation violation, not to mention a source of a bugs.
class Parent {
    has $foo :builder;
    method _build_foo () { ... }
}

class Child isa Parent {
    has $foo :builder;
    method _build_foo () { ... }
}

So now have the child changing a parent's private data. Oops. So yeah, that was a mistake. Definitely need to think about this.
The parent could always do this:
class Parent {
    has $foo :builder;
    private method _build_foo () { ... }
}

class Child isa Parent {
    has $foo :builder;
    method _build_foo () { ... }
}

But that raises interesting questions about the semantics of private methods (which I still need to address) and why is a builder a method at all? It's designed to be a bit of behavior that fires zero or one time per instance. It doesn't behavior like an attribute or a method at all.

As for "multiple inheritance," I thought about just saying "no" because I agree that with roles, there are far better solutions. Single inheritance minimizes (doesn't eliminate) issues that C3 solves and even then, inheritance should be heavily discouraged.
I think MI is a mistake. In OO, a subclass is generally viewed as a more specific version of a parent class, just as Car and Truck are both more specific versions of a Vehicle. The researchers behind the fascinating (and dead) Beta programming language researched how to incorporate an analog to MI in their language, but they wanted it "clean." So they looked for examples of MI where the children really were more specific versions of their parents. They couldn't find any. Instead, they found MI being used exclusively to borrow bits and pieces of behavior. Perl solves that with roles.
I'm happy to say "no MI" unless anyone can make a strong case beyond "I personally like it."

In Raku I believe BUILD is a submethod rather than a method.

The only multiple inheritance is-a examples I can think of off hand are contrived examples, such as the diamond relationship of parallelogram, rhombus, rectangle, and square.  And there's no good reason to complicate a programming language to support features that logically only make sense for such contrivances.  Multiple inheritance made more sense in languages that didn't support composition like with roles, but when you have that there's no reason for it at all.

@Ovid A general piece of feedback I can give for Corrina is if in doubt leave it out.  If anything is questionable, default to omitting it out of version 1.  So this includes things that have been used before but are arguably bad practices or code smells.  Or if they're unnecessarily complicated to implement for their value.
To recap, here are a few things discussed that I recommend omitting entirely:

Multiple inheritance.
Multi-methods.
The concept of possibly-not-existing/not-set members (then has_* can be omitted or it just means not undef etc).

@Ovid A general piece of feedback I can give for Corrina is if in doubt leave it out.  If anything is questionable, default to omitting it out of version 1.  So this includes things that have been used before but are arguably bad practices or code smells.  Or if they're unnecessarily complicated to implement for their value.
To recap, here are a few things discussed that I recommend omitting entirely:

Multiple inheritance (roles should be used instead).
Multi-methods (each variant should have a different method base name).
The concept of possibly-not-existing/not-set members (then has_* can be omitted or it just means not undef etc).
Supporting inheritance or composition from non-corrina classes/roles to Corrina classes/roles.

Right now the only special scalar alphabetic Perl variables are $a and $b. This proposal would add two more, $self and $class, which we should avoid as much as possible. Why not follow the precedent of __SUB__ and declare two new tokens: __SELF__ and __CLASS__?

In the proposal, it's stated that $self is implicit and already injected into the scope of instance methods. How will this affect @_? I suggest that the first element no longer be $self and instead be like regular subroutines.

I agree with both of @seav comments.

@seav  __SELF__ and __CLASS__ tokens are an interesting idea, but really, the $self and $class are only "special" in the scope of Corinna. I've struggled a few times to see how to get this right. I was looking at self->method at one point, but that means you can't name a class self and Perl would need to recognize new keywords. However, by keeping the $ sigil, Perl developers have a familiar environment and they can understand instantly what those mean. As for __SELF__, you'd be introducing a token that, unless I'm mistaken, is semantically unrelated to all other tokens: __LINE__, __PACKAGE__, __END__, __DATA__ (or others I'm forgetting?). I'm unsure if that's the best way to go.
As for @_ not having the invocant, that's certainly worth considering. For the most part, I've been trying to work hard to eliminate a direct need for @_ in most cases.

In case you will not provide multiple inheritance please do not differentiate roles and classes anywhere, ie, make for example isa and does to be synonyms. Also please provide expressions like requires => 'extends class Foo and does role Bar

I suggest having $args to go along with $self and $class, and $args would contain the arguments minus the invocant $self.

@happy-barney I disagree.  Conceptually classes and roles mean completely different things.  If an object represents a thing, then the object's class, and also its parent classes, all say what the object IS, while roles represent capabilities, they are what the object CAN DO.  There's a huge difference between identity, what something is, and interface, what something can do.  Eliminating multiple inheritance doesn't change this.

Further to my prior comment, best practice is to name classes after nouns, or at least the classes that represent a thing and aren't just utilities.  Whereas, roles should be named after adjectives or verbs.

@happy-barney Actually on further thought I actually agree with a semblance of your first request, but for a different reason.
I still don't agree with making "isa/does" synonyms.  But what I do agree with is the concept of having a single method/operator one can use which interchangeably accepts either a class name or a role name and true if the test object either is that class or does that role.
The thing I see as important is that this unified operator/method would behave the same way as a generic type/constraint declaration later when such are added.  For example, if someone declared "Int $foo" then Int could be either a class or a role, and it doesn't matter in practice which.  So the unified method/operator is asking, can the given value/object be used where something of the given type is expected.
But then what we ACTUALLY need is something much more generic, not just accepting a package name but alternately a predicate subroutine that returns true if the test value is of the right data type, and the value in question may not be an object or blessed at all.
I see no point in having a unified isa/does unless it also does the other things I said, and since we're not having type constraints in Corinna version 1, I expect this unified thing will also be left out of version 1, to be considered later.

@duncand your second comment is actually what I as talking about. I didn't say "make them synonyms", I used that as an example which will provide desired effect.
On other hand, I don't care about class/role/whatever. I do care about current context. Context doesn't distinguish whether it is class or instance, it just provides you information you need to do your work. It doesn't matter whether it was provided via method argument, via instance constructor, or it is class static property or environment variable (you can see dependency injection here, but do not focus on it)

There's a basic thing I don't think was addressed yet.
I am assuming that the Corinna built-in to Perl would use a brand new opaque data type for its objects, something that is NOT a hashref/arrayref/etc.
So what would ref $obj and similar operators return?
I suggest it return OBJECT rather than HASH etc.

Closing old tickets because the MVP has been accepted. We'll start fresh with real code.


libwinpthread-1.dll was not found

Version
1.27.0
What happened?
Running on Windows I get the libwinpthread-1.dll error. From a brief search it looks like it might be due to not having statically linked against mingw libc?
Relevant log output
Windows dialog box pops up with:

> sqlc.exe - System Error
>
> The code execution cannot proceed because libwinpthread-1.dll was not found.
> Reinstalling the program may fix this problem.
>
> [OK]

Database schema
N/A

SQL queries
N/A

Configuration
N/A

Playground URL
No response
What operating system are you using?
Windows
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go

I'm also experiencing this problem. (Windows 10 Pro | 64-bit)


Docs for deployment to Weebly

Make sure it works well and probably place the instructions in wiki, linked from README ; can use wix instructions as an example
@rahulgi is chatting with a partner that uses weebly so we should get this ready soon.

Done!


Go 1.12 and updated go types

Fixes https://github.com/EnMasseProject/enmasse/issues/2942
Motivation
The AeroGear team is using enmasse/AMQ Online in an operator and our operator is written in go.  This PR updates the address object to have the Status field.
#How to test
Write a simple operator, go dep add the branch the PR is coming from, fetch an address and make sure its status matches the status of the object in k8s.
I couldn't find any integration tests in the project, but I did test the code locally with my operator.

@secondsun thanks very much for the contribution.  All looks reasonable.  I would though prefer two PRs: one for the address change and a separate one from the Go tooling upgrade.  Please also cite the issue you fix the commit message (i.e Fix #...).

Per @k-wall 's comments, I've broken up the PR into two https://github.com/EnMasseProject/enmasse/pull/2951 and https://github.com/EnMasseProject/enmasse/pull/2952


Add mari support

add mari support #39

And thank you for your contribution.
Taking your time to help out with this project means a lot 🚀


Resolved #144 : Fixed several invalid urls in the README.md file

@mohini-sri90 Please review PR when you have a chance, thanks.


Compilation error with JSON_DIAGNOSTICS enabled

Description
When JSON_DIAGNOSTICS defined, the following compilation error appears:
execeptions.hpp:119 accumulate is not member of std
Reproduction steps
#define JSON_DIAGNOSTICS
#include "nlohmann/json.hpp"
Expected vs. actual results
No compilation error should be
Minimal code example
No response
Error messages
No response
Compiler and operating system
Windows MSVC
Library version
latest
Validation

[X] The bug also occurs if the latest version from the develop branch is used.
[ ] I can successfully compile and run the unit tests.

The include for std::accumulate is indeed missing. Fixed by #3719. Thanks.


USB Microphone not detected by ha audio

My USB microphone is not recognized as an input device in Home Assistant. Pulseaudio doesn't see it, by extension neither does HA. It is detected properly in settings (homeassistant.local:8123/config/hardware), and disappears when unplugged.
In homeassistant.local:8123/config/hardware:
controlC2
/dev/snd/by-id/usb-BLUE_MICROPHONE_Blue_Snowball_201306-00
Subsystem:
sound
Device path:
/dev/snd/controlC2
ID:
/dev/snd/by-id/usb-BLUE_MICROPHONE_Blue_Snowball_201306-00
Attributes:
DEVLINKS: >-
  /dev/snd/by-id/usb-BLUE_MICROPHONE_Blue_Snowball_201306-00
  /dev/snd/by-path/pci-0000:00:14.0-usb-0:2:1.0
DEVNAME: /dev/snd/controlC2
DEVPATH: /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/sound/card2/controlC2
ID_BUS: usb
ID_MODEL: Blue_Snowball
ID_MODEL_ENC: Blue\x20Snowball\x20
ID_MODEL_ID: '0005'
ID_PATH: pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG: pci-0000_00_14_0-usb-0_2_1_0
ID_REVISION: '0100'
ID_SERIAL: BLUE_MICROPHONE_Blue_Snowball_201306
ID_SERIAL_SHORT: '201306'
ID_TYPE: audio
ID_USB_DRIVER: snd-usb-audio
ID_USB_INTERFACES: ':010100:010200:030000:'
ID_USB_INTERFACE_NUM: '00'
ID_USB_MODEL: Blue_Snowball
ID_USB_MODEL_ENC: Blue\x20Snowball\x20
ID_USB_MODEL_ID: '0005'
ID_USB_REVISION: '0100'
ID_USB_SERIAL: BLUE_MICROPHONE_Blue_Snowball_201306
ID_USB_SERIAL_SHORT: '201306'
ID_USB_TYPE: audio
ID_USB_VENDOR: BLUE_MICROPHONE
ID_USB_VENDOR_ENC: BLUE\x20MICROPHONE
ID_USB_VENDOR_ID: 0d8c
ID_VENDOR: BLUE_MICROPHONE
ID_VENDOR_ENC: BLUE\x20MICROPHONE
ID_VENDOR_ID: 0d8c
MAJOR: '116'
MINOR: '12'
SUBSYSTEM: sound
SYSTEMD_USER_WANTS: sound.target
SYSTEMD_WANTS: sound.target
TAGS: ':systemd:'
USEC_INITIALIZED: '112966843604'

command outputs:
~ pactl list short sources
0       alsa_output.pci-0000_00_1b.0.analog-stereo.monitor      module-alsa-card.c      s16le 2ch 48000Hz       RUNNING

~ ha audio info
audio:
  application:
  - addon: 47701997_assist_microphone
    index: 3
    mute: false
    name: ALSA plug-in [aplay]
    stream_index: 0
    stream_type: input
    volume: 1
  card:
  - driver: module-alsa-card.c
    index: 0
    name: alsa_card.pci-0000_00_03.0
    profiles:
    - active: true
      description: "Off"
      name: "off"
  - driver: module-alsa-card.c
    index: 1
    name: alsa_card.pci-0000_00_1b.0
    profiles:
    - active: true
      description: Analog Stereo Output
      name: output:analog-stereo
    - active: false
      description: Analog Stereo Duplex
      name: output:analog-stereo+input:analog-stereo
    - active: false
      description: "Off"
      name: "off"
  input: []
  output:
  - applications: []
    card: 1
    default: true
    description: Built-in Audio Analog Stereo
    index: 0
    mute: false
    name: alsa_output.pci-0000_00_1b.0.analog-stereo
    volume: 1
host: x.x.x.x
update_available: false
version: 2023.06.0
version_latest: 2023.06.0

~ dmesg | grep -E 'usb'
[93607.330050] usb 3-1: New USB device found, idVendor=0d8c, idProduct=0005, bcdDevice= 1.00
[93607.330064] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[93607.330070] usb 3-1: Product: Blue Snowball
[93607.330075] usb 3-1: Manufacturer: BLUE MICROPHONE
[93607.330079] usb 3-1: SerialNumber: 201306
[93607.337452] hid-generic 0003:0D8C:0005.0001: hidraw0: USB HID v1.11 Device [BLUE MICROPHONE Blue Snowball ] on usb-0000:00:14.0-1/input2

Does restarting the Audio plug-in helps (ha audio restart)? There was a bug in hot-plugging which should be resolved with the latest Supervisor 2023.10.1 release.

looks like the update fixed it! will update if anything changes, seems to be working for now.


fix installer e2e

This PR is breaking e2e tests: https://github.com/DataDog/datadog-agent/pull/26742/files
ex of breaking test

/merge


[Feature Request]: Improve FAQ Section Design with Hover Effects and Animations

Is there an existing feature request for this?

[X] I have searched the existing feature requests

Describe the feature you would like to request

To improve the FAQ section with hover effects and animations, use an accordion layout to allow users to expand or collapse answers easily. Implement hover effects that change the background and text color of questions, adding a box shadow for depth. Ensure all color and size changes have smooth transitions for a polished look. Animate the expansion and collapse of answers with CSS for a better user experience. Finally, include a JavaScript snippet to toggle the active class on click, allowing only one answer to be visible at a time.
What problem does this feature solve?
This feature enhances user experience by making the FAQ section more interactive and engaging, allowing users to quickly find the information they need. It reduces clutter by only displaying answers when requested, improving readability. The hover effects provide visual feedback, guiding users through their interactions. Overall, it increases usability and helps users navigate the content efficiently
Alternative solutions
No response
Confirmation

[X] I have read the Bitbox Contributing Guidelines
[X] I am a GSSOC-EXT contributor
[ ] I am a HACKTOBERFEST contributor
[X] I have starred the Bitbox repository
[X] I would like to help implement this feature

Hyy @govindbairi, I'm assigning this issue to you.

Can you give star to the repo?

kindly review my code
Requesting to add a Level 3 label to my PR focused New Feature: Added FAQ Section for Improved User Support
@Anuj3553

kindly review my code Requesting to add a Level 3 label to my PR focused New Feature: Added FAQ Section for Improved User Support @Anuj3553

If you work on the backend then i can give you level between 2 and 3.


Bandwidth / Data usage reduction

Adds Bandwidth / Data usage reduction docs

Nice one @lifeeth - can you also doc this in the supervisor repo? I'd like to document all the config variables, and this looks like a great start.

@pcarranzav We will need to split the docs into supervisor so that we dont have docs in two places - I think this will need more rework of the entire docs structure.

@lifeeth indeed. This relates to #168 (cc @shaunmulligan)
On another note, env var names here should also be changed to use the RESIN_SUPERVISOR_ namespace ;)

Oh, I see you already changed it, nevermind :)

Can we merge this? and do the restructure?


WIP: Desktop print styles

Some browsers (Chrome, Firefox, etc) use tablet styles when printing responsive layouts. This PR is an initial effort to apply desktop styles to printed output across browsers.
Firefox apparently only prints the first page of inline-block elements, which is an issue because we use inline-block to create two column layouts. This PR substitutes display:table-cell in a print media query so that Firefox will print the full text of pages with long inline-block elements.

Additions

Override respond-to-min mixin in main.less to add print to the media query it generates. This will cause the desktop styles to be used in printing across browsers.
Adds more styles needed for printing desktop layout in Firefox: page widths, font size bump, etc
Use display:table-cell instead of inline-block for columns in print media query
Add print style tweaks for homepage

Testing

Check out branch & run gulp styles
Check that pages print in desktop layout across browsers
Navigate to a blog page and verify that the full text prints in Firefox

Review

@Scotchester
@jimmynotjim

Screenshots
Before, print preview of blog page in Chrome:

After, print preview of blog page in Chrome:

Notes

This is a work in progress/not ready to be merged. The basic print desktop layout seems to work across browsers, but there are tweaks & possibly design input needed for the different page types
Overriding the respond-to-min mixin seemed like the simplest approach to applying desktop styles to print, but cherry-picking the styles into a print media query is another option

Todos

On IE9, overriding respond-to-min seems to be breaking the header & footer. Need to figure out why this is happening

Checklist

[ ] Changes are limited to a single goal (no scope creep)
[ ] Code can be automatically merged (no conflicts)
[ ] Code follows the standards laid out in the front end playbook
[ ] Passes all existing automated tests
[ ] New functions include new tests
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged
[ ] Visually tested in supported browsers and devices
[ ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)

@virginiacc, I've updated the print styles to add browser specific and page specific styles. Please take a look when you get a chance.

I'm closing this; will reopen if necessary.


Extension/show repaired tests

Description
Show count of repaired tests as sup relation of passed tests in dashboard.

Added new custom temporary status "Repaired" in tests view.

Fixes #50
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

In my mind the status filter on test overview is inconsistent.
For examle you have passed tests which include retried and repaired tests:

Retried tests have no specific filter in status selection
Repaired tests have a specific filter

Filtering for Passed also retried and repaired tests are shown. Its not clear after which criterias the status filter list was created.
Therfore the status list should only contain real test status like Failed, Expected failed, Skipped, Passed.
Retried (passed or failed) and repaired are attributes of a test, not status values. So tests should have a flag showing special attributes. The filter for tests should handle this similar to Show configuration methods filter.

In my mind the status filter on test overview is inconsistent.
For examle you have passed tests which include retried and repaired tests:

Retried tests have no specific filter in status selection
Repaired tests have a specific filter

Filtering for Passed also retried and repaired tests are shown. Its not clear after which criterias the status filter list was created.
Therfore the status list should only contain real test status like Failed, Expected failed, Skipped, Passed.
Retried (passed or failed) and repaired are attributes of a test, not status values. So tests should have a flag showing special attributes. The filter for tests should handle this similar to Show configuration methods filter.

Problem is, that you cannot easily say "show retried tests", because in comparison to "show configuration methods", these are not a separated amount of the tests relation.
For example:

Clicking the button "show configuration methods", shows mores.
Click the button "show repaired tests" shows only repaired tests? Feels wrong in forms of usuability.

Thats why a made the following decision:

I introduced the virtual status: "Repaired".
Unlike "Failed Expected": "Repaired" is a "Passed" tests with @Fails annotation.
For comparison: "Failed Expected" is a "Failed" test with @Fails annotation.
Thats why having a virtual status like that is right.

The "inconsistency" comes from:

"Failed Expected" is more relevant than "Repaired"
We may add the general status "Repaired" next to "Failed Expected"
"Failed Expected" is part of the core test result status model, "Repaired" not

Suggestions for future change:

Remove "Failed Expected" as actual status and make it virtual
Or: Add "Repaired" as actual status and make it non-virtual in the report

For my personally: Its better to have virtual statuses instead of hard test statuses like "Repaired" or "Failed Expected". However, this is a Product Owning discussion.

Added "Repaired" status in method detail:


Need help denoising R16G16B16A16_FLOAT images using CUDA

Hi!
I am trying to use the GPU (CUDA) denoiser to directly denoise lightmaps without having to do any CPU readbacks. The CPU denoiser using FLOAT3 works beautifully, but I am seeing some strange blocky artefacts when trying to use CUDA + HALF3 as input. I wanted to check with you if what I am trying to do is even possible!
Here is what I do currently as a quick test:

Create the OIDN device, it reports as being CUDA.
Create my lightmaps as R16G16B16A16_FLOAT in a D3D12_HEAP_FLAG_SHARED heap (alpha wont contain anything).
Use ID3D12Device::CreateSharedHandle() to get a NT handle.
Create a OIDN buffer with oidnNewSharedBufferFromWin32Handle
Setup a simple RT filter of format HALF3, but I manually specify the pixelByteStride as 8 and rowByteStride as SizeX * 8 to skip the alpha channel. I tried both in-place and regular and both work the same.
Render the lightmap
Execute the filter.

As you can see, the bottom (denoised) result contains some blocky artefact that leads me to believe there is some texture tiling or format issue. I understand the edges need to be dilated to prevent artefacts near "unused" pixels of the lightmaps, I still need to work on that so let's ignore edges for now, also ignore the pink pixels.

I didnt include a CPU/FLOAT3 image but its very nice and smooth.
Is what im trying to do possible? Anything that comes to mind I should investigate?
-Mat

Hi!
I ended up switching to a buffer instead of a texture and everything works super well. Textures must have some proprietary tiling/swizzling that doesn't get undone when CUDA reads from them.
-Mat


Regression in apache/incubator-pekko-connectors

Based on OpenCB build failure in apache/incubator-pekko-connectors - build logs
Compiler version
Last good release: 3.4.0-RC1-bin-20231212-97e4401-NIGHTLY
First bad release: 3.4.0-RC1-bin-20231213-9dce045-NIGHTLY
Present in 3.4.0-RC1
Bisect points to d6c7e18da5985a1452ec530ca204737e0301da42
Minimized code
case class Person(id: Int)

class GeodeContinuousSourceSpec {
  summon[PdxEncoder[Person]]
}

trait PdxEncoder[A] {
  def encode(a: A): Boolean
}

object PdxEncoder extends ObjectEncoder {
  implicit def intEncoder: PdxEncoder[Int] = ???
}

trait ObjectEncoder {
  given emptyTupleEncoder: PdxEncoder[EmptyTuple] = ???

  given tupleEncoder[K <: String, H, T <: Tuple](using
      m: ValueOf[K],
      hEncoder: PdxEncoder[H],
      tEncoder: PdxEncoder[T]
  ): PdxEncoder[FieldType[K, H] *: T] = ???

  given objectEncoder[A, Repr <: Tuple](using
      gen: LabelledGeneric.Aux[A, Repr],
      tupleEncoder: PdxEncoder[Repr]
  ): PdxEncoder[A] = ???
}

import scala.deriving.Mirror

private type FieldType[K, +V] = V & KeyTag[K, V]
private type KeyTag[K, +V]
private type ZipWith[T1 <: Tuple, T2 <: Tuple, F[_, _]] <: Tuple = (T1, T2) match {
  case (h1 *: t1, h2 *: t2) => F[h1, h2] *: ZipWith[t1, t2, F]
  case (EmptyTuple, ?)      => EmptyTuple
  case (?, EmptyTuple)      => EmptyTuple
  case _                    => Tuple
}

private trait LabelledGeneric[A] {
  type Repr
}

private object LabelledGeneric {
  type Aux[A, R] = LabelledGeneric[A] { type Repr = R }

  inline given productInst[A <: Product](using
      m: Mirror.ProductOf[A]
  ): LabelledGeneric.Aux[A, ZipWith[m.MirroredElemLabels, m.MirroredElemTypes, FieldType]] =
    new LabelledGeneric[A] {
      type Repr = Tuple & ZipWith[m.MirroredElemLabels, m.MirroredElemTypes, FieldType]
    }
}

Output
-- [E172] Type Error: /Users/wmazur/projects/sandbox/main.scala:4:28 -----------
4 |  summon[PdxEncoder[Person]]
  |                            ^
  |No given instance of type PdxEncoder[Person] was found for parameter x of method summon in object Predef.
  |I found:
  |
  |    PdxEncoder.objectEncoder[Person, Repr](
  |      LabelledGeneric.productInst[Person](
  |        Person.$asInstanceOf[
  |
  |            scala.deriving.Mirror.Product{
  |              type MirroredMonoType = Person; type MirroredType = Person;
  |                type MirroredLabel = ("Person" : String);
  |                type MirroredElemTypes = Int *: EmptyTuple.type;
  |                type MirroredElemLabels = ("id" : String) *: EmptyTuple.type
  |            }
  |
  |        ]
  |      ),
  |    ???)
  |
  |But given instance productInst in object LabelledGeneric does not match type LabelledGeneric.Aux[Person, Repr].
1 error found

Expectation
Not sure if it's false negative or not. Needs confirmation it works as expected or to provide a fix.

Im going to guess the match type is the issue

If you want to fix the compilation, then LabelledGeneric.productInst should be transparent inline. Maybe there's another way of redesigning the code to propagate the types correctly

Changing what, how and when type vars are constraints can affect match type resolution.

Shouldn't we close the issue? this is due to the deliberate type inference change

no, actually the whole code was reverted in #19922, so no longer causes this

fixed by https://github.com/scala/scala3/pull/19922


[chore] fix generate protobuf for TypeScript

Previously make generate-protobuf only copied the demo.proto file but did not generate the protobuf classes required for IDEs to resolve imports. This adds the command to generate the protobuf classes.

@puckpuck do we need an extra tool for this?
I keep getting:
Generating Typescript protobuf files for frontend
./node_modules/.bin/protoc-gen-ts_proto: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--ts_proto_out: protoc-gen-ts_proto: Plugin failed with status code 1.

I've tried installing https://www.npmjs.com/package/protoc-gen-ts, but it didn't solve.

@julianocosta89 you need to run npm install in the src/frontend folder first.
I can add that to the gen proto script if you feel we should have it there as well.

@julianocosta89 you need to run npm install in the src/frontend folder first.
I can add that to the gen proto script if you feel we should have it there as well.

Either that or we could mention that step in the development doc

Let’s go with doc updates. I’ll get a PR together shortly.


Error compiling http11.c when installing camping-omnibus

OS X 10.7 (Lion)
Intel Mac
GCC: i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1
8GB RAM
3.06 GHz Intel Core 2 Duo
Building native extensions.  This could take a while...
ERROR:  Error installing camping-omnibus:
ERROR: Failed to build gem native extension.
    /Users/chuck/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb

checking for main() in -lc... yes
creating Makefile
make
compiling http11.c
http11.c: In function ‘http_field’:
http11.c:70: warning: format not a string literal and no format arguments
http11.c:71: warning: format not a string literal and no format arguments
http11.c:77: error: ‘struct RString’ has no member named ‘ptr’
http11.c:77: error: ‘struct RString’ has no member named ‘len’
http11.c:77: warning: left-hand operand of comma expression has no effect
http11.c: In function ‘request_uri’:
http11.c:102: warning: format not a string literal and no format arguments
http11.c: In function ‘fragment’:
http11.c:113: warning: format not a string literal and no format arguments
http11.c: In function ‘request_path’:
http11.c:124: warning: format not a string literal and no format arguments
http11.c: In function ‘query_string’:
http11.c:135: warning: format not a string literal and no format arguments
http11.c: In function ‘header_done’:
http11.c:172: error: ‘struct RString’ has no member named ‘ptr’
http11.c:174: error: ‘struct RString’ has no member named ‘ptr’
http11.c:176: error: ‘struct RString’ has no member named ‘ptr’
http11.c:177: error: ‘struct RString’ has no member named ‘len’
http11.c: In function ‘HttpParser_execute’:
http11.c:298: error: ‘struct RString’ has no member named ‘ptr’
http11.c:299: error: ‘struct RString’ has no member named ‘len’
http11.c:307: warning: format not a string literal and no format arguments
make: *** [http11.o] Error 1

Forgot to add that I'm using the current (head) version of RVM and Ruby 1.9.3-p0.

Mongrel isn't 1.9 ready. I pushed out a new version of camping-omnibus which removes Mongrel as a dependency (you don't really need it anyway).
There might be some lag at rubygems.org, so if an re-install doesn't work, you can always just do:
gem install camping markaby activerecord sqlite3

Yeah, just narrowed it down to Mongrel...
I hate when that happens...  :-(


Validator with ajax

Hi folks,
I'm trying to do this:
Vue.use(VueFormGenerator);
    VueFormGenerator.validators.short = function (value, field) {
        if (value.length < 3) {
            return ['The short must have at least 3 characters'];
        }

        return axios.post('api/scaffolder/validate-short', {"short": value}).then(response => {
                    if (response.data.valid == false) {
                        return ['The short already exists'];
                    }
                    return null;

                });
    };

However if the value is > 2 field is always in green, even if response.data.valid is false. Is VFG able to have ajax validations?
Best,
Juan Manuel.

Can you post the usage of your validator ?
This part seems a bit wrong to me since your are returning a Promise here basically instead of an array
return axios.post('api/scaffolder/validate-short', {"short": value}).then(response => {
                    if (response.data.valid == false) {
                        return ['The short already exists'];
                    }
                    return null;

                });

vfg can't support async validators.

@icebob really?

@icebob but would you like to support them? if not I couldn't use this repo anymore

what about drop de built in validation, change the fields generation and integrate with Vee Validate?

Dont think that's an option. For example I got rid of Vee validate and all it's stuff and switched to form generator and form generator validations because Vee validate requires a lot of boilerplate code. If you want a field validation you have to add like 3 html wrappers and functions and it gets really messy with custom components like date pickers or external stuff you cannot control so easily.

yep, that's why I bet for VFG when I saw it, however, ajax validation is a must for me as is the most common use case in my world. Not having this feature implemented here makes the library less powerful (no offence). I could spend a bunch of hours working on this feature if @icebob wants to support async validation and he has an idea about which path to take for this one.

Does vee validate support async validation?

@cristijora yes, it works quite well.

Can you post a fiddle so I understand how it works?

@jmverges I think it is a good feature.

I'm trying a quick implementation with Promise

Please share the result/attempt in a PR maybe.

@jmverges I implemented. If you can, please try it.


"For library authors" doesn't exist anymore

In version 3+ extending bluebird via var Promise = require("bluebird/js/main/promise")(); is not possible anymore and the documentation section "For library authors" referenced in multiple discussions doesn't exist anymore.
Please bring back "For library authors" in the docs or document that bluebird cannot be extended anymore.

Extending bluebird is still possible - this is a docs glitch, apologies.

Did you try release instead of main?

v3.4.0 also introduced a method Promise.getNewLibraryCopy() for this.
http://bluebirdjs.com/docs/api/promise.getnewlibrarycopy.html

I think this issue can be closed now.


Handle empty filenames as fields instead of files

Prerequisites

[X] I have written a descriptive issue title
[X] I have searched existing issues to ensure the feature has not already been requested

🚀 Feature Proposal
When crafting browser requests it doesn't seem possible to leave out the filename in case you want to send a blob:
const body = new FormData();
body.append('json', new Blob(['{"foo":"bar"}'], {type: 'application/json'}));
fetch('/test', {method: 'POST', body});
Uses "glob" as filename.
const body = new FormData();
body.append('json', new Blob(['{"foo":"bar"}'], {type: 'application/json'}), '');
fetch('/test', {method: 'POST', body});
Uses "" as filename.
const body = new FormData();
body.append('json', new Blob(['{"foo":"bar"}'], {type: 'application/json'}), null);
fetch('/test', {method: 'POST', body});
Uses "null" as filename.
Therefore such requests are handled as file because of this undefined check:
https://github.com/mscdex/busboy/blob/master/lib/types/multipart.js#L174
Is it reasonable to also accept parts with empty filenames as fields? Wouldn't a real file always have a filename?
I think that this could be seen as breaking change.
A minor change would be adding an option for a custom filtering handler which let the user decide whether a specific part should be handled as file or field.

Originally brought up by @cyantree in https://github.com/fastify/fastify-multipart/issues/292

Thanks @kibertoad for preparing the fork and migrating this issue. I'll prepare a pull request for it later.

Will be handled through #53


[Question] TPU support for BERT

Hi there,
I am running a classification problem using BERT embedding on Colab. How can I make Kashgare support TPU?
Thanks!

You may check if keras with tf as backend support TPU which I think is able to.
But I am afraid this support has not be considered yet.
However you are encouraged to make a solution by adding some codes as a configuration. I saw the author has begun some work on this in dev branch.

Maybe this will help you out, https://www.dlology.com/blog/how-to-train-keras-model-x20-times-faster-with-tpu-for-free/

We are working on a tf.keras version, which supports TPU training. It is at an early stage. Here is a demo colab notebook .


chore(dependencies): upgrade cdk8s

Since cdk8s is a peerDependency, it isn't upgraded automatically.
Resolves https://github.com/cdk8s-team/cdk8s-redis/issues/1311

@Mergifyio refresh


Implement a base bot structure

Implement a base for everyone to work off of.

I've just committed the initial, working, framework to master.


Error running make run_spin

When I run make run_spin in the top directory, everything builds correctly. However, when it gets to the install step, I get this error:
   Compiling containerd-shim-slight-v1 v0.1.0 (/home/luke/Projects/WASM/containerd-wasm-shims/containerd-shim-slight-v1)
    Finished release [optimized] target(s) in 10m 01s
sudo install target/release/containerd-shim-*-v1 /usr/local/bin
[sudo] password for luke:
install: cannot stat 'target/release/containerd-shim-*-v1': No such file or directory
make: *** [Makefile:37: install] Error 1

That path does not existing in the top directory, but it is in containerd-shim-spin-v1 and containerd-shim-slight-v1.
It looks like install should add in the dir for the different shims: https://github.com/deislabs/containerd-wasm-shims/blob/4890298ea7acb8c208a2d117551b08ad23d4ea95/Makefile#L37

Oops, I think that might be my mistake when I removed workspace in #15 . Now, each spin and slight shim compiles within its own directory.

Should be fixed by #118


Docker container process becomes a Zombie process to make k8s pod not ready.

Description
Docker container process becomes a Zombie process to make k8s pod not ready.
Steps to reproduce the issue:

With k8s to deploy scaled docker based application
Keep the system running for 2-3 days, some k8s pods will stuck at not ready status due to the container process becomes a Zombie process.

Describe the results you received:

zookeeper-1 pod is not ready.

cloud-user@hm6-opshub-aio:~$ kubectl get pod -n opshub-data zookeeper-1
NAME          READY   STATUS    RESTARTS   AGE
zookeeper-1   0/1     Running   0          4d1h

zookeeper-1 container is UP and the container process(661) is defunct but the parent shim process(662) is still alive.

cloud-user@hm6-opshub-aio:~$ docker ps | grep zookeeper-1
81cc1c688c86        d43be510ec44                                                                                "/custom-entrypoint.…"   4 days ago          Up 4 days                               k8s_zookeeper_zookeeper-1_opshub-data_04f9ccf7-39a3-4cbd-b5cc-032759116f54_0
3fb3d3015ea2        k8s.gcr.io/pause:3.1                                                                                "/pause"                 4 days ago          Up 4 days                               k8s_POD_zookeeper-1_opshub-data_04f9ccf7-39a3-4cbd-b5cc-032759116f54_0
cloud-user@hm6-opshub-aio:~$ sudo ls  -lart /run/docker/runtime-runc/moby | grep 81cc1c688c86
drwx--x--x   2 root root   60 Oct 19 23:34 81cc1c688c867dd051cb0356bdc60d2c6d79758b4bbc4c13d93957e86befc452
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ sudo ls  -lart /run/docker/runtime-runc/moby/81cc1c688c867dd051cb0356bdc60d2c6d79758b4bbc4c13d93957e86befc452/
total 16
-rw-r--r--   1 root root 13135 Oct 19 23:34 state.json
drwx--x--x   2 root root    60 Oct 19 23:34 .
drwx------ 226 root root  4520 Oct 24 01:15 ..
cloud-user@hm6-opshub-aio:~$ sudo grep -nr "process" /run/docker/runtime-runc/moby/81cc1c688c867dd051cb0356bdc60d2c6d79758b4bbc4c13d93957e86befc452/state.json
1:{"id":"81cc1c688c867dd051cb0356bdc60d2c6d79758b4bbc4c13d93957e86befc452","init_process_pid":661,
.......
cloud-user@hm6-opshub-aio:~$ ps -ef | grep " 661 "
cloud-u+   661   626  0 Oct19 ?        00:00:00 [custom-entrypoi] <defunct>
cloud-u+ 18196 18352  0 01:26 pts/1    00:00:00 grep --color=auto  661
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ sudo ls -lart /proc/661/ns/
ls: cannot read symbolic link '/proc/661/ns/net': No such file or directory
ls: cannot read symbolic link '/proc/661/ns/uts': No such file or directory
ls: cannot read symbolic link '/proc/661/ns/ipc': No such file or directory
ls: cannot read symbolic link '/proc/661/ns/pid_for_children': No such file or directory
ls: cannot read symbolic link '/proc/661/ns/mnt': No such file or directory
ls: cannot read symbolic link '/proc/661/ns/cgroup': No such file or directory
total 0
dr-xr-xr-x 9 cloud-user docker 0 Oct 23 07:04 ..
dr-x--x--x 2 root       root   0 Oct 23 15:55 .
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 uts
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 user -> 'user:[4026531837]'
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 pid_for_children
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 pid -> 'pid:[4026538421]'
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 net
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 mnt
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 ipc
lrwxrwxrwx 1 root       root   0 Oct 23 15:55 cgroup
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ ps -ef | grep " 626 "
root       626  2952  0 Oct19 ?        00:06:25 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/81cc1c688c867dd051cb0356bdc60d2c6d79758b4bbc4c13d93957e86befc452 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc
cloud-u+   661   626  0 Oct19 ?        00:00:00 [custom-entrypoi] <defunct>
cloud-u+ 28657 18352  0 01:26 pts/1    00:00:00 grep --color=auto  626
cloud-user@hm6-opshub-aio:~$
After run "kill -9 " the related shim process, the container restart by k8s and pod becomes ready.
Describe the results you expected:
Container will be restarted by k8s to handle unexpected zookeeper container process stopping and becomes ready again after the restarting:
cloud-user@hm6-opshub-aio:~$ kubectl get pod -A | grep zookeeper
opshub-data     zookeeper-0                                                     1/1     Running       1          5d4h
opshub-data     zookeeper-1                                                     1/1     Running       1          5d4h
opshub-data     zookeeper-2                                                     1/1     Running       1          5d4h
cloud-user@hm6-opshub-aio:~$
Output of containerd --version:
cloud-user@clab2-master-01:~$ docker version
Client:
Version:           18.06.3-ce
API version:       1.38
Go version:        go1.10.3
Git commit:        d7080c1
Built:             Wed Feb 20 02:28:10 2019
OS/Arch:           linux/amd64
Experimental:      false
Server:
Engine:
Version:          18.06.3-ce
API version:      1.38 (minimum version 1.12)
Go version:       go1.10.3
Git commit:       d7080c1
Built:            Wed Feb 20 02:26:34 2019
OS/Arch:          linux/amd64
Experimental:     false
cloud-user@clab2-master-01:~$
Any other relevant information:
It seems that the shim parent process not handling the container init process exit very well.

Hi @frankui
I think the issue has been fixed by https://github.com/containerd/containerd/pull/3540. you can update your docker version to fix this issue. Thanks for reporting.

Hi @frankui
I think the issue has been fixed by #3540. you can update your docker version to fix this issue. Thanks for reporting.

Thanks, Fu.
We are try to upgrade the docker-ce to 18.0.9 since that is the latest version claimed to be verified by k8s. I checked the docker-ce 18.0.9 and it seems that it still using containerd 1.2.6. So the issue is not fixed on docker-ce 18.0.9 and we need to wait for the new docker-ce published and verified by k8s team, right?

Hi @frankui , sorry for late reply. I don't think k8s community will do the check for this. It is about container runtime. I checked that moby code base and containerd vendor has been updated to v1.3.0. I think we just wait for docker-ce to update containerd version.
cc @thaJeztah

Hi @frankui , sorry for late reply. I don't think k8s community will do the check for this. It is about container runtime. I checked that moby code base and containerd vendor has been updated to v1.3.0. I think we just wait for docker-ce to update containerd version.
cc @thaJeztah

Hi, Fu,
Here seems to be the k8s clarification about the docker version verified.
https://kubernetes.io/docs/setup/release/notes/
The list of validated docker versions remains unchanged.
The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. (#72823, #72831)
We double checked the 18.09.9 docker-ce still using v1.2.6 containerd. We will try to upgrade the docker version to 19.03 with the latest k8s setup and keep monitoring the issue for some time.
Thanks again for taking care of the issue.

Hi @frankui , I checked that docker-ce 18.09.9 requires containerd version >=1.2.2. And the repository for packages has containerd 1.2.10 version. If you re-install docker-ce, I think the containerd will be 1.2.10.
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

Hi @frankui , I checked that docker-ce 18.09.9 requires containerd version >=1.2.2. And the repository for packages has containerd 1.2.10 version. If you re-install docker-ce, I think the containerd will be 1.2.10.
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

Hi @fuweid,
After we upgraded docker to 18.09.9 with containerd 1.2.10, we didn't observe zombine container process. But we still observed some other issues here.
The 1st issue is that zookeeper-0 container process seems to be still alive when container seems to be hang and can't be inspected and executed after kubelet health-probe detected the failure of "code = Unknown desc = operation timeout: context deadline exceeded".
The 2nd issue is that zookeeper-2 container process seems to be alive and container is not hang but the container is not restarted by kubelet after after kubelet health-probe detected the failure of "code = DeadlineExceeded desc = context deadline exceeded".
I would think both issues are kubelet health-probe issue. The 1st one is that the container status not updated to False after health-probe detected the failuer. The 2nd one is that even the container status updated to False after health-probe detected the failure, the container process was not killed.

zookeeper-0 container process seems still alive but the container can't be inspected. kubelet health-probe failed but the container is not removed and recreated by kubelet when it should be restarted since the restartPolicy is set with "Always".

cloud-user@hm6-opshub-aio:~$ kubectl get pod -n opshub-data | grep zookeeper
zookeeper-0                                          1/1     Running     1          45h
zookeeper-1                                          1/1     Running     10         45h
zookeeper-2                                          0/1     Running     7          45h
cloud-user@hm6-opshub-aio:~$ kubectl describe pod -n opshub-data zookeeper-0 | grep "healthy|True"
Ready:          True
Initialized       True
Ready             True
ContainersReady   True
PodScheduled      True
Warning  Unhealthy  3m26s (x73 over 7h15m)  kubelet, hm6-opshub-aio  Readiness probe errored: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Warning  Unhealthy  3m22s (x73 over 7h15m)  kubelet, hm6-opshub-aio  Liveness probe errored: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ docker ps | grep zookeeper-0
7d1dbb28dac3        d43be510ec44           "/custom-entrypoint.…"   7 hours ago         Up 7 hours                              k8s_zookeeper_zookeeper-0_opshub-data_ca906dcf-c623-460a-9271-1389b09912b0_1
fb0855d4e2e6        k8s.gcr.io/pause:3.1   "/pause"                 46 hours ago        Up 46 hours                             k8s_POD_zookeeper-0_opshub-data_ca906dcf-c623-460a-9271-1389b09912b0_0
cloud-user@hm6-opshub-aio:~$ docker inspect 7d1dbb28dac3
^C
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ ps -ef | grep 7d1dbb28dac3
cloud-u+  5797  2133  0 00:31 pts/0    00:00:00 grep --color=auto 7d1dbb28dac3
root     29106  1640  0 Nov11 ?        00:00:03 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 -address /run/containerd/containerd.sock -containerd-binary /usr/bin/containerd -runtime-root /var/run/docker/runtime-runc
cloud-user@hm6-opshub-aio:~$ pstree -Aps 29106
systemd(1)---containerd(1640)---containerd-shim(29106)-+-custom-entrypoi(28972)---java(27621)-+-{java}(9130)
|                                      |-{java}(11029)
|                                      |-{java}(11286)
|                                      |-{java}(12763)
|                                      |-{java}(13747)
|                                      |-{java}(28433)
|                                      |-{java}(28894)
|                                      |-{java}(28967)
|                                      |-{java}(28974)
|                                      |-{java}(28978)
|                                      |-{java}(14529)
|                                      |-{java}(15240)
|                                      |-{java}(15293)
|                                      |-{java}(15301)
|                                      |-{java}(9400)
|                                      |-{java}(15534)
|                                      |-{java}(15629)
|                                      |-{java}(15729)
|                                      |-{java}(15734)
|                                      |-{java}(15916)
|                                      |-{java}(16188)
|                                      |-{java}(18701)
|                                      |-{java}(15917)
|                                      |-{java}(26674)
|                                      |-{java}(12770)
|                                      |-{java}(12851)
|                                      |-{java}(31435)
|                                      |-{java}(32660)
|                                      |-{java}(27491)
|                                      |-{java}(27889)
|                                      |-{java}(7945)
|                                      |-{java}(11013)
|                                      |-{java}(12829)
|                                      |-{java}(14809)
|                                      |-{java}(15000)
|                                      |-{java}(21571)
|                                      -{java}(21640)                                                        |-{containerd-shim}(29110)                                                        |-{containerd-shim}(29112)                                                        |-{containerd-shim}(29158)                                                        |-{containerd-shim}(29168)                                                        |-{containerd-shim}(29169)                                                        |-{containerd-shim}(29170)                                                        |-{containerd-shim}(29375)                                                        |-{containerd-shim}(29377)                                                        |-{containerd-shim}(15528)                                                        -{containerd-shim}(7852)
cloud-user@hm6-opshub-aio:~$ sudo ls -lart /proc/28972/ns/
total 0
dr-xr-xr-x 9 cloud-user docker 0 Nov 11 17:24 ..
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 17:28 uts -> 'uts:[4026535737]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 17:28 pid -> 'pid:[4026535738]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 17:28 net -> 'net:[4026537410]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 17:28 mnt -> 'mnt:[4026535735]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 17:28 ipc -> 'ipc:[4026537339]'
dr-x--x--x 2 cloud-user docker 0 Nov 11 17:28 .
lrwxrwxrwx 1 cloud-user docker 0 Nov 12 00:01 user -> 'user:[4026531837]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 12 00:01 pid_for_children -> 'pid:[4026535738]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 12 00:01 cgroup -> 'cgroup:[4026531835]'
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ sudo journalctl -u docker -l | grep "7d1dbb28dac3|d43be510ec44"
cloud-user@hm6-opshub-aio:~$ sudo journalctl -u kubelet -l | grep "7d1dbb28dac3|d43be510ec44"
Nov 12 00:04:50 hm6-opshub-aio kubelet[1608]: E1112 00:04:50.070632    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:04:54 hm6-opshub-aio kubelet[1608]: E1112 00:04:54.273946    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:06:50 hm6-opshub-aio kubelet[1608]: E1112 00:06:50.071164    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:06:54 hm6-opshub-aio kubelet[1608]: E1112 00:06:54.274737    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:08:50 hm6-opshub-aio kubelet[1608]: E1112 00:08:50.071629    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:08:54 hm6-opshub-aio kubelet[1608]: E1112 00:08:54.276540    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:10:50 hm6-opshub-aio kubelet[1608]: E1112 00:10:50.072182    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:10:54 hm6-opshub-aio kubelet[1608]: E1112 00:10:54.277346    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:12:50 hm6-opshub-aio kubelet[1608]: E1112 00:12:50.072647    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:12:54 hm6-opshub-aio kubelet[1608]: E1112 00:12:54.277886    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:13:39 hm6-opshub-aio kubelet[1608]: E1112 00:13:39.791119    1608 remote_runtime.go:321] UpdateContainerResources "7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501" from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:13:39 hm6-opshub-aio kubelet[1608]: I1112 00:13:39.791156    1608 policy_static.go:197] [cpumanager] static policy: RemoveContainer (container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501)
Nov 12 00:13:39 hm6-opshub-aio kubelet[1608]: E1112 00:13:39.791175    1608 cpu_manager.go:252] [cpumanager] reconcileState: failed to add container (pod: zookeeper-0, container: zookeeper, container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501, error: rpc error: code = DeadlineExceeded desc = context deadline exceeded)
Nov 12 00:14:50 hm6-opshub-aio kubelet[1608]: E1112 00:14:50.073181    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:14:54 hm6-opshub-aio kubelet[1608]: E1112 00:14:54.280002    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:16:50 hm6-opshub-aio kubelet[1608]: E1112 00:16:50.073623    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:16:54 hm6-opshub-aio kubelet[1608]: E1112 00:16:54.280537    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:17:53 hm6-opshub-aio kubelet[1608]: E1112 00:17:53.667233    1608 remote_runtime.go:321] UpdateContainerResources "7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501" from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:17:53 hm6-opshub-aio kubelet[1608]: I1112 00:17:53.667267    1608 policy_static.go:197] [cpumanager] static policy: RemoveContainer (container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501)
Nov 12 00:17:53 hm6-opshub-aio kubelet[1608]: E1112 00:17:53.667278    1608 cpu_manager.go:252] [cpumanager] reconcileState: failed to add container (pod: zookeeper-0, container: zookeeper, container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501, error: rpc error: code = DeadlineExceeded desc = context deadline exceeded)
Nov 12 00:18:50 hm6-opshub-aio kubelet[1608]: E1112 00:18:50.074084    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:18:54 hm6-opshub-aio kubelet[1608]: E1112 00:18:54.281055    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:20:50 hm6-opshub-aio kubelet[1608]: E1112 00:20:50.074623    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:20:54 hm6-opshub-aio kubelet[1608]: E1112 00:20:54.282034    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:22:50 hm6-opshub-aio kubelet[1608]: E1112 00:22:50.075195    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:22:54 hm6-opshub-aio kubelet[1608]: E1112 00:22:54.282536    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:24:50 hm6-opshub-aio kubelet[1608]: E1112 00:24:50.075708    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:24:54 hm6-opshub-aio kubelet[1608]: E1112 00:24:54.283047    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:26:50 hm6-opshub-aio kubelet[1608]: E1112 00:26:50.077269    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:26:54 hm6-opshub-aio kubelet[1608]: E1112 00:26:54.283741    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:28:25 hm6-opshub-aio kubelet[1608]: E1112 00:28:25.170666    1608 remote_runtime.go:321] UpdateContainerResources "7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501" from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:28:25 hm6-opshub-aio kubelet[1608]: I1112 00:28:25.170707    1608 policy_static.go:197] [cpumanager] static policy: RemoveContainer (container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501)
Nov 12 00:28:25 hm6-opshub-aio kubelet[1608]: E1112 00:28:25.170718    1608 cpu_manager.go:252] [cpumanager] reconcileState: failed to add container (pod: zookeeper-0, container: zookeeper, container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501, error: rpc error: code = DeadlineExceeded desc = context deadline exceeded)
Nov 12 00:28:50 hm6-opshub-aio kubelet[1608]: E1112 00:28:50.077792    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:28:54 hm6-opshub-aio kubelet[1608]: E1112 00:28:54.284491    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:30:50 hm6-opshub-aio kubelet[1608]: E1112 00:30:50.078398    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:30:54 hm6-opshub-aio kubelet[1608]: E1112 00:30:54.285289    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:32:41 hm6-opshub-aio kubelet[1608]: E1112 00:32:41.866034    1608 remote_runtime.go:321] UpdateContainerResources "7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501" from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:32:41 hm6-opshub-aio kubelet[1608]: I1112 00:32:41.866072    1608 policy_static.go:197] [cpumanager] static policy: RemoveContainer (container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501)
Nov 12 00:32:41 hm6-opshub-aio kubelet[1608]: E1112 00:32:41.866084    1608 cpu_manager.go:252] [cpumanager] reconcileState: failed to add container (pod: zookeeper-0, container: zookeeper, container id: 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501, error: rpc error: code = DeadlineExceeded desc = context deadline exceeded)
Nov 12 00:32:50 hm6-opshub-aio kubelet[1608]: E1112 00:32:50.079286    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
Nov 12 00:32:54 hm6-opshub-aio kubelet[1608]: E1112 00:32:54.285874    1608 remote_runtime.go:351] ExecSync 7d1dbb28dac3216b2b5cbafa5c6b9dbb4a6565e56d9bd8c6f060ba7487b55501 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = Unknown desc = operation timeout: context deadline exceeded
cloud-user@hm6-opshub-aio:~$

zookeeper-2 container process seems still alive and the container can be inspected. kubelet health-probe failed but the container is not removed and recreated by kubelet when it should be restarted since the restartPolicy is set with "Always".
cloud-user@hm6-opshub-aio:~$ kubectl get pod -n opshub-data | grep zookeeper
zookeeper-0                                          1/1     Running     1          45h
zookeeper-1                                          1/1     Running     10         45h
zookeeper-2                                          0/1     Running     7          45h

cloud-user@hm6-opshub-aio:~$ kubectl describe pod -n opshub-data zookeeper-2 | grep "healthy|True"
Ready:          False
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Warning  Unhealthy  12m (x42 over 6h51m)  kubelet, hm6-opshub-aio  Readiness probe errored: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Warning  Unhealthy  94s (x46 over 6h51m)  kubelet, hm6-opshub-aio  Liveness probe errored: rpc error: code = DeadlineExceeded desc = context deadline exceeded
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ docker ps | grep zookeeper-2
0a50977d41d1        d43be510ec44           "/custom-entrypoint.…"   4 hours ago         Up 4 hours                              k8s_zookeeper_zookeeper-2_opshub-data_00f410f0-4545-4624-af43-a711a052bda9_7
90229e6740e5        k8s.gcr.io/pause:3.1   "/pause"                 46 hours ago        Up 46 hours                             k8s_POD_zookeeper-2_opshub-data_00f410f0-4545-4624-af43-a711a052bda9_0
cloud-user@hm6-opshub-aio:~$ docker inspect 0a50977d41d1 | grep -i pid
"Pid": 23042,
"PidMode": "",
"PidsLimit": 0,
cloud-user@hm6-opshub-aio:~$ pstree -Aps 20157
systemd(1)---containerd(1640)---containerd-shim(20157)-+-custom-entrypoi(23042)---java(9685)-+-{java}(14817)
|                                     |-{java}(15529)
|                                     |-{java}(16508)
|                                     |-{java}(16624)
|                                     |-{java}(17340)
|                                     |-{java}(21761)
|                                     |-{java}(21767)
|                                     |-{java}(21768)
|                                     |-{java}(21774)
|                                     |-{java}(21870)
|                                     |-{java}(22282)
|                                     |-{java}(23076)
|                                     |-{java}(24371)
|                                     |-{java}(24584)
|                                     |-{java}(11666)
|                                     |-{java}(12698)
|                                     |-{java}(12704)
|                                     |-{java}(12717)
|                                     |-{java}(12863)
|                                     |-{java}(13749)
|                                     |-{java}(3068)
|                                     |-{java}(31521)
|                                     |-{java}(10433)
|                                     |-{java}(3070)
|                                     |-{java}(9702)
|                                     |-{java}(21142)
|                                     |-{java}(21266)
|                                     |-{java}(21776)
|                                     |-{java}(22291)
|                                     -{java}(22307)                                                        |-sh(9736)---bash(17080)---bash(18515)---nc(9040)                                                        |-sh(10803)---bash(11689)---bash(13840)---nc(13976)                                                        |-sh(14846)---bash(19300)---bash(19613)---nc(21264)                                                        |-sh(20488)---bash(27165)---bash(27189)---nc(27294)                                                        |-sh(22640)---bash(22646)---bash(22649)---nc(22652)                                                        |-sh(25026)---bash(9972)---bash(10123)---nc(10763)                                                        |-sh(25040)---bash(18685)---bash(21109)---nc(21674)                                                        |-sh(25510)---bash(25525)---bash(25527)---nc(25529)                                                        |-sh(28651)---bash(9817)---bash(10228)---nc(10937)                                                        |-{containerd-shim}(20267)                                                        |-{containerd-shim}(20297)                                                        |-{containerd-shim}(20379)                                                        |-{containerd-shim}(20453)                                                        |-{containerd-shim}(20493)                                                        |-{containerd-shim}(20816)                                                        |-{containerd-shim}(20821)                                                        |-{containerd-shim}(20844)                                                        |-{containerd-shim}(32434)                                                        -{containerd-shim}(9625)
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ sudo ls -lart /proc/23042/ns/
total 0
dr-xr-xr-x 9 cloud-user docker 0 Nov 11 20:54 ..
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 20:54 uts -> 'uts:[4026535740]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 20:54 pid -> 'pid:[4026535750]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 20:54 net -> 'net:[4026538543]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 20:54 mnt -> 'mnt:[4026535739]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 11 20:54 ipc -> 'ipc:[4026538537]'
dr-x--x--x 2 cloud-user docker 0 Nov 11 20:54 .
lrwxrwxrwx 1 cloud-user docker 0 Nov 12 00:20 user -> 'user:[4026531837]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 12 00:20 cgroup -> 'cgroup:[4026531835]'
lrwxrwxrwx 1 cloud-user docker 0 Nov 12 00:46 pid_for_children -> 'pid:[4026535750]'
cloud-user@hm6-opshub-aio:~$
cloud-user@hm6-opshub-aio:~$ sudo journalctl -u docker -l | grep "0a50977d41d1|d43be510ec44"
cloud-user@hm6-opshub-aio:~$ sudo journalctl -u kubelet -l | grep "0a50977d41d1|d43be510ec44"
Nov 12 00:11:02 hm6-opshub-aio kubelet[1608]: E1112 00:11:02.995813    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:11:11 hm6-opshub-aio kubelet[1608]: E1112 00:11:11.142359    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:13:07 hm6-opshub-aio kubelet[1608]: E1112 00:13:07.995993    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:13:16 hm6-opshub-aio kubelet[1608]: E1112 00:13:16.142612    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:15:12 hm6-opshub-aio kubelet[1608]: E1112 00:15:12.996215    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:15:21 hm6-opshub-aio kubelet[1608]: E1112 00:15:21.142848    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:17:17 hm6-opshub-aio kubelet[1608]: E1112 00:17:17.996402    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:17:26 hm6-opshub-aio kubelet[1608]: E1112 00:17:26.143059    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:19:22 hm6-opshub-aio kubelet[1608]: E1112 00:19:22.996563    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:19:31 hm6-opshub-aio kubelet[1608]: E1112 00:19:31.143296    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:21:27 hm6-opshub-aio kubelet[1608]: E1112 00:21:27.996782    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:21:36 hm6-opshub-aio kubelet[1608]: E1112 00:21:36.143505    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:23:32 hm6-opshub-aio kubelet[1608]: E1112 00:23:32.996973    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:23:41 hm6-opshub-aio kubelet[1608]: E1112 00:23:41.143690    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:25:37 hm6-opshub-aio kubelet[1608]: E1112 00:25:37.997161    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Nov 12 00:25:46 hm6-opshub-aio kubelet[1608]: E1112 00:25:46.144075    1608 remote_runtime.go:351] ExecSync 0a50977d41d12b458ad853f2bae5976b7d275faa4d195559cb06e588ee78cf0a 'sh -c zookeeper-ready 2181' from runtime service failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
I didn't observe the container removed/recreated/restarted logs in kubelet and docker. Not sure if it is related to the latest docker change. Any ideas about this?

@fuweid. We found the trigger of our issue. The trigger is the thread leak in some of our micro-services. When the thread number reaches to the kernel pid_max limitation, the new thread or process can not be created that may cause the container to fail to be stopped by kuebelet. After we fixed the thread leak, the issue has never been observed even with docker-ce 18.06.
So please go ahead to close this issue and thanks for the help on this issue.

@frankui thank you! The root cause information is helpful!


Trace Morphic world cycles

Implementation:

BlockClosure >> #traceAndDebug
a small "trace recorder" UI

Closed via 1ec185328ecd4dc7dc41bb17effbc53f1561ed5b. See TraceDebugger class >> #exampleWorldCyclesFor:.


Update Broker and Controller to use topic name templates

Fixes #3153

Proposed Changes

Update the broker and controller to use the topic templates added in #3157
Use the Status.Annotations field on the Channel and Broker to make sure that if the template gets changed, the Channel/Broker topic name is not changed on existing Brokers/Channels.

Release Note

Brokers and Channels now support custom Kafka Topic name templates.

Docs

https://github.com/knative/docs/issues/5607

How do we make sure that if I change the template while I have existing brokers/channels, that change is not applied to existing objects?

Good catch! I hadn't considered that. Do you think that checking if there is a broker.Status.Annotations[kafka.TopicAnnotation] and using that if it exists would be sufficient?

@pierDipi there seem to be 2 main things left to work on before this PR is ready, and I am not sure what to do for either.

I managed to use the broker.Status.Annotations[kafka.TopicAnnotation] to check for if a broker had an existing topic, as we currently set that field in the broker reconcileKind function. However, we don't do this for the channel (v1 or v2) so I am not sure how to check if there is an existing topic for a channel.
We should add unit tests to check if the templates are being applied properly for a custom template, but I am not sure how to write these tests as the features of the KafkaFeatureFlags are private, so I can't directly change them. Should we make the features public or is there some way to patch the resource so that the correct features will be seen as the broker/channel is reconciled?

Any ideas/input would be appreciated :)

@pierDipi there seem to be 2 main things left to work on before this PR is ready, and I am not sure what to do for either.

I managed to use the broker.Status.Annotations[kafka.TopicAnnotation] to check for if a broker had an existing topic, as we currently set that field in the broker reconcileKind function. However, we don't do this for the channel (v1 or v2) so I am not sure how to check if there is an existing topic for a channel.

Can't we set it on the channel and if it's not there we assume it will use the old pattern?

We should add unit tests to check if the templates are being applied properly for a custom template, but I am not sure how to write these tests as the features of the KafkaFeatureFlags are private, so I can't directly change them. Should we make the features public or is there some way to patch the resource so that the correct features will be seen as the broker/channel is reconciled?

Can't we make public newFeaturesConfigFromMap and a create KafkaFeatureFlags for the test?

Any ideas/input would be appreciated :)

@pierDipi is there any kind of "upgrade" code that gets called when we install a new version of ekb into a cluster? It seems like that may be a good place to add the controller channel kafka topic annotation if it exists

/retest-required

/retest-required

/retest-required

/retest-required

@pierDipi I've addressed your earlier comments and fixed the broken tests. Let me know if there is anything else I should change on this PR!

/retest-required

/retest-required

/retest-required

/retest-required

/retest-required

/retest-required

/retest-required


Add Block Explorer URI templates

Closes #515

Add support for serialising and deserialising Block Explorer URI templates from the config service API

LGTM, I don't remember from the spec if the clients expect tx_hash or txHash, but the latter is compliant with the API naming conventions 👍

It'd be txHash but since this is set in the admin we can change it without breaking the CGW.


Not getting Quick fix options

Issue Type: Bug
I am tring to update my code for a coming change by Microsoft. This change has to do with the WITH Statement being obsoleted. We have several sections of code that utlize this statement. From all the documentation I have seen on this, there should be a quick fix for this. I have not been able to get any quick fix options to show up for my errors.  I don't know if I am missing something or they are in another extension that I don't have.
Extension version: 6.0.344420
VS Code version: Code 1.49.3 (2af051012b66169dde0c4dfae3f5ef48f787ff69, 2020-10-02T17:57:01.595Z)
OS version: Windows_NT x64 10.0.17763

System Info

Item
Value

CPUs
Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz (1 x 2195)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: disabled_offoop_rasterization: disabled_offopengl: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_renderer: disabled_off_okvideo_decode: disabled_softwarevulkan: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
undefined

Memory (System)
16.00GB (13.70GB free)

Process Argv
--crash-reporter-id c6fa4467-e963-4342-87a6-d5de876f9009

Screen Reader
no

VM
0%

You can use this VS Code extension for fixing it:
https://marketplace.visualstudio.com/items?itemName=andrzejzwierzchowski.al-code-outline
Description: https://twitter.com/anzwdev/status/1311783292857995264?s=20

...but unfortunately that extension suffers from these bugs:
https://github.com/microsoft/AL/issues/6190#issuecomment-703746307

I have seen this from "AZ AL Dev Tools" extension, which may be calling the underlying 'official' fixers? - and which also gets this [prepending Rec. to field names where there can be no ambiguity] wrong for other functions like TestField, GetFilter, CalcFields - and, worse, also appends a pointless 2nd record name to variables other than Rec!! e.g. I saw it producing code something like SEPADirectDebitMandate.SetRange(SEPADirectDebitMandate."Mandate ID", ... - gross!

Then use this extension to fix all implicit withs:
https://marketplace.visualstudio.com/items?itemName=davidfeldhoff.al-codeactions
I have used this one, it definitely works very well if you mind the instructions how to use.

I tried the fix implicit in the AL CodeActions extension and it was placing Rec. several times and in the middle of code causing new errors to pop up.  Is there one that handles the explicit with statements though? Some of mine can be long sections of code. This is mainly to do with subscribers or our own posting processes.  I have seen snapshots of a quickfix option to do this, but I am not getting this from base VSC and AL extension. I am hoping to find a solution to this before I have to just past the table variable over and over.

The first extension I mentioned was supposed to also fix explicit withs.

The first one seems to work fine thank you.


Update skafka to 11.4.0

Updates com.evolutiongaming:skafka from 11.2.0 to 11.4.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.evolutiongaming", artifactId = "skafka" } ]

labels: library-update, semver-minor

Superseded by #179.


Data migration to remove courses on Apply which no longer exist on Publish

There are courses still on Apply which have been removed from Publish.
This is causing providers to see relationships on Apply which no longer exist, this came through as a support request: https://trello.com/c/Ee9ZZu3P/34-manage-and-publish-not-syncing
The root cause came from ITT reform when several providers lost their accreditation.
Context

Changes proposed in this pull request

Guidance to review

Link to Trello card

Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated added to the Azure KeyVault

 Bug: User permissions still exist in Manage after Provider partnership have been removed in Publish

 Manage and Publish not syncing

Are there any changes we can make to the Sync job that will handle this issue in the future?

Yes, don't create courses in draft in Apply. And review rollover. And also save state of the course in Apply (currently we just use the withdraw but would be good to know if is a rollover course) Because it is only possible to delete from draft and rollover.
@avinhurry shall we create a card to review the above?

My main concerns here are that we don't normally delete a Course. Have we considered taking a softer approach like using the discard gem?

I did consider going for a softer approach, but that will cascade through out the whole apply to avoid showing the discarded courses.
The whole issue sounds are a deep problem on how Apply syncs with Publish.
We should not be creating draft (or rollover courses which aren't published) in Apply in the first place - but we don't hold the course.state field from API in Apply.
So right now you can create a course in draft or rollover state in Publish (and add an accredited provider) and Apply will sync and create the provider relationship. Then we don't remove the course hence the issue is happening.
It sounds everything tight couple for a soft deletion and it would take a good amount of time to do this change. 😢

Are there any changes we can make to the Sync job that will handle this issue in the future?

Yes, don't create courses in draft in Apply. And review rollover. And also save state of the course in Apply (currently we just use the withdraw but would be good to know if is a rollover course) Because it is only possible to delete a course in Publish from draft and rollover state.
@avinhurry shall we create a card to review the above?

Should these changes be implemented before this deletion is run? Someone might make a change to a course in publish and it would get synced here and we'd need to delete the course again?


Support Windows and MacOS

Closes #32
Changes

Replace bullet by questionary.
Add windows-latest and macos-latest on the CI.
Remove interactive test. I was not able to make it work, and I'll not spend more time on it.

Codecov Report

Merging #36 (b70414c) into master (91c9783) will decrease coverage by 2.63%.
The diff coverage is 66.66%.

@@            Coverage Diff             @@
##           master      #36      +/-   ##
==========================================
- Coverage   86.20%   83.57%   -2.64%
==========================================
  Files           7        7
  Lines         145      140       -5
==========================================
- Hits          125      117       -8
- Misses         20       23       +3

Impacted Files
Coverage Δ

manage_fastapi/helpers.py
63.63% <66.66%> (-18.72%)
:arrow_down:

manage_fastapi/main.py
72.97% <66.66%> (-4.81%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 91c9783...b70414c. Read the comment docs.

I know @codecov-commenter, and I'm really sorry. :cold_sweat:

@ycd Please check if you're willing to lose that coverage, or if you want to check the issue. :kissing:

Awesome! I thought support for Windows would be more complicated!

%2 coverage loss ?

🙈 😄


Where is the output stream  of the encoder?

In the example:
rv = encoder_->EncodeFrame (&pic, &info);
ASSERT_TRUE (rv == cmResultSuccess);
if (info.eFrameType != videoFrameTypeSkip && cbk != NULL) {
//output bitstream
}
where is //output bistream?

please refer to example code as in codec/console/enc/src/welsenc.cpp for encoding.


add bibtex name process code

Main additions:

processNames which inputs a bibtex name string, allowing TeX diacritics commands (math equations are not allowed), return an array of BibtexName, which contains the first/last name, first/last name without diacritics, and abbreviations of the last name.

Thanks a lot! I'll remove some of the now-obsolete code in String.lean soon when I have a bit of time.

BTW, I took the liberty of adding the copyright header to Name.lean, I hope this is OK.

BTW, I took the liberty of adding the copyright header to Name.lean, I hope this is OK.

Sure.