Distributed database messaging hangs when storage in INTERNAL_ERROR state

OrientDB Version: 3.1.17
When the storage in a distributed database is placed into an internal error state, any subsequent mutation request will cause the message processing in ODistributedDatabaseImpl to hang (i.e. be indefinitely suspended) for processing messages from the sending node.
We have run into at least 2 scenarios that trigger this behaviour:

When a Lucene full text index is corrupted by an unclean server shutdown (storage goes to INTERNAL_ERROR on startup)
When an unexpected exception is thrown during database operations (e.g. an index engine update) that causes the storage to go to INTERNAL_ERROR state.

Actual behavior
The steps required to hang the messaging are:

the 2pc commit is begun in ODatabaseDocumentDistributed#commit2pc
at some point, an unexpected exception is thrown in the storage/indexing, which as a side-effect causes the storage to be set into the INTERNAL_ERROR state
this exception is caught and an installDatabase invocation is scheduled
at some point later ODistributedAbstractPlugin#installDatabase is invoked, and suspends message processing by calling ODistributedDatabaseImpl#suspend
at some point the storage is checked to see if it is in INTERNAL_ERROR state (OAbstractPaginatedStorage#checkErrorState)
the storage is in an error state, and so throws an OStorageException
installDatabase fails to handle the exception, and fails to resume message processing

These steps occur on the first failure, but also subsequent failures (which throw an exception wrapping the original failure).
In my testing, the symptoms of the hang are visible after the second mutation attempt (after the first one failed), but I haven't debugged to see why they don't occur after the first.
On the sending side, the message (and all subsequent messages) fail with timeout errors (e.g. gossip timeouts) and the failed node must be restarted to resolve the issue.
Steps to reproduce
I can reproduce this 100% with an instrumented build that simulates an unexpected exception during a storage operation (e.g. the AlreadyClosedException reported in #9814), controlling activation on one node in the distributed deployment using environment variables.
Expected behavior
There are a variety of ways the primary symptoms could be fixed, but we wanted to discuss with the maintainers before implementing one or the other.
We could simply check if the storage is in an internal error state at the start of any installDatabase call. This would fix the immediate problem, but wouldn't improve the overall situation, and might miss other cases where unexpected exceptions can be thrown during an installDatabase call.
Similarly we can handle OStorageException and resume message handling (similar results to above), or simply resume message handling in a finally, in `installDatabase (more thorough, but it's unclear from the code if that's safe/sensible).
A broader question is whether the storage moving to an INTERNAL_ERROR state should take the entire node offline in a distributed database.

Hi,
A storage going in INTERNAL_ERROR when running on a distributed setup, should trigger a full sync, that is more or less what's happening, and yes the error should be ignored/ skipped during the install phase, the storage should be closed, removed, and replaced by another one coming from another node.
Regards

Hi,
This should be fixed and released in both 3.1.x series and 3.2.x series.
Regards


Examples do not compile

I'm trying your examples standalone, but they won't compile properly. I've tried multiple ones, but they all seem to be unable to find types that should be in the prelude. I used the smallest example below (Mesh2D).
# Cargo.toml
[dependencies]
bevy_lunex  = { version = "0.2", features = ["debug"] }
bevy        = { version = "0.14", default-features = false, features = [
    "bevy_asset",
    "bevy_gilrs",
    "bevy_winit",
    "bevy_core_pipeline",
    "bevy_pbr",
    "bevy_render",
    "bevy_sprite",
    "bevy_text",
    "multi_threaded",
    "png",
    "x11",
]}

// main.rs
use bevy::prelude::*;
use bevy_lunex::prelude::*;

error[E0425]: cannot find value `UiMinimalPlugins` in this scope
   --> src/main.rs:6:39
    |
6   |         .add_plugins((DefaultPlugins, UiMinimalPlugins))
    |                                       ^^^^^^^^^^^^^^^^ help: a unit struct with a similar name exists: `MinimalPlugins`
    |
   ::: /Users/ryan/.cargo/registry/src/index.crates.io-6f17d22bba15001f/bevy_internal-0.14.2/src/default_plugins.rs:199:1
    |
199 | pub struct MinimalPlugins;
    | ------------------------- similarly named unit struct `MinimalPlugins` defined here

error[E0425]: cannot find value `SourceFromCamera` in this scope
  --> src/main.rs:28:9
   |
28 |         SourceFromCamera,
   |         ^^^^^^^^^^^^^^^^ not found in this scope

For more information about this error, try `rustc --explain E0425`.

The examples from git main require git main version of bevy_lunex, which was ahead of crates.io latest release (0.2.3). The book is also tracking git main. This should be fixed now with the latest crates.io release I just published (0.2.4)


[release/1.6] Prepare release notes for v1.6.24

Welcome to the v1.6.24 release of containerd!
The twenty-fourth patch release for containerd 1.6 contains various fixes and updates.
Notable Updates

CRI: fix leaked shim caused by high IO pressure (#9004)
Update to go1.20.8 (#9073)
Update runc to v1.1.9 (#8966)
Backport: add configurable mount options to overlay snapshotter (#8961)
log: cleanups and improvements to decouple more from logrus (#9002)

See the changelog for complete list of changes
Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.
Contributors

Sebastiaan van Stijn
Akihiro Suda
Wei Fu
Akhil Mohan
Derek McGowan
Cardy.Tang
Danny Canter
Kazuyoshi Kato
Mike Brown
Phil Estes
Samuel Karp

Changes
44 commits

cdd59290d Prepare release notes for v1.6.24
[release/1.6 backport] log: cleanups and improvements to decouple more from logrus (#9002)

33c2d88e7 Revert "log: define G() as a function instead of a variable"
0a7f2975e log: swap logrus functions with their equivalent on default logger
9d175a19b log: add package documentation and summary of package's purpose
96fb65529 log: make Fields type a generic map[string]any
bace17e2e log: add log.Entry type
dd127885f log: define OutputFormat type
5b4cf2329 log: define G() as a function instead of a variable
ee1b4a1e2 log: add all log-levels that are accepted
d563a411f log: group "enum" consts and touch-up docs
6e8f4555b log: WithLogger: remove redundant intermediate var
c19325559 log: SetFormat: include returns in switch
c3c22f8cb log: remove gotest.tools dependency

[release/1.6] update to go1.20.8 (#9073)

a2c294800 [release/1.6] update to go1.20.8

[release/1.6 backport] make repositories of install dependencies configurable (#9024)

0da8dcaa7 make repositories of install dependencies configurable

[release/1.6 backport] update Golang to go1.20.7, minimum version go1.19 (#9020)

8e6a9de5b update to go1.20.7, go1.19.12
8b2eb371f Update Go to 1.20.6,1.19.11
cff669c7a update go to go1.20.5, go1.19.10
f34a22de9 update go to go1.20.4, go1.19.9
e8e73065e update go to go1.20.3, go1.19.8
9b3f950d6 Go 1.20.2
17d03ac68 Go 1.20.1
861f65447 go.mod: go 1.19
81fa93784 Stop using math/rand.Read and rand.Seed (deprecated in Go 1.20)
70dc11a6c lint: remove //nolint:dupword that are no longer needed
fec784a06 lint: silence "SA1019: tar.TypeRegA has been deprecated... (staticheck)"
6648df1ad lint: silence "type HostFileConfig is unused (unused)"
e6b268bc7 golangci-lint v1.51.1
c552ccf67 go.mod: golang.org/x/sync v0.1.0

[releases/1.6] *: fix leaked shim caused by high IO pressure (#9004)

d00af5c3e integration: issue7496 case should work for runc.v2 only
583696e4e Vagrantfile: add strace tool
ab21d60d2 pkg/cri/server: add criService as argument when handle exit event
a229883cb pkg/cri/server: fix leaked shim issue
d8f824200 integration: add case to reproduce #7496

[release/1.6] Cherry-pick: [overlay] add configurable mount options to overlay snapshotter (#8961)

8cd40e1d0 Add configurable mount options to overlay
453fa397a feat: make overlay sync removal configurable

[release/1.6 backport] update runc binary to v1.1.9 (#8966)

4cb7764df update runc binary to v1.1.9

Dependency Changes

golang.org/x/sync  036812b2e83c -> v0.1.0

Previous release can be found at v1.6.23

/ok-to-test

/retest


Lighthouse SEO recommendations

Did a quick Lighthouse report and found some low hanging fruit we could probably easily do and could probably be a good first issue here for this repo.

Fixing the image would also help with Lighthouse a11y score as well.

Also, related to images and performance, it would be good to add height / width too.

100% Lighthouse 🤷


HERE IS A UPDATE OF "VALUES-ES" (BLOCKLAUNCHER FREE OR PRO 1.11.4+)

Here is a update of "Values-es" (Blocklauncher Free or PRO 1.11.4+)
Hello! Sorry to be away so long, here's a clean and newly updated Spanish version of your app. Keep it up.
Link: http://www.mediafire.com/download/wn7q5ll3eopyx75/values-es.zip
Regards
PD: Works on beta too, i think...

Thank you so much! Will merge for 1.12.1.

Oh, your welcome! thanks, its much work kamcord strings!
Can you please send me the new string for Desktop UI? for translate too.

    <string name="pref_zz_desktop_gui">Use Desktop GUI</string>
    <string name="pref_zz_desktop_gui_summary">Change inventory and crafting windows to Desktop mode</string>

Thank you so much for your help.

<string name="pref_zz_desktop_gui">Usar GUI de Escritorio</string>     <string name="pref_zz_desktop_gui_summary">Cambia el inventario y la ventana de crafteo al modo de Escritorio</string>
Your welcome!


Fix primary navigation not showing when screen is wide

This theme was not working for me - on big screens like computers, the text was dark on dark mode, and when I hovered over the items the links were still present. I noticed resizing it made my menu items appear. Removed a line specifying opacity on bigger screens.
My settings:
show publication cover: off
color scheme: auto
navigation layout: logo on cover
I'm not sure if doing this will break something else, this quick fix looked okay to me on my blog at https://adventgineering.org/

No longer an issue with 5.4.6, and may be caused by external script. Thank you!


com.groupon.sparklint doesn't exist on central repository

--conf spark.extraListeners=com.groupon.sparklint.SparklintListener --packages com.groupon.sparklint:sparklint:1.0.2 doesn't work since com.groupon.sparklint doesn't exist (yet)

I think it's related to #3

Is there a way around?

Hi @matmichsyx ! Currently you can

Do mvn install on your laptop, add dependency to your spark project, then package a fat jar that includes Sparklint, then submit this jar with --conf spark.extraListeners=com.groupon.sparklint.SparklintListener (Basically the sparklint source code will be bundled in your jar)
Or you can get a taste of it using server mode + event log files per README.

We will solve the sonatype chore ASAP. I've been on vacation for a few days (with limited internet access) thus I got delayed. Probably next Monday or Tuesday I'll complete #3 and let you know.
Thanks for your interest!!

We've got version <IP_ADDRESS> out on maven; version 1.0.4 will be stable, since I found some bug these days in live mode that I'd like to address.

Issue resolved with publication to nexus.


Joi default() not functioning

using mongodb-store, After set Joi default value as below:
......
attributes: {
    time: api.Joi.date().default(Date.now, 'time of creation'),
    age: api.Joi.number().default(18),
......

if omit the time/age when POST,  the database don't have default value specified above.

This is correct, we're only using Joi to pick up validation errors at the moment. It should be fairly simple to take the Joi-adjusted object after passing validation.

I see. and please check the PR #85  above, it's worked here, but don't strictly tested.

Ah amazing! Thanks for the contribution, sorry I didn't see your PR sooner, I've been crazy busy over the last few days.


Is it possible to filter parameters like tokens or passwords?

It would be good to obscure some sensitive information in the logs like passwords or tokens like this:
2018-04-17T15:24:40.321: #cbc52742 Started POST /api/method?username=me&password=[FILTERED] for <IP_ADDRESS>

Is it possible to configure morgan to filter parameters? Thanks!

Yep! Just define your own token (or even re-define the :url token) to do the filtering and return the filtered string 👍

Ok, thank you @dougwilson . I will try to define it in a few days, please do not close this issue for a while

Closing this issue for now as I am not going to work with the logs in the near future


Verbose console print from [sentry-vite-plugin]

Environment
@sentry/vite-plugin 2.16.1
Steps to Reproduce

Set up a new Remix Vite app with vite.config.ts as follows:

export default defineConfig(({ mode }) => {
  return {
    build: {
      sourcemap: true,
    },
    plugins: [
      remix(),
      tsconfigPaths(),
      sentryVitePlugin({
        org: 'org',
        project: 'project',
        authToken: process.env.SENTRY_AUTH_TOKEN,
        sourcemaps: {
          filesToDeleteAfterUpload: ['./build/**/*.js.map'],
        },
        // telemetry: mode === 'production',
        // debug: mode === 'production',
      }),
    ],
  }
})

Now, starting the dev server by npm run dev prints [sentry-vite-plugin] and there's no way to silence it. It even prints duplicates.
[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.

I can actually silence telemetry by enabling the telemetry: mode === 'production'  config as shown above, but there's no way to silence .env.sentry-build-plugin ?
Expected Result
Silence all of those.
$ npm run dev

> dev
> cross-env NODE_ENV=development node --env-file=.env ./server.js

✅ app ready at http://localhost:3000

Actual Result
$ npm run dev

> dev
> cross-env NODE_ENV=development node --env-file=.env ./server.js

[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
✅ app ready at http://localhost:3000

There is a silent option which you might be looking for.

There is a silent option which you might be looking for.

Thanks! It says suppress all logs, which sounds a bit too aggressive. Does that still prints important logs such as errors? If so that's what I was looking for!

So if something throws, it should still be shown as part of the Node.js stack trace, but it will silence all logs, including error log messages.
You could use the errorHandler option to still log in case something errors out.

We do not intend to add some sort of log level option as of now I should add.

Got it. Now my config looks like this. Thanks!
export default defineConfig(({ mode }) => {
  return {
    build: {
      sourcemap: true,
    },
    plugins: [
      remix(),
      tsconfigPaths(),
      sentryVitePlugin({
        org: 'org',
        project: 'project',
        authToken: process.env.SENTRY_AUTH_TOKEN,
        sourcemaps: {
          filesToDeleteAfterUpload: ['./build/**/*.js.map'],
        },
        telemetry: mode === 'production',
        // debug: mode === 'production', // to check if filesToDeleteAfterUpload works as expected
        silent: mode !== 'production',
        errorHandler: (err) => {
          console.warn(err)
        },
      }),
    ],
  }
})

Closing this since I think you solved the problem. Feel free to ping me in case you have any other questions!


[BUG] bring own DEM and water mask error message "_uncropped"

Describe the bug
when bringing own DEM it looks for file*_uncropped.vrt; which does not exist when bringing own DEM.
To Reproduce
Steps to reproduce the behavior:

Download dem from dem.py .e.g ISCE
run ariaExtract.py for a geometry layer using the downloaded dem.

Not only does ariaExtract not find the DEM that is provided by the user, it erases it when it fails.

Good point @EJFielding; this would not be desired. It is likely related to the "uncropped"; which was meant to be the untouched file. We will look into this.

I find a similar bug when I try to specify the mask file to avoid downloading it again.
ariaExtract.py -f S1-GUNW-D-R-131-tops-20201030_20201024-160721-38516N_36802N-RR-d813-v2_0_3.nc -l all -m mask/watermask.msk.vrt
***Extract Product Function:***
All (1) GUNW products meet spatial bbox criteria.
Group GUNW products into spatiotemporally continuous interferograms.
All (1) interferograms are spatially continuous.
All layers are to be extracted, pass all keys.
Thread count specified for gdal multiprocessing = 2
Traceback (most recent call last):
  File "/Users/fielding/anaconda3/envs/ARIA-tools/lib/python3.8/site-packages/ARIAtools/mask_util.py", line 111, in prep_mask
    gdal.Warp(maskfilename, os.path.join(workdir,os.path.basename(maskfilename).split('.')[0]+'_uncropped.msk.vrt'), options=gdal.WarpOptions(format=outputFormat, cutlineDSName=prods_TOTbbox, outputBounds=bounds, width=arrshape[1], height=arrshape[0], multithread=True, options=['NUM_THREADS=%s'%(num_threads)]))
  File "/Users/fielding/anaconda3/envs/ARIA-tools/lib/python3.8/site-packages/osgeo/gdal.py", line 613, in Warp
    srcDSTab = [Open(srcDSOrSrcDSTab)]
  File "/Users/fielding/anaconda3/envs/ARIA-tools/lib/python3.8/site-packages/osgeo/gdal.py", line 3308, in Open
    return _gdal.Open(*args)
RuntimeError: ./mask/watermask_uncropped.msk.vrt: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/fielding/anaconda3/envs/ARIA-tools/bin/ariaExtract.py", line 16, in <module>
    main(inps)
  File "/Users/fielding/anaconda3/envs/ARIA-tools/lib/python3.8/site-packages/ARIAtools/extractProduct.py", line 897, in main
    inps.mask = prep_mask([[item for sublist in [list(set(d['amplitude'])) for d in standardproduct_info.products[1] if 'amplitude' in d] for item in sublist], [item for sublist in [list(set(d['pair_name'])) for d in standardproduct_info.products[1] if 'pair_name' in d] for item in sublist]], inps.mask, standardproduct_info.bbox_file, prods_TOTbbox, proj, amp_thresh=inps.amp_thresh, arrshape=arrshape, workdir=inps.workdir, outputFormat=inps.outputFormat, num_threads=inps.num_threads)
  File "/Users/fielding/anaconda3/envs/ARIA-tools/lib/python3.8/site-packages/ARIAtools/mask_util.py", line 129, in prep_mask
    raise Exception('Failed to open user mask')
Exception: Failed to open user mask

fixed per #239

Thanks for the help to fix this @bbuzz31 and @dbekaert .


Compilation Error on "Defined Pure Virtual Functions" example.

For the following code snippet:
class base
{
public:
    base() {}
    virtual ~base() = 0 {}; // pure virtual, and defined!
};

class derived : public base
{
public:
    derived() {}
    ~derived() {}
};

int main()
{
    derived aDerived; // destructor called when it goes out of scope
}

I get the error:
$ g++ test.cpp -o test -Wall -std=c++17
test.cpp:5:21: error: pure-specifier on function-definition
    5 |     virtual ~base() = 0 {}; // pure virtual, and defined!
      |

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

ID: e6bca69d-cd65-193b-f62d-c20c8c69f7ad
Version Independent ID: 1c8b8221-4c4f-93e5-6af6-ca460247a6d4
Content: Abstract classes (C++)
Content Source: docs/cpp/abstract-classes-cpp.md
Product: visual-cpp
Technology: cpp-language
GitHub Login: @corob-msft
Microsoft Alias: corob

@bliepert
True enough. This section needs a Microsoft-specific marker, since it's a Microsoft extension that lets you define a pure virtual function this way. Microsoft, gcc, and Clang compilers all produce a linker error for the sample when the function is pure virtual but not defined. Clang implements, but warns on, the Microsoft extension that allows the definition.

An update should appear within a day.


Move general functionality upstream

While working on #156 and per discussion with @dcherian, I learned that esmlab's codebase is predominantly full of hacks.

I don't know the code that well at all (!) but this stuff looks sane.

I myself have started having a hard time understanding the existing codebase. It's been a while since I looked at esmlab's code base. So, I spent the last four days looking at the existing code base, and my take-away is that esmlab's codebase is full of hacks. And this makes it difficult to debug or even maintain :(
I am personally in favor of helping with pushing most of the general functionality into xarray and only keeping things that are domain-specific. I just found out that there has been recent progress in https://github.com/pydata/xarray/pull/2922, and I am excited about this. Once https://github.com/pydata/xarray/pull/2922 is merged, we can move most if not all existing functionality from https://github.com/NCAR/esmlab/blob/master/esmlab/statistics.py into xarray.
Originally posted by @andersy005 in https://github.com/NCAR/esmlab/pull/156#issuecomment-546997976

Yeah +1 on moving things upstream.
From a quick look, it seems like esmlab basically adds time-aware weighted groupby/resampling; time bounds consistency; and time units/calendargpropagation (https://github.com/pydata/xarray/issues/1614).
For the last one, it would be good to document how much of the table in https://github.com/pydata/xarray/issues/1614 is implemented and what's left.
Originally posted by @dcherian in https://github.com/NCAR/esmlab/pull/156#issuecomment-547004796

@dcherian

From a quick look, it seems like esmlab basically adds time-aware weighted groupby/resampling; time bounds consistency; and time units/calendargpropagation

This is correct.
We are relying on the time bounds for all time-aware operations.

Decoding Time: Internally, esmlab decodes time itself by using the time bounds variable. Xarray doesn't seem to be aware of time-bounds variable when decoding time:

In [1]: import xarray as xr

In [2]: import numpy as np

   ...:     ds['variable_1'] = xr.DataArray(
   ...:         np.append(
   ...:             np.zeros([12, 2, 2], dtype='float32'), np.ones([12, 2, 2], dtype='float32'), axis=0
   ...:         ),
   ...:         dims=['time', 'lat', 'lon'],
   ...:     )
   ...:     ds['variable_2'] = xr.DataArray(
   ...:         np.append(
   ...:             np.ones([12, 2, 2], dtype='float32'), np.zeros([12, 2, 2], dtype='float32'), axis=0
   ...:         ),
   ...:         dims=['time', 'lat', 'lon'],
   ...:     )
   ...:     ds.time.attrs['units'] = 'days since 0001-01-01 00:00:00'
   ...:     ds.time.attrs['calendar'] = 'noleap'
   ...:     ds.time.attrs['bounds'] = 'time_bound'
   ...:     return ds.copy(True)
   ...:

In [4]: ds = create_dataset()

In [5]: ds
Out[5]:
<xarray.Dataset>
Dimensions:     (d2: 2, lat: 2, lon: 2, time: 24)
Coordinates:
  * lat         (lat) int64 0 1
  * lon         (lon) int64 0 1
  * time        (time) float64 31.0 59.0 90.0 120.0 ... 638.0 669.0 699.0 730.0
  * d2          (d2) int64 0 1
Data variables:
    time_bound  (time, d2) float64 0.0 31.0 31.0 59.0 ... 699.0 699.0 730.0
    variable_1  (time, lat, lon) float32 0.0 0.0 0.0 0.0 0.0 ... 1.0 1.0 1.0 1.0
    variable_2  (time, lat, lon) float32 1.0 1.0 1.0 1.0 1.0 ... 0.0 0.0 0.0 0.0

In [6]: xr.decode_cf(ds)
Out[6]:
<xarray.Dataset>
Dimensions:     (d2: 2, lat: 2, lon: 2, time: 24)
Coordinates:
  * lat         (lat) int64 0 1
  * lon         (lon) int64 0 1
  * time        (time) object 0001-02-01 00:00:00 ... 0003-01-01 00:00:00
  * d2          (d2) int64 0 1
Data variables:
    time_bound  (time, d2) object ...
    variable_1  (time, lat, lon) float32 ...
    variable_2  (time, lat, lon) float32 ...

Notice how the time axis is shifted to the right by one month.
Ideally, you would want the time to be:
In [10]: import cftime
In [14]: cftime.num2date(ds.time_bound.mean(dim='d2'), units='days since 0001-01-01 00:00:00', calendar='noleap')
Out[14]:
array([cftime.DatetimeNoLeap(0001-01-16 12:00:00),
       cftime.DatetimeNoLeap(0001-02-15 00:00:00),
       cftime.DatetimeNoLeap(0001-03-16 12:00:00),
       cftime.DatetimeNoLeap(0001-04-16 00:00:00),
       cftime.DatetimeNoLeap(0001-05-16 12:00:00),
       cftime.DatetimeNoLeap(0001-06-16 00:00:00),
       cftime.DatetimeNoLeap(0001-07-16 12:00:00),
       cftime.DatetimeNoLeap(0001-08-16 12:00:00),
       cftime.DatetimeNoLeap(0001-09-16 00:00:00),
       cftime.DatetimeNoLeap(0001-10-16 12:00:00),
       cftime.DatetimeNoLeap(0001-11-16 00:00:00),
       cftime.DatetimeNoLeap(0001-12-16 12:00:00),
       cftime.DatetimeNoLeap(0002-01-16 12:00:00),
       cftime.DatetimeNoLeap(0002-02-15 00:00:00),
       cftime.DatetimeNoLeap(0002-03-16 12:00:00),
       cftime.DatetimeNoLeap(0002-04-16 00:00:00),
       cftime.DatetimeNoLeap(0002-05-16 12:00:00),
       cftime.DatetimeNoLeap(0002-06-16 00:00:00),
       cftime.DatetimeNoLeap(0002-07-16 12:00:00),
       cftime.DatetimeNoLeap(0002-08-16 12:00:00),
       cftime.DatetimeNoLeap(0002-09-16 00:00:00),
       cftime.DatetimeNoLeap(0002-10-16 12:00:00),
       cftime.DatetimeNoLeap(0002-11-16 00:00:00),
       cftime.DatetimeNoLeap(0002-12-16 12:00:00)], dtype=object)

Is this something that is reasonable to implement in xarray or is too domain-specific?

Wrong results when applying ops such as resample() on the time axis. Because of the way xarray decodes the time, the user ends up getting wrong results when they try to do some operations along the time axis:

For instance, when applying annual resampling on the above dataset, we end up getting three years instead of two years:

In [19]: ds.resample(time='A').mean()
Out[19]:
<xarray.Dataset>
Dimensions:     (d2: 2, lat: 2, lon: 2, time: 3)
Coordinates:
  * time        (time) object 0001-12-31 00:00:00 ... 0003-12-31 00:00:00
  * lat         (lat) int64 0 1
  * d2          (d2) int64 0 1
  * lon         (lon) int64 0 1
Data variables:
    variable_1  (time, lat, lon) float32 0.0 0.0 0.0 0.0 ... 1.0 1.0 1.0 1.0
    variable_2  (time, lat, lon) float32 1.0 1.0 1.0 1.0 ... 0.0 0.0 0.0 0.0

xarray  discards the time_bounds variable. As a user, I would expect xarray to keep the time_bounds variable, and generate new values for it accordingly. For instance:

In [26]: esmlab.resample(create_dataset(), freq='ann')
Out[26]:
<xarray.Dataset>
Dimensions:     (d2: 2, lat: 2, lon: 2, time: 2)
Coordinates:
  * lat         (lat) int64 0 1
  * lon         (lon) int64 0 1
  * time        (time) float64 181.7 546.7
  * d2          (d2) int64 0 1
Data variables:
    time_bound  (d2, time) float64 0.0 365.0 365.0 730.0
    variable_1  (time, lat, lon) float64 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
    variable_2  (time, lat, lon) float64 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0

Is it reasonable to have this in xarray or is domain specific (i.e. should we handle this in esmlab?) ?

xarray discards the time_bounds variable. As a user, I would expect xarray to keep the time_bounds variable, and generate new values for it accordingly.

https://github.com/NCAR/esmlab/issues/142 proposes a method to generate the new time-coordinate.

Is this something that is reasonable to implement in xarray or is too domain-specific?

It is inconvenient but I don't think its wrong. The file is intentionally saved with time at the end of the month. Why wasn't it saved with the midpoint of time bounds in the first place? In any case, this won't fly (https://github.com/pydata/xarray/issues/2231#issuecomment-397167282). xarray basically does not deal with relationships between variables and that is unlikely to change. Our only exception (I think) is making sure bounds variables are encoded and decoded with the same units as the grid variable.

As above.

This looks like a bug to me. As a data variable, time_bounds should not be getting dropped. (coordinate variables get dropped https://github.com/pydata/xarray/issues/2944 but I think that should change). Your code is incomplete (missing def create_dataset...). can you update that; i'll take a look.

Some of this might get solved eventually (https://github.com/pydata/xarray/issues/1475) when xarray adds more fancy indexes but that's a longer term project.
I should be clear: esmlab adds very useful capabilities and a package like it is definitely required. It's just that general things like machinery for weighted operations should be moved upstream.

Your code is incomplete (missing def create_dataset...). can you update that; i'll take a look.

My bad. I partially pasted the code. Here's the complete version:
import xarray as xr
import numpy as np
def create_dataset():
    start_date = np.array([0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], dtype=np.float64)
    start_date = np.append(start_date, start_date + 365)
    end_date = np.array([31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365], dtype=np.float64)
    end_date = np.append(end_date, end_date + 365)
    ds = xr.Dataset(coords={'time': 24, 'lat': 2, 'lon': 2, 'd2': 2})
    ds['time'] = xr.DataArray(end_date, dims='time')
    ds['lat'] = xr.DataArray([0, 1], dims='lat')
    ds['lon'] = xr.DataArray([0, 1], dims='lon')
    ds['d2'] = xr.DataArray([0, 1], dims='d2')
    ds['time_bound'] = xr.DataArray(
        np.array([start_date, end_date]).transpose(), dims=['time', 'd2']
    )
    ds['variable_1'] = xr.DataArray(
        np.append(
            np.zeros([12, 2, 2], dtype='float32'), np.ones([12, 2, 2], dtype='float32'), axis=0
        ),
        dims=['time', 'lat', 'lon'],
    )
    ds['variable_2'] = xr.DataArray(
        np.append(
            np.ones([12, 2, 2], dtype='float32'), np.zeros([12, 2, 2], dtype='float32'), axis=0
        ),
        dims=['time', 'lat', 'lon'],
    )
    ds.time.encoding['units'] = 'days since 0001-01-01 00:00:00'
    ds.time.encoding['calendar'] = 'noleap'
    ds.time.encoding['bounds'] = 'time_bound'
    return ds

Why wasn't it saved with the midpoint of time bounds in the first place?

I agree with you. This is a CESM issue and not a general issue, and it makes more sense to address it at the source.

Or we could just have a separate minimal package to handle the strange behaviors/inconsistencies of CESM output that are problematic when using xarray.

https://github.com/pydata/xarray/pull/2922 could use some testing if someone's got the time

@dcherian, I took pydata/xarray#2922 for a test drive. From the results I am getting, it looks good to me:


[Bug]: Can't install 1.9.0

Version
1.9.0
Node version
1.0
Operating System type
Other
Operating system version
1.0
Describe the bug
In Home Assistant, when I'm trying to update the eufy-security-ws add-on from version 1.8.0-2 to 1.9.0 I get an error:
Failed to perform the action update/install. Error updating eufy-security-ws: Can't install bropat/hassio-eufy-security-ws-armv7:1.9.0: 404 Client Error for http+docker://localhost/v1.45/images/create?tag=1.9.0&fromImage=bropat%2Fhassio-eufy-security-ws-armv7&platform=linux%2Farm%2Fv7: Not Found ("manifest for bropat/hassio-eufy-security-ws-armv7:1.9.0 not found: manifest unknown: manifest unknown")
PS. Versions from Home Assistants About dialog:
Core 2024.8.3
Supervisor 2024.08.0
Operating System 13.1
To reproduce
In Home Assistant,

Go to Settings, System, Updates, click eufy-security-ws Update and then Install.
See error

Screenshots & Logfiles

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:241
integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 10:19:14 (5 occurrences)
Last logged: 10:29:04

[2413169008] Unexpected exception
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/hassio/update.py", line 168, in async_install
    await async_update_addon(self.hass, slug=self._addon_slug, backup=backup)
  File "/usr/src/homeassistant/homeassistant/components/hassio/handler.py", line 57, in _wrapper
    data = await funct(*argv, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/hassio/handler.py", line 134, in async_update_addon
    return await hassio.send_command(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/hassio/handler.py", line 599, in send_command
    raise HassioAPIError(error.get(ATTR_MESSAGE))
homeassistant.components.hassio.handler.HassioAPIError: Can't install bropat/hassio-eufy-security-ws-armv7:1.9.0: 404 Client Error for http+docker://localhost/v1.45/images/create?tag=1.9.0&fromImage=bropat%2Fhassio-eufy-security-ws-armv7&platform=linux%2Farm%2Fv7: Not Found ("manifest for bropat/hassio-eufy-security-ws-armv7:1.9.0 not found: manifest unknown: manifest unknown")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 241, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2763, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2806, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 999, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1071, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/update/__init__.py", line 154, in async_install
    await entity.async_install_with_progress(version, backup)
  File "/usr/src/homeassistant/homeassistant/components/update/__init__.py", line 458, in async_install_with_progress
    await self.async_install(version, backup)
  File "/usr/src/homeassistant/homeassistant/components/hassio/update.py", line 170, in async_install
    raise HomeAssistantError(f"Error updating {self.title}: {err}") from err
homeassistant.exceptions.HomeAssistantError: Error updating eufy-security-ws: Can't install bropat/hassio-eufy-security-ws-armv7:1.9.0: 404 Client Error for http+docker://localhost/v1.45/images/create?tag=1.9.0&fromImage=bropat%2Fhassio-eufy-security-ws-armv7&platform=linux%2Farm%2Fv7: Not Found ("manifest for bropat/hassio-eufy-security-ws-armv7:1.9.0 not found: manifest unknown: manifest unknown")

Additional context
No response

Odroid XU4 + hassio latest
Failed to perform the action update/install. Error updating eufy-security-ws: Can't install bropat/hassio-eufy-security-ws-armv7:1.9.0: 404 Client Error for http+docker://localhost/v1.45/images/create?tag=1.9.0&fromImage=bropat%2Fhassio-eufy-security-ws-armv7&platform=linux%2Farm%2Fv7: Not Found ("manifest for bropat/hassio-eufy-security-ws-armv7:1.9.0 not found: manifest unknown: manifest unknown")

Same issue for me. Running on HASS OS 13.1, Core 2024.8.3, RPi4

Same issue for me.

Here is the same issue with latest HAOS 13.1 and Core 2024.8.3 on Proxmox.

Publish to docker.hub did not happen for armv7 apparently.
https://hub.docker.com/r/bropat/hassio-eufy-security-ws-armv7
The latest release is 6 months old.
Publish action might have failed.

After system restart i can install the update 1.9.0

When creating the container images for armhf and on armv7, there has been a problem for some time that causes the build process to hang and, as in this case, to be interrupted by GitHub Actions after 6 hours:
https://github.com/bropat/hassio-eufy-security-ws/actions/runs/10581969120
There are numerous issues about this problem, some possible workarounds but no definitive solution:

Docker build with GitHub Actions failed on multi arch with node:alpine
NPM install stucks with node:20
docker buildx hang on node:22-alpine (armv6/armv7)
Docker build hangs for linux/arm/v7

I have a possible workaround in mind, but I need some time to test everything.

In the meantime, I have solved it manually:

https://hub.docker.com/r/bropat/hassio-eufy-security-ws-armhf
https://hub.docker.com/r/bropat/hassio-eufy-security-ws-armv7

Let me know if it works.

thanks for fixing

It's an issue with QEMU, so we'll wait until it's fixed there:
https://gitlab.com/qemu-project/qemu/-/issues/1729

In the meantime, I have solved it manually:
* https://hub.docker.com/r/bropat/hassio-eufy-security-ws-armhf

* https://hub.docker.com/r/bropat/hassio-eufy-security-ws-armv7

Let me know if it works.

Hi, thanks for the fix!
Could you explain how you managed to build it?
I would like to directly build eufy-security-ws for armv7 since I am not using hassio.


Make crc_storage target idempotent

Now it would cleanup released pvs. Someone can just run make crc_storage to redeploy.

/lgtm


Audio drops after mid-stream buffering (VLC 2.1.2, twitch.tv)

Whenever watching any Twitch stream in VLC 2.1.2, if the stream stops to buffer mid-playback, when it comes back the audio is dropped, while the video continues normally. Ironically Twitch's recent improvements have reduced buffering quite a lot for me which makes this a bit harder to reproduce, but I'll try to manually restrict network bandwidth and get some logs.
Fedora 20 x86_64
livestreamer 1.7.2
VLC version 2.1.2 Rincewind (2.1.2-0-ga4c4876)
RTMPDump v2.4

I am probably getting the same or a related issue while playing normal video files from sshfs. Video freezes for about 10-15 seconds, then resumes but without sound. Seeking in the file helps, but only for about 7-8 minutes.

Confirmed this is an issue with VLC. Using Livestreamer to get the stream URL but passing the URL to VLC directly instead of letting Livestreamer download it, the audio still cuts out.

Confirmed using VLC on Ubuntu 14.04. While playing video from network resource if buffering happens then audio is gone after playback resumes. Haven't found any way to get it back.

I've found stopping and restarting the video gets the sound back.

Seeking also helps.


Add scatter plot combined with axis like boxplot

Axis should be configurable to show a box plot

Some notes from tudor chat

use #default: gtReferences & #hovered: gtReferences for highlighting
add more gtView for objects


Using persistent Envoy and ext_proc server in ext_proc fuzzing test.

Using persistent Envoy and ext_proc server in ext_proc fuzzing test.
Also using persistent downstream/upstream client connection during traffic sending.

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign @adisuissa  @yanavlasov

With Envoy, ext_proc server, downstream client connection, upstream connection all persistent, the ext_proc filter fuzzer exec/s improved about ~50 times.

/wait-any

Good idea! Done

/assign @ikepolinsky @pradeepcrao

/retest

Thanks! I think this should be refactored so that both variants (persistent and non-persistent) will work similarly, and perform the same actions. This will improve the maintainability of this code as changes to what's being fuzzed will be in a single location.

Both variants does work similarly. The only difference is that in non-persistent mode, it sets up and tear down Envoy/test-server during each exec.  In persistent mode, It does that every 5000 exec.  However, for ext_proc filter,  test server and downstream client  operation , they are same.

/wait-any

Thanks, looks better. Seems that most of the code in the persistent and non-persistent variants is duplicated, Can this code be refactored so they won't be duplicated? See the h1_fuzz as an example of initialization based on the PERSISTENT_FUZZ_VAR bazel definition.

Done!

Seems that most of the code in the persistent and non-persistent variants is duplicated, Can this code be refactored so they won't be duplicated? See the h1_fuzz as an example of initialization based on the PERSISTENT_FUZZ_VAR bazel definition.

WDYT?

Seems that most of the code in the persistent and non-persistent variants is duplicated, Can this code be refactored so they won't be duplicated? See the h1_fuzz as an example of initialization based on the PERSISTENT_FUZZ_VAR bazel definition.

WDYT?

I thought the duplication part in the test server function is refactored out in the last commit.  Anything else we can refactor out?

I thought the duplication part in the test server function is refactored out in the last commit. Anything else we can refactor out?

From a high-level look, the code in the persistent and non-persistent look very similar. It would have been better if both used the same code, so any future changes will be applied on both in a single location.
That said, as this is a test-only code, this is not a stringent requirement.
Can you please look at CI.

I did take a look again whether we can share the same code in persistent and non-persistent mode as h1_fuzz.cc. However, since even in persistent mode, we still have to re-initialize Envoy every 2000 execs to clean up the fake upstream memory, I feel we can not use that model.    So what I did is to factor out the driver function as well. And different target just call that driver function with the persistent_mode parameter.  Please take a look if you think this can be further improved.
BTW, we also changed downstream client waitForEndStream() logic. i.e, if in the rare case the response is timeout, then tearDown the whole test. With this , there will be no messages left over in the pipeline before the next fuzz exec.   With that,  we can get rid of the mutex locks.

Waiting for merge conflict to be resolved
/wait

Kind ping!

@snowp  PTAL


Quictransport not work when embed from site use http

Hello,
Quictransport not work in case below.
domain.A: quictransport + statics file
domain.B: https + html site + load resource from domain.A + registed quic trial key.
domain.C: embed iframe to domain.B.
When domain.C use https: resource from domain.A can load via quictransport.
When domain.C use http: resource from domain.A can't load via quictransport.
But when i test with youtube embed withh case domain.C use http.
It work well, youtube can load resource from H3-Q50.
Are my test is wrong or quictransport diffrent quic http3?

I don't know what you mean by "quictransport". This repository contains the code quic-go, and since you're doing H3 I doubt you're referring to go-libp2p-quic-transport.


[bug]: socket fd being reused during OnClose() lead to data corruption

Actions I've taken before I'm here

[X] I've thoroughly read the documentations about this problem but still have no answer.
[X] I've searched the Github Issues/Discussions but didn't find any similar problems that have been solved.
[X] I've searched the internet for this problem but didn't find anything helpful.

Questions with details
我在本地(mac)测试发现，一个gnet.Conn触发OnClose之后，依然可以调用该Conn Write数据，并且没有报错，排查了一下,是因为客户端重启，但是前后两个socket连接的文件描述符是相同的，所以gnet Write写入数据成功了
我看了一下源码，似乎是先释放的fd，再调用的OnClose回调、设置Addr为空等操作

这样会不会出现：
文件描述符被回收了，又立马被新的连接占用了，此时写入正在关闭的这个连接，却write成功，但是数据却写错了目标呢？
Code snippets (optional)
No response

确实可能会有这样的问题，现在把逻辑修改成先调用 OnClose() 再关闭 fd
业务层的逻辑也需要保证 OnClose() 事件之后不能再操作对应的连接。

🤖 Non-English text detected, translating...

It is true that there may be such a problem. Now modify the logic to call OnClose() first and then close fd
The logic of the business layer also needs to ensure that the corresponding connection cannot be operated after the OnClose() event.

这个问题会导致fd一直增长吗？我在生产环境使用的是v2.0.3版本，发现fd会一直增长，最终触发了我们的告警。

🤖 Non-English text detected, translating...

Will this problem cause fd to keep growing? I am using version v2.0.3 in the production environment and found that fd will keep growing, eventually triggering our alarm.

这个问题会导致fd一直增长吗？我在生产环境使用的是v2.0.3版本，发现fd会一直增长，最终触发了我们的告警。

感觉说的不是一个问题，请升级到最新版本确认还有没有问题。

🤖 Non-English text detected, translating...

Will this problem cause fd to keep growing? I am using version v2.0.3 in the production environment and found that fd will keep growing, eventually triggering our alarm.

It doesn't seem to be a problem. Please upgrade to the latest version to check if there are still any problems.


NavigationDelegate for handling links inside chat

We are using the TalksJs-Flutter plugin in our project to do the livechat for customer service.
With the current version of the plugin when tapping a link in the chat the link is opened inside the webview from te plugin. We do not want our links to open inside our app but want to open show a popup telling the customer that they are leaving the app and then open the link in the browser.
We would like to have a navigationDelegate parameter on the ChatBox which passes the NavigationDelegate to the webview for handling links
Example solution:
class ChatBox extends StatefulWidget {
  final Session session;

  final TextDirection? dir;
  final MessageFieldOptions? messageField;
  final bool? showChatHeader;
  final TranslationToggle? showTranslationToggle;
  final String? theme;
  final TranslateConversations? translateConversations;
  final List<String> highlightedWords = const <String>[];
  final MessagePredicate messageFilter;

  final Conversation? conversation;
  final bool? asGuest;

  final SendMessageHandler? onSendMessage;
  final TranslationToggledHandler? onTranslationToggled;
  final LoadingStateHandler? onLoadingStateChanged;
  final Map<String, MessageActionHandler>? onCustomMessageAction;
  final NavigationDelegate? navigationDelegate; // <--- ADD HERE

  const ChatBox({
    Key? key,
    required this.session,
    this.dir,
    this.messageField,
    this.showChatHeader,
    this.showTranslationToggle,
    this.theme,
    this.translateConversations,
    //this.highlightedWords = const <String>[], // Commented out due to bug #1953
    this.messageFilter = const MessagePredicate(),
    this.conversation,
    this.asGuest,
    this.onSendMessage,
    this.onTranslationToggled,
    this.onLoadingStateChanged,
    this.onCustomMessageAction,
    this.navigationDelegate, // <--- ADD HERE
  }) : super(key: key);

  @override
  State<ChatBox> createState() => ChatBoxState();
}

return WebView(
      initialUrl: 'about:blank',
      javascriptMode: JavascriptMode.unrestricted,
      debuggingEnabled: kDebugMode,
      onWebViewCreated: _webViewCreatedCallback,
      onPageFinished: _onPageFinished,
      javascriptChannels: <JavascriptChannel>{
        JavascriptChannel(
            name: 'JSCSendMessage', onMessageReceived: _jscSendMessage),
        JavascriptChannel(
            name: 'JSCTranslationToggled',
            onMessageReceived: _jscTranslationToggled),
        JavascriptChannel(
            name: 'JSCLoadingState', onMessageReceived: _jscLoadingState),
        JavascriptChannel(
            name: 'JSCCustomMessageAction',
            onMessageReceived: _jscCustomMessageAction),
      },
      gestureRecognizers: {
        // We need only the VerticalDragGestureRecognizer in order to be able to scroll through the messages
        Factory(() => VerticalDragGestureRecognizer()),
      },
      navigationDelegate: widget.navigationDelegate, // <--- ADD HERE
    );

Fixed in talkjs_flutter version 0.5.0

@Alexander-Ordina Hey there, my name is Victor. I'm a developer at TalkJS. We are about to release a new version of the SDK which would affect your use of the navigationDelegate. The main catalyst for this release is a switch to a different WebView package.  As part of this switch we have implemented the SDK to always open links in a separate browser instance (#19). This removes the navigationDelegate. The goal of this change is to bring this SDK's behaviour in line with our React Native SDK.
We would like to know if this change is aligned with the intentions you had highlighted initially. We also just wanted to ensure you don't get any surprises once you upgrade to this new version.

We have gone ahead and released version 0.7.0 of the SDK. Should you have an issue with this release feel free to reopen this issue or create a new one.


Added sort by DateTime to the List view of Calendar.

Closes issue #73

LMAO I thought I accidentally took out the else keyword in eventDateComparator(), turns out the linter just changed my code lolol. This should be good for merging tho.

see comments - lgtm so merge in if you want


Importance of importing 'pdfjs-dist/web/pdf_viewer.css'

Hello Sir,
it may be just me, but I guess it should be stated somewhere quite prominently that since commit a2c662e  from July 10, 2023,
import 'pdfjs-dist/web/pdf_viewer.css';

is necessary if any of text-layer or annotation-layer are used; otherwise, the canvas and the layers won't overlay at all.  Or would it be
import<EMAIL_ADDRESS>
? But I can't find that one anywhere except in the updated examples in /docs.
Best regards

That is explained in the documentation website and the css import could be from<EMAIL_ADDRESS>or 'pdfjs-dist/web/pdf_viewer.css' both should works; but you're right, that info should be stated in the README too.

that info should be stated in the README too.

README updated.


Possible to hide the correct answer?

Thank you for this great educational tool!
When I see failing test output like this:
You have not yet reached enlightenment ...
  AssertionError: '-=> FILL ME IN! <=-' != 0

…well, I know the answer is 0, and for the sake of my learning, that value is hard to "un-see." Is there anyway to hide it?

Merely my opinion...
Koans are not about getting the answer right but more about understanding the code and the results we expect the code to produce.
Test Driven Developement (TDD) is about testing if code works as expected by comparing code ouput to a value we know is True (the answer) so I believe removing or hiding the answers would defeat the purpose of using TDD as a way of learning.
The license leaves you free to fork and transform these Koans into a quiz once you reach enlightenment... :)

Yep, pretty much what @denis-roy said. :)
If the test runner was web based I think answer hiding would be a great feature, but for this version of Python Koans I think we're best sticking to our TDD roots.


PublishTime is newer then the actual time for SubscriptionId - Warning

Last week we updated from Azure Industrial IoT 2.8.0 to 2.8.3.
Now we get these Warnings in the log from the publisher module:
[2022-10-07 09:00:22.309 WRN OpcUa] PublishTime 10/07/2022 10:07:07 in publish response is newer than actual time for SubscriptionId XXX.
In the documentation I couldn't find any information about this.
Does the publisher ignore the message or is this just a Warning that there could be something wrong?
If the publisher ignores the message, is it possible to configure the publisher to process the messages regardless of the timestamp?

This warning pops when the clock of the host running the server is out of sync with the clock of the host running the publisher module. With 2.8.3 we enabled the OPC UA Stack's logs in the publisher's log. This is probably the reason these warnings appear only now. Most likely the clocks I mentioned above were out of sync before upgrading as well, just this was not visible.
Anyhow, this warning does not affect the communication nor the subscription cyclic data exchange.

Thanks for the information. Our client will not change the clock from the host of the Plc server. We will just ignore this warning then.


[BUG] When running the example with the synthetic dataset in Session-based Rec with XLNET, I get an error with trainer.evaluate(). I get the expected output in the other cells. The error is  "IndexError: too many indices for tensor of dimension 2"

Bug description

Steps/Code to reproduce bug

An error becomes present when running trainer.evaluate(metric_key_prefix=eval). Everything else is the same as in notebook https://nvidia-merlin.github.io/Transformers4Rec/main/examples/getting-started-session-based/02-session-based-XLNet-with-PyT.html. Everything else has the expected output.

Expected behavior

Normally, after training (which works fine) I should get the eval results.
Environment details

Transformers4Rec version: 0.1.15
Platform: Windows
Python version: 3.7.12
Huggingface Transformers version: 1.0
PyTorch version (GPU?): GPU T4
Tensorflow version (GPU?):

Additional context

dependecies issues. Torchmetrics werent up to date.

@enislalmi I have upgraded Torchmetrics to 0.11.0 but still getting same issue

@ravikant15796 what's your error? what env you are running the examples in? are you using docker image? or?


Write a more robust sampleapp.

App doesn't take API key from arguments.

Fixed in pull request #10.


Fix sass template

Remove curly brace in sass template

Thanks. Pull request is incorporated in v1.0.3


Does this only do Facebook

Hi noticed the DB filling up with FB related (recipes) many gigs worth, but can not see any actual extracted content, only fb links, so question is, is it only scraping FB related pages (which are giving errors

Hi,
Thanks for asking. No, it's not only doing Facebook. However, it uses Facebook's hidden service (https://facebookcorewwwi.onion/) as it's default input URL. You can easily change that using the corresponding CLI parameter described in the readme. Just add " -a inputURL=https://whereeverYouWannaStartCrawlingFrom.onion" when you run OnionCrawler. Another possible solution is to use a list of .onion URLs (parameter " -a inputOnionList=thisIsYourList.txt") or a logfile of the MEMEX tool HSProbe (" -a inputHSProbeLog=thisIsYourHSProbe.log").
I hope this helps. If you have any further questons, do not hesitate to contact me again.
Regards,
Mike


Update app-attach-glossary.md

Adding information on CIM

@stgeorgi : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @stgeorgi - This pull request was opened in the public repo. PMs should work in the private repo, per the Microsoft Docs contributor guide. Would you make this content update in the private repo instead? Thank you! We'll close this PR.

yes, i forgot to update the URL before making the change. Its already in the private. TY and sorry

Thanks @stgeorgi :)


Subscripting doesn't seem to work

I executed:
let array: [JSONSubscriptType] = [ "derp", "blah", "wut" ]
var json: JSON = JSON([:])
print(json)
json[array] = "1.2"
print(json)

The output was:
{

}
{

}

When I follow some breakpoints it looks like subscripting always hits the error
r._error = self._error ?? NSError(domain: ErrorDomain, code: ErrorWrongType, userInfo: [NSLocalizedDescriptionKey: "Dictionary[\"\(key)\"] failure, It is not an dictionary"])

Any ideas?

Any updates here?

I don't think SwiftyJSON is creating nested dictionaries
var json: JSON = [:]
json["a", "b", "c"] = "1.2"
print(json)

Output
{

}

For now, you'd have to do
var json: JSON = [:]
json["a"] = [:]
json["a", "b"] = [:]
json["a", "b", "c"] = "1.2"


rest api doc is incomplete

rest api doc is incomplete, many rest api are not on the swagger page.
is there any plan on refining this? cause it's very important for those who want to do integration with superset.

I think that all the new /api/v1/ API's have a OpenAPI spec. Other API's will eventually be refactored and land on api/v1.
is something is missing on api/v1 or you would like to see improved?

I think that all the new /api/v1/ API's have a OpenAPI spec. Other API's will eventually be refactored and land on api/v1.
is something is missing on api/v1 or you would like to see improved?

hi dpgaspar,
thank you for your reply,  do you mean this /api/v1/_openapi for openApi spec? I think is contains just the same api list as in swagger. If OpenAPI spec can be found in other place, please let me konw.

What @dpgaspar means is that only api's under the /api/v1 route are and will be documented and eventually all api's will migrate under that pattern


Consumers running inside Flink cluster not reported

We have consumers that are running inside Flink cluster, using the FlinkKafkaConsumer . They are not reported at all.
I looked into what is different about them. Apparently, those consumers for some reason do not send their client.id to the Kafka broker (I can see that by using Confluent utilities). It is obviously their problem, and maybe they will fix it in the future.
On the other hand, this should not be a reason for not showing their lags at all; the offsets and lags by consumer group and partition are available.

Hello
I'm having the same issue. None of the flink kafka consumer group lags are being displayed. Is there something I need to do ?

Fixed in 0.6.2


Updated validations.py python script.

Fixed the behavior of validate_user function in validations.py.
Closes: #1
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it! and we'll verify it

On Mar 18, 2021, at 5:49 PM, google-cla[bot] @.***> wrote:
@googlebot I signed it! and we'll verify it


Update changelog preparation script

For #2411

LGTM @tnqn @luolanzone should this PR reference / close #2411?

Added a reference to the issue.

/skip-all


ensuring stdout has a default log level

Coverage remained the same at 65.995% when pulling d1b125ae2b04c151a0703acab38f3f342ab0c3f0 on kevgliss:stdout-default into 75787d20bc3a6a2ba45bb61a9f8bb4d64ad7ce9a on Netflix:master.


Number of Connected Components in a Graph in Java

💥 Proposal
I want to add the code to find the number of connected components in a graph in Java.
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


Romanian / MD translations added

Hello,
I'm a native Romanian and I want to contribute by adding Romanian/Moldova translation to Ambie app :).
Hope it's fine.
Best regards,

this is awesome, I will take a look. thanks!

thank you for the contribution!


Add a date-time utility method and do a few refactors.

-Add a method to format date-time values using the ISO-8601 format "YYYY-MM-DDThh:mm:ssTZD".
-The refactors should help prevent NullPointerException without changing existing code behavior.

Pull Request Test Coverage Report for Build 5713

129 of 158 (81.65%)  changed or added relevant lines in 6 files are covered.
20 unchanged lines in 6 files lost coverage.
Overall coverage increased (+0.2%) to 43.467%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

azkaban-common/src/main/java/azkaban/flow/Flow.java
69
70
98.57%

azkaban-common/src/main/java/azkaban/executor/AbstractExecutorManagerAdapter.java
0
2
0.0%

azkaban-common/src/main/java/azkaban/executor/ExecutableNode.java
39
48
81.25%

azkaban-web-server/src/main/java/azkaban/webapp/servlet/LoginAbstractAzkabanServlet.java
8
25
32.0%

Files with Coverage Reduction
New Missed Lines
%

azkaban-common/src/main/java/azkaban/utils/RestfulApiClient.java
1
85.71%

azkaban-web-server/src/main/java/azkaban/webapp/servlet/LoginAbstractAzkabanServlet.java
1
31.72%

azkaban-common/src/main/java/azkaban/executor/ExecutableNode.java
2
82.01%

azkaban-common/src/main/java/azkaban/jobExecutor/AbstractProcessJob.java
2
52.58%

az-core/src/main/java/azkaban/Constants.java
7
27.27%

azkaban-common/src/main/java/azkaban/executor/ExecutorApiClient.java
7
80.56%

Totals

Change from base Build 5707:
0.2%

Covered Lines:
15000

Relevant Lines:
34509

💛  - Coveralls


create basic advanced search layout

layout the advanced search in bootstrap to better match the other new layouts

#68 will implement the functional components, once that's done this issue will tackle organization and style

I did some work for this. The latest #67 branch or pull into dev and see what I've done.

Awaiting pull #82 to merge layout into dev


AssetManager problem in cloud platform

What steps will reproduce the problem?
Yii2 asset manager specified to any file storage and file serving. There is a small problem with this in a cloud platform.
  server A          server B            server C   ....     server X
     |                 |                   |                   |
     \---------------------------------------------------------/
                                |
                               LB
                                |
                          client browser

Yii2 schema:

client make request
server A
asset managerer copy or symlink files on server A
response
client make new request with asset urls
server B, C (LB select random servers)
not found asset files (onlye copy files server A)

Idea:

It would be nice to have an easy-to-implement solution to not direct file serving.
serving asset contents

from action (read files from direct path, without copy to asset folder)
support CDN PUT or another storage (redis, database)

What is the expected result?
files serving any servers
What do you get instead?
not found asset files (onlye copy files server A)
Additional info
yii2 solution (with my source codes):

asset manager put base directory to databse
asset serving action
get base directory from database
read and serving content from base directory + url path (with file checks and more)

Q
A

Version
2.x

PHP version
-

Operating system
-

I have built this: https://github.com/SAM-IT/yii2-static-assets
Things that are reusable for this use case include:

ReadOnlyAssetManager, a manager that calculates the URL but doesn't do any publishing.
AssetHelper, a helper class that allows you to find asset bundles in your code base and publish them using an asset manager of your choice.

https://github.com/SAM-IT/yii2-static-assets/blob/master/src/helpers/AssetHelper.php#L241
This could be used to publish to a directory on S3 during build.


website is down

It seems that carbondesignsystem.com domain is not working.
Ping to @asudoh.

It seems that carbondesignsystem.com domain is not working.
Ping to @asudoh.

Thanks @Kikobeats for reporting and @abdonrd for the follow-up. Just to share the interim update, the website is back up and running with a new host (GH pages).

Thanks @Kikobeats for reporting and @abdonrd for the follow-up. Just to share the interim update, the website is back up and running with a new host (GH pages).

thanks for that!

thanks for that!


[ibex/dv] add Questa support

my trial to add Mentor QuestaSim support for ibex_core regression
Signed-off-by: Bert Pieters<EMAIL_ADDRESS>

Thanks for the updates @bp-ouhaha. The one remaining question is about qrun: Do you know the difference between that and Questa? Is it a different way of calling it?

Thanks for the updates @bp-ouhaha. The one remaining question is about qrun: Do you know the difference between that and Questa? Is it a different way of calling it?

I don't know, seen the syntax, snapshot word, and in fyle qrun_option.f, it looks cadence-alike.

OK, let's ignore the qrun issue for the moment :-) Looks good, merging.


New placeholder (with PlaceholderAPI)

This placeholder would display the progress bar to move to the next level of the job.

The colors when the progress bar would be configurable.
Exemple:
Progress completed: "§a" | Progress not completed: "§7"
The characters that are displayed would also be configurable.
Exemple:
displayCharacters: "|"

51657e8b9a63e0895ee8eeacc95504d1135eb7ae


Replace deprecated prepend_before_filter and before_filter

Only for Rails 4+

That will break the build for Rails 3.2

Thanks for your Pull Request, but Devise master still supports Rails 3.2 which does not have before_action, so we will stick with before_filter until we make the move to Rails 4/5+ (see #3714).


[BOT PR] to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: ldemailly
Assign the PR to them by writing /assign @ldemailly in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
6ed54b51b86447459c69678e2d9f097ec6b2d44d
link
/test istio-pilot-e2e-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
6ed54b51b86447459c69678e2d9f097ec6b2d44d
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/istio-pilot-e2e.sh
6ed54b51b86447459c69678e2d9f097ec6b2d44d
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e-envoyv2-v1alpha3.sh
6ed54b51b86447459c69678e2d9f097ec6b2d44d
link
/test istio-pilot-e2e-envoyv2-v1alpha3

prow/istio-pilot-e2e.sh
6ed54b51b86447459c69678e2d9f097ec6b2d44d
link
/test istio-pilot-e2e

prow/e2e-bookInfoTests-v1alpha3.sh
6ed54b51b86447459c69678e2d9f097ec6b2d44d
link
/test e2e-bookInfo-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


inacurracies in contains target for drive, drive item and workbook

related to #247
related to https://github.com/microsoft/OpenAPI.NET.OData/issues/327
A few corrections are required:

[ ] drives property on user and group should be contains target false, because there is a drives entity set
[ ] root property on driveItem should be contains target false, because it's a shorthand to .../items/{id}
[ ] analytics property on driveitem should be true, because there's no other way to access it
[ ] listItem property on driveItem and sharedDriveitem should be false, because there it a lists entity set and list items canonical path is on the list
[ ] remove the drive singleton, because it's just a shorthand to /sites/tenant.onmicrosoft.com/drive, and singleton expand all contained targets, which leads to an explosion of paths
[ ] worksheet property on workbooktable, workbookrange, workbooknameditem, workbookchart and workbookpivottable should be false, because they are all back properties to the parent worksheet which already contains them.
[x] remove the workbooks entity set as the service never supported it.
[ ] remove the annotation target microsoft.graph.driveItem/workbook or type Org.OData.Capabilities.V1.NavigationRestrictions

By implementing those changes Darrel and I we able to add all the excel stuff WHILE reducing overall description size:

before changes: 28M
after changes (with the restriction): 24.7M
after all changes: 26M

Uploading the diff file as a backup for my description
MetadataFixes.txt

[ ] children nav property on driveItem should have InsertRestrictions with insertable of true. See create folder API reference.


chore(release): release v3.1.2

/create-merge-commit

/create-merge-commit

/create-merge-commit

/create-merge-commit

/create-merge-commit

/create-merge-commit

/create-merge-commit


add mk6 belt

Fixes #1475. Not ready for merge yet; I'm not sure how to edit or regenerate icons.webp to include the new conveyor icon. Can update PR once I figure out how to add icon.

Screenshot.

Superseded by #1481


[10.x] Launch committing event despite the current transaction level

Currently the TransactionCommitting event is launched only when the top transaction is committed.
If you want to build custom logic around TransactionCommitting event you will encounter the an issue in tests when using RefreshDatabaseTrait. The event will not be triggered because the RefreshDatabase trait encapsulates the logic between a begin transaction and rollback.
I.e.:
These are the events fired by Connection class when using RefreshDatabase trait

beganTransaction
beganTransaction
committed
rollingBack

In my case, I put a listener for TransactionCommitting in order to do some custom logic. In my manual test, my logic works ok, but in my automated tests with RefreshDatabase trait, fails due to the fact that the event is not fired.
With this fix the order of the events will be:

beganTransaction
beganTransaction
committing
committed
rollingBack

Although this does make sense, this would be a breaking change for applications that rely on committing event only being dispatched for top level transaction.

Breaking change.


D'oh! How do I hide the Console?

I've been tinkering with Brackets on and off to see if I want to replace my usual editor with it, and somewhere along the line I think I remember selecting to show the console, but now for the life of me I can't find how to hide it again? I installed the Console+ extension and thought I'd see if I like it better, but now they both show?

Have you tried to double click to the console + icon?

@STaRDoGG Please file extension bugs/questions in the repo for that extension -- this issue list is just for core Brackets issues.
In general though, if you've installed two extensions that do similar things and you've decided you only want one of them, you can just use Extension Manager to uninstall the other one.

@peterflynn Ahhh, sorry. For some reason I was thinking that was part of Brackets itself. Turned out I also had the "Console tools" extension installed as well, which is what that was. I'm overworked! ;)


Modularise MTU discovery

This series is a preparation for loader modularisation, by pulling a little bit of IPsec key setup and MTU into hive, so that the future loader cell can consume it.

/test

/test

/test

/test

👍 WireGuard changes.

CODEOWNERs took that as WG, IPsec and DP in general, though :grin:
Going to pull in @pchaigno for IPsec in that case, I'm under the impression he has patches he wants to get in which may conflict.

/test

/ci-runtime

/ci-external-workloads


etcd: Increate the ETCD pods period seconds

What do these changes do?
I just increased the ETCD pods default livenessProbe.periodSeconds from 2 to 10,
with the previous config
periodSeconds * failureThreshold = 2 * 8 = 16 is a bit small~

Codecov Report

Merging #1213 (e90c7aa) into main (8cdc1b6) will decrease coverage by 3.15%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main    #1213      +/-   ##
==========================================
- Coverage   40.49%   37.34%   -3.16%
==========================================
  Files         368      368
  Lines       19677    19677
==========================================
- Hits         7969     7348     -621
- Misses      11708    12329     +621

Impacted Files
Coverage Δ

...n/graphscope/deploy/kubernetes/resource_builder.py
30.75% <0.00%> (-26.46%)
:arrow_down:

...aphscope/tests/kubernetes/test_resource_builder.py
0.00% <0.00%> (-100.00%)
:arrow_down:

...on/graphscope/tests/kubernetes/test_demo_script.py
0.00% <0.00%> (-80.91%)
:arrow_down:

python/graphscope/deploy/kubernetes/utils.py
12.07% <0.00%> (-57.49%)
:arrow_down:

python/graphscope/deploy/kubernetes/cluster.py
23.73% <0.00%> (-52.53%)
:arrow_down:

...thon/graphscope/tests/kubernetes/test_with_mars.py
0.00% <0.00%> (-44.83%)
:arrow_down:

python/graphscope/interactive/query.py
44.34% <0.00%> (-38.27%)
:arrow_down:

python/graphscope/client/rpc.py
72.72% <0.00%> (-8.27%)
:arrow_down:

python/graphscope/client/session.py
67.41% <0.00%> (-7.54%)
:arrow_down:

... and 5 more

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 8cdc1b6...e90c7aa. Read the comment docs.

What do these changes do?
I just increased the ETCD pods default livenessProbe.periodSeconds from 2 to 10, with the previous config periodSeconds * failureThreshold = 2 * 8 = 16 is a bit small~

@haoxins What scenario the that the value 2*8=16 for liveness probe is not enough? Maybe Startup Probe is better if you want to Protect slow starting containers.

What scenario that the value 2*8=16 for liveness probe is not enough?

Everything is fine with Helm, only meets issues with Argo CD.
I'm not sure the root cause is the livenessProbe, just think this is not a harmful change.

BTW, I made a mistake that look in the wrong way to see livenessProbe as readinessProbe 😂

Both startupProbe and readinessProbe are better solutions for my case.
And it seems that we can add a readinessProbe in the build function?
I'm not sure is there any consideration to set readinessProbe as None explicitly.

I assume that the leader election may take seconds to finish

So, may I add a readinessProbe or startupProbe?
The startupProbe seems has not been used in this codebase.

Everything is fine with Helm, only meets issues with Argo CD.

Yes, It would be great to add a readinessProbe to the etcd pod.

https://github.com/etcd-io/etcd/issues/13340
https://github.com/kubernetes/kubernetes/issues/96886
According to these two issues, I think it's still meaningful to increase the liveness probe period seconds from 2 to 10.

And we could also need to create another TODO issue to change the liveness/readiness from exec cmd to httpGet in the future.

LGTM. Will merge after CI passed.

Name:         gs-etcd-jvkdnx-1
Namespace:    gs-lrqtdc
Priority:     0
Node:         izj6c7dgv8bcwo6wsraqsbz/<IP_ADDRESS>
Start Time:   Mon, 27 Dec 2021 18:42:37 +0800
Labels:       app.kubernetes.io/component=etcd
              app.kubernetes.io/instance=jvkdnx
              app.kubernetes.io/name=graphscope
              app.kubernetes.io/version=0.9.1
              etcd_name=gs-etcd-jvkdnx-1
              etcd_name=gs-etcd-jvkdnx-1
Annotations:  <none>
Status:       Running
IP:           <IP_ADDRESS>
IPs:
  IP:  <IP_ADDRESS>
Containers:
  etcd:
    Container ID:  docker://f4c9ec160579a7dfd65686c5b0acd2160049b9ae0f5eb6ed2feb3c7be68c4fde
    Image:         quay.io/coreos/etcd:v3.4.13
    Image ID:      docker-pullable://quay.io/coreos/etcd@sha256:04833b601fa130512450afa45c4fe484fee1293634f34c7ddc231bd193c74017
    Ports:         57010/TCP, 58498/TCP
    Host Ports:    0/TCP, 0/TCP
    Command:
      etcd
      --name
      gs-etcd-jvkdnx-1
      --max-txn-ops=1024000
      --initial-advertise-peer-urls
      http://gs-etcd-jvkdnx-1:57010
      --advertise-client-urls
      http://gs-etcd-jvkdnx-1:58498
      --data-dir=/var/lib/etcd
      --listen-client-urls=http://<IP_ADDRESS>:58498
      --listen-peer-urls=http://<IP_ADDRESS>:57010
      --initial-cluster
      gs-etcd-jvkdnx-0=http://gs-etcd-jvkdnx-0:57010,gs-etcd-jvkdnx-1=http://gs-etcd-jvkdnx-1:57010,gs-etcd-jvkdnx-2=http://gs-etcd-jvkdnx-2:57010
      --initial-cluster-state
      new
    State:          Running
      Started:      Mon, 27 Dec 2021 18:50:06 +0800
    Last State:     Terminated
      Reason:       Error
      Exit Code:    2
      Started:      Mon, 27 Dec 2021 18:48:36 +0800
      Finished:     Mon, 27 Dec 2021 18:50:06 +0800
    Ready:          False
    Restart Count:  5
    Limits:
      cpu:     4
      memory:  256Mi
    Requests:
      cpu:        200m
      memory:     128Mi
    Liveness:     exec [/bin/sh -ec ETCDCTL_API=3 etcdctl --endpoints=http://[<IP_ADDRESS>]:58498 get foo] delay=10s timeout=15s period=10s #success=1 #failure=8
    Readiness:    exec [/bin/sh -ec ETCDCTL_API=3 etcdctl --endpoints=http://[<IP_ADDRESS>]:58498 get foo] delay=10s timeout=15s period=10s #success=1 #failure=8
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-dnfvm (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-dnfvm:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-dnfvm
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age    From               Message
  ----     ------     ----   ----               -------
  Normal   Scheduled  8m42s  default-scheduler  Successfully assigned gs-lrqtdc/gs-etcd-jvkdnx-1 to izj6c7dgv8bcwo6wsraqsbz
  Warning  Unhealthy  8m23s  kubelet            Liveness probe failed: {"level":"warn","ts":"2021-12-27T10:42:56.575Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-784ca83d-ecb3-4dd2-a93d-71fc7b7461bb/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  8m16s  kubelet  Readiness probe failed: {"level":"warn","ts":"2021-12-27T10:43:03.087Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-b5a63f46-9daf-4a52-bb10-876e37213df0/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  8m13s  kubelet  Liveness probe failed: {"level":"warn","ts":"2021-12-27T10:43:06.571Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-07be7f04-31f5-4df0-a362-f9965c97bad9/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  8m6s  kubelet  Readiness probe failed: {"level":"warn","ts":"2021-12-27T10:43:13.091Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-2eae454a-ec29-4ca1-b58e-1ffbbd0043cb/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  8m3s  kubelet  Liveness probe failed: {"level":"warn","ts":"2021-12-27T10:43:16.579Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-33f0b21e-c190-4dca-b1a8-93fb213b3cb7/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  7m56s  kubelet  Readiness probe failed: {"level":"warn","ts":"2021-12-27T10:43:23.083Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-56e3ba05-d0d7-484a-83a5-47c2e26e9235/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  7m53s  kubelet  Liveness probe failed: {"level":"warn","ts":"2021-12-27T10:43:26.563Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-b36354b4-61a1-47bb-8341-4ffdcc6f7976/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  7m46s  kubelet  Readiness probe failed: {"level":"warn","ts":"2021-12-27T10:43:33.086Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-cc18f572-aa66-490c-bd8f-3b301565e8a5/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Warning  Unhealthy  7m43s  kubelet  Liveness probe failed: {"level":"warn","ts":"2021-12-27T10:43:36.583Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-927c340f-6b81-499a-8e9f-d05b2d1562a7/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded
  Normal   Pulled     7m13s (x2 over 8m40s)   kubelet  Container image "quay.io/coreos/etcd:v3.4.13" already present on machine
  Normal   Started    7m13s (x2 over 8m40s)   kubelet  Started container etcd
  Normal   Created    7m13s (x2 over 8m40s)   kubelet  Created container etcd
  Normal   Killing    7m13s                   kubelet  Container etcd failed liveness probe, will be restarted
  Warning  Unhealthy  3m36s (x43 over 7m36s)  kubelet  (combined from similar events): Readiness probe failed: {"level":"warn","ts":"2021-12-27T10:47:43.083Z","caller":"clientv3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"endpoint://client-9d388712-60aa-4456-bebd-ea04a041f392/[<IP_ADDRESS>]:58498","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = context deadline exceeded"}
Error: context deadline exceeded

@haoxins CI failed when running etcd-cluster of 3 pods in GraphScope. The reason for failure is that the pod status should only be marked as Ready when etcd cluster have elected the etcd-Leader and ready to accept client traffic. Which dead lock with our readiess probe.

PR updated, and not sure the still failed test (engine launch timeout) is caused by this change?

Hi @haoxins could you rebase this PR again the main branch to pass the CI?
Thanks!

Hi @haoxins could you rebase this PR again the main branch to pass the CI?
Thanks!

done

Merged. Thank you @haoxins !


Request for Example Complete Notebook - YOLO v8 CAM

Hello,
I'm conducting research on Explainable AI using YOLO v8 with a custom dataset and encountered some uncertainties in the documentation. My queries are:

What should be specified in the "model" parameter?
What is the appropriate input for the "target_layers" attribute?

A detailed example or a notebook demonstrating end-to-end implementation on a sample dataset would be greatly beneficial, especially for beginners like me😬. This could really jazz up the repo!
Best,
Snehit Vaddi

@rigvedrs I am still waiting for a response on this. Would greatly appreciate if you could reply something.


prefer-immutable-types: upgrade from v5 to v6 introduces an infinite recursion issue

Bug Report
Hi, me again with another recursion issue :P
export type ReadonlyURLSearchParams = Readonly<
  OmitStrict<URLSearchParams, "append" | "delete" | "set" | "sort" | "forEach">
>;

// explosion here
export const readonlyURLSearchParams = (
  // eslint-disable-next-line functional/prefer-immutable-types
  init?:
    | readonly (readonly string[])[]
    // eslint-disable-next-line functional/prefer-readonly-type
    | string[][]
    | Record<string, string>
    | string
    | URLSearchParams
    | ReadonlyURLSearchParams,
): ReadonlyURLSearchParams =>
  new URLSearchParams(
    // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, functional/prefer-readonly-type
    init as string[][] | Record<string, string> | string | URLSearchParams,
  );

export type ReadonlyURL = Readonly<OmitStrict<URL, "searchParams">> & {
  readonly searchParams: ReadonlyURLSearchParams;
};

Expected behavior
Linting terminates.
Actual behavior
Stack overflow:
❯ yarn lint
yarn run v1.22.19
$ eslint src --ext .ts,.tsx --report-unused-disable-directives

Oops! Something went wrong! :(

ESLint: 8.48.0

RangeError: Maximum call stack size exceeded
Occurred while linting /Users/danielnixon/dev/agile-digital/readonly-types/src/index.ts:329
Rule: "functional/prefer-immutable-types"
    at /Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:245:51
    at Array.map (<anonymous>)
    at typeArgumentsToString (/Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:245:47)
    at TypeName.getNameWithArguments (/Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:171:54)
    at /Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:253:26
    at Array.map (<anonymous>)
    at typeArgumentsToString (/Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:245:47)
    at TypeName.getNameWithArguments (/Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:171:54)
    at /Users/danielnixon/dev/agile-digital/readonly-types/node_modules/eslint-plugin-functional/node_modules/is-immutable-type/dist/index.cjs:253:26
    at Array.map (<anonymous>)
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Steps to reproduce
See example code above.
Proposed changes

Remove this to reproduce: https://github.com/agiledigital/readonly-types/blob/master/.eslintrc.js#L18

Version 6.0.0 somehow doesn't like this nested array signature type[][]. Mine also got into infinite recursion after encountering this sort of type.

Should hopefully now be fixed.
#767


Fix color capitalization

fg('light_pink_3') and fg('light_goldenrod_3') are broken.

Thank you very much!


Please update to v4.0.1

I'm using ng-lodash on my project so I can use lodash "the Angular way". But I really needed some new features of lodash v4.0.1 version. Could you please update it?

@Skyback there seems to be an issue from what I can see with lodash-cli which this project uses in order to generate the lodash files. I have raised an issue and will try and get this sorted ASAP

Thank you very much!

@Skyback No problem at all it has been on my "To Do" list, it looks like it was a simple thing of not updated docs for lodash-cli see release > https://github.com/rockabox/ng-lodash/releases/tag/0.4.0 Cheers :+1:


FIX: check limits on SoftPositioner

Closes #594

Codecov Report

Merging #649 into master will decrease coverage by 48.57%.
The diff coverage is 36.36%.

@@            Coverage Diff             @@
##           master    #649       +/-   ##
==========================================
- Coverage   87.97%   39.4%   -48.58%
==========================================
  Files          55      55
  Lines        8499    8517       +18
==========================================
- Hits         7477    3356     -4121
- Misses       1022    5161     +4139

Impacted Files
Coverage Δ

ophyd/sim.py
50.87% <0%> (-26.49%)
:arrow_down:

ophyd/tests/test_positioner.py
17.64% <33.33%> (-82.36%)
:arrow_down:

ophyd/positioner.py
56.55% <60%> (-38.45%)
:arrow_down:

ophyd/tests/fake_motor_ioc.py
0% <0%> (-100%)
:arrow_down:

ophyd/tests/test_sim.py
0.54% <0%> (-99.46%)
:arrow_down:

ophyd/tests/test_hints.py
5.71% <0%> (-94.29%)
:arrow_down:

ophyd/tests/test_kind.py
7.93% <0%> (-92.07%)
:arrow_down:

ophyd/tests/test_pvpositioner.py
9.6% <0%> (-89.27%)
:arrow_down:

ophyd/tests/test_status.py
11.11% <0%> (-88.89%)
:arrow_down:

ophyd/tests/test_device.py
11.56% <0%> (-87.29%)
:arrow_down:

... and 38 more

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 4012851...ed0b644. Read the comment docs.


Add support for Trinamic drivers

Maybe add support for StallGuard4 and StealthChop2 via the TMC2209. It should be relatively easy since you already use the standard driver modules used in 3d printers.
If you don’t need stall detection the TMC2208 should even be a drop in replacement for the A4988 (in legacy mode at least as far as I know).

Pretty cool, nice idea. I've been interested on experimenting with the TMC2209 for sometime.
By quickly looking in the datasheet, it seems that an UART port is needed to fully configure it, so maybe we can implement it with the next version.
Didn't know, but there is a way to use a sensorless homing, but unfortunately it is not compatible with the E-TKT. It needs a physical stop to detect home.

Maybe even consider doing away with the stepstick boards and solder a TMC2209-LA (or two) to the board.
If you don’t need stall detection the TMC2208 should be a drop in replacement for the A4988 (in legacy mode at least as far as I know). On the 2208 the UART is used for advanced stuff like full 256 microstep control and hybrid switching betwean stealthchop and spreadcycle mode. But you don't need it if you only need stealthchop and max. 16 microsteps you can get away without the UART.

I tried swapping in a TMC2208, it is indeed a drop-in replacement for the A4988.  It seems to work the same, except I had to reverse the stepper direction in the firmware.  For anyone else doing it id recommend getting one preconfigured to disable UART mode, since its really difficult to move the config SMD resistor without a microscope, especially if the pin headers are already soldered.
The biggest difference is that the motor is nearly silent when moving (except for plastic rubbing on plastic) and the motor whine when holding position is gone.  I rather like it.


[Divider] Inconsistent height on scaled screen

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When displaying divider in browser tab that is scaled (on small 14" laptops for example), the horizontal lines have inconsistent height.

Expected Behavior 🤔
Dividers with the same heights, feel and look :)

I have just changed two .MuiDivider-root CSS properties:
.MuiDivider-root {
-  height: 1px;
+  height: 0px;
...
-  background-color: rgba(0, 0, 0, 0.12);
+  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

Steps to Reproduce 🕹

open https://codesandbox.io/s/competent-murdock-vbm7m
try to zoom in about 120-140%. You probably can't see this issue if you haven't appropriate hardware setup, so take a look at the first screenshot above.

Your Environment 🌎

Tech
Version

Material-UI
v4.8.0

React
16.12.0

Browser
Firefox 71.0

OS
Manjaro Linux

Duplicate of #14815


Move credentials out of index.php

Resolves #26
Currently, the credentials are in the same format in credentials.php inside a PHP tag, but this could be moved outside the webroot in the future.

Maybe also add .gitignore to not accidentally upload credentials.php.


Migrate WCF Services - Not Found

From How It Works:
"After compiling and running the automation template, load up any WCF solution and add a new gRPC project to the solution. Right click on the gRPC project from the solution explorer and select Migrate WCF Services."
I was able to compile the "WCF-To-gRPC" solution - but only after removing this from the "WcfToGrpcCommands.csproj" project file:
<Target Name="AfterBuild">
  <Exec Command=""$(DevEnvDir)PublicAssemblies\CodeFactory\Packager\cfxpackager.exe" "$(TargetPath)"" />
  <!-- <PackageCfx Assembly="$(TargetPath)"/>-->
</Target>

Sadly, while the "WCF-To-gRPC" solution compiles now (and launches a new VS IDE instance), I do not see a "Migrate WCF Services" context menu item after adding a new "ASP.NET Core gRPC Service" to my existing WCF solution (loaded in the new VS IDE instance).
What am I missing?
Any help would be appreciated. Thanks!

Hi George, The runtime was updated since this automation was released. Will let you know as soon as we have it updated to run on the current CF runtime. Thanks for the note. CC: @sgiffinlcd

Thanks Bill, but please correct me if I am mistaken. The real issue is that a dependency (ie "the runtime") was never actually included in this repo, right? And that dependency (ie. the particular version) is no longer available, is that correct?
Do you have any sense for when this tool might be rendered usable? I was hoping to make some progress with it over the coming week.

Correct, the current CF run time is not compatible with that particular automation command.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: George Schiro @.>
Sent: Saturday, October 14, 2023 8:32:27 AM
To: CodeFactoryLLC/WCF-To-gRPC @.>
Cc: Bill Fencken @.>; Comment @.>
Subject: Re: [CodeFactoryLLC/WCF-To-gRPC] Migrate WCF Services - Not Found (Issue #6)
Thanks Bill, but please correct me if I am mistaken. The real issue is that a dependency (ie "the runtime") was never actually included in this repo, right? And that dependency (ie. the particular version) is no longer available, is that correct?
Do you have any sense for when this tool might be rendered usable? I was hoping to make some progress with it over the coming week.
—
Reply to this email directly, view it on GitHubhttps://github.com/CodeFactoryLLC/WCF-To-gRPC/issues/6#issuecomment-1762972475, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AM5C24ZCDLXLL3QKZWZMRVTX7KWAXAVCNFSM6AAAAAA57WVTJ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRSHE3TENBXGU.
You are receiving this because you commented.Message ID: @.***>

So I have no hope of using this tool anytime soon. Does that pretty much sum up the situation Bill?

In hindsight, we should probably flag some of these older automation packages to indicate which version of the code factory runtime they are/were compatible with. We're going to archive this one for now and hopefully we can get a refreshed version of it pushed out within the next month or so.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: George Schiro @.>
Sent: Saturday, October 14, 2023 8:41:17 AM
To: CodeFactoryLLC/WCF-To-gRPC @.>
Cc: Bill Fencken @.>; Comment @.>
Subject: Re: [CodeFactoryLLC/WCF-To-gRPC] Migrate WCF Services - Not Found (Issue #6)
So I have no hope of using this tool anytime soon. Does that pretty much sum up the situation Bill?
—
Reply to this email directly, view it on GitHubhttps://github.com/CodeFactoryLLC/WCF-To-gRPC/issues/6#issuecomment-1762991029, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AM5C245VI3NZXVQI3PN6WZ3X7KXB3AVCNFSM6AAAAAA57WVTJ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRSHE4TCMBSHE.
You are receiving this because you commented.Message ID: @.***>

That sounds like a good idea Bill.
It's also a good idea to publish repositories that include all dependencies and which are also actually usable and productive to folks spending their limited time and attention on them. Just sayin'. ;o)