R crashes randomly when Prophet models are built in a loop for more than 100 iterations

I am trying to carry out forecasting for multiple segments. But R(3.3.2) randomly crashes after around 70+ iterations. I don't think this is a RAM issue as R sometimes crashed even after 10 iterations and sometimes is can run the entire 1000+ loops. Its not input data issue as the model is built when built individually. Please help!
The code used is attached for reference.
Prophet in loop.txt

I may have similar problem. I'm using R version 3.3.1 (2016-06-21) -- "Bug in Your Hair" on Ubuntu 16.04. Installation went OK but R crashes everytime function prophet() is called.
Code used (example from documentation):
sample.txt

We've gotten this report a couple of times and it's going to require a little bit of digging.  Apologies for the inconvenience.

I just ran into this issue, too. Looks like the problem is somewhere within predict.prophet(). Looping over the M3 data always breaks at the predict stage, not the call to prophet()
example.txt

I'm experiencing the same issue on a Windows 7 machine, with R 3.3.3.

Experiencing the same issue on Windows 10 with R 3.3.3

Spent several hours on this yesterday.  I have some updates.  It's definitely happening in predict and likely happening in predict_uncertainty and goes away if you use a smaller number for uncertainty.samples.   I'm going to try GDB as proposed here in order to make some more progress.

@seanjtaylor Thanks a lot for your work on this. I reduced the uncertainty.samples to very low and re-ran but still, the session gets aborted after some random interval. Is there any certain range of numbers for the argument that does not cause R to crash? Thanks again!

Here at SUPERCRUNCH by GfK, we have also experienced that prophet crashes non-deterministically after it has been called a number of times. For example, the following loop, repeatedly analyzing a synthetic dataset, may crash as early as in the fourth iteration, while it sometimes takes several hundred iterations before the failure occurs:
library(lubridate)
library(data.table)
library(prophet)

ds <- as.POSIXct("2011-01-01") + months(0 : 57)
y <- c(79, 88, 86, 94, 101, 92, 79, 77, 87, 78, 69, 62, 67, 79, 75, 84, 78, 98, 114, 126, 154, 128, 120, 118, 110, 95, 82, 102, 116, 100, 107, 104, 108, 96, 86, 100, 98, 126, 135, 141, 168, 140, 130, 115, 123, 143, 163, 169, 139, 136, 129, 117, 108, 93, 79, 92, 64, 94)
test_data <- data.table(ds = ds, y = y)

for(i in 1 : 1000){
  print(i)
  res_prophet <- prophet(test_data, growth = "linear", weekly.seasonality = FALSE)
  forecast <- predict(res_prophet)
}

When removing the predict step the problem goes away, confirming your observation that the failure occurs in this routine. However, the failure seems to be related to the fact that whenever fit.prophet is called this routine loads the stan model.
As a quick and dirty hack, we have adapted prophet and fit.prophet in a way that allows us to pass the stan model to these routines after loading it once:
prophet.adapted <- function (df = df, growth = "linear", changepoints = NULL, n.changepoints = 25,
    yearly.seasonality = TRUE, weekly.seasonality = TRUE, holidays = NULL,
    seasonality.prior.scale = 10, changepoint.prior.scale = 0.05,
    holidays.prior.scale = 10, mcmc.samples = 0, interval.width = 0.8,
    uncertainty.samples = 1000, fit = TRUE, model = NULL, ...)
{
    if (!is.null(changepoints)) {
        n.changepoints <- length(changepoints)
    }
    m <- list(growth = growth, changepoints = changepoints, n.changepoints = n.changepoints,
        yearly.seasonality = yearly.seasonality, weekly.seasonality = weekly.seasonality,
        holidays = holidays, seasonality.prior.scale = seasonality.prior.scale,
        changepoint.prior.scale = changepoint.prior.scale, holidays.prior.scale = holidays.prior.scale,
        mcmc.samples = mcmc.samples, interval.width = interval.width,
        uncertainty.samples = uncertainty.samples, start = NULL,
        y.scale = NULL, t.scale = NULL, changepoints.t = NULL,
        stan.fit = NULL, params = list(), history = NULL)
    prophet:::validate_inputs(m)
    class(m) <- append("prophet", class(m))
    if (fit) {
        m <- fit.prophet.adapted(m, df, model, ...)
    }
    return(m)
}

fit.prophet.adapted <- function(m, df, model, ...) {
    history <- df %>%
        dplyr::filter(!is.na(y))

    out <- prophet:::setup_dataframe(m, history, initialize_scales = TRUE)
    history <- out$df
    m <- out$m
    m$history <- history
    seasonal.features <- prophet:::make_all_seasonality_features(m, history)

    m <- prophet:::set_changepoints(m)
    A <- prophet:::get_changepoint_matrix(m)

    # Construct input to stan
    dat <- list(
        T = nrow(history),
        K = ncol(seasonal.features),
        S = length(m$changepoints.t),
        y = history$y_scaled,
        t = history$t,
        A = A,
        t_change = array(m$changepoints.t),
        X = as.matrix(seasonal.features),
        sigma = m$seasonality.prior.scale,
        tau = m$changepoint.prior.scale
    )

    # Run stan
    if (m$growth == 'linear') {
        kinit <- prophet:::linear_growth_init(history)
        if(is.null(model)) model <- prophet:::get_prophet_stan_model('linear')
    } else {
        dat$cap <- history$cap_scaled  # Add capacities to the Stan data
        kinit <- prophet:::logistic_growth_init(history)
        if(is.null(model)) model <- prophet:::get_prophet_stan_model('logistic')
    }

    stan_init <- function() {
        list(k = kinit[1],
             m = kinit[2],
             delta = array(rep(0, length(m$changepoints.t))),
             beta = array(rep(0, ncol(seasonal.features))),
             sigma_obs = 1
        )
    }

    if (m$mcmc.samples > 0) {
        stan.fit <- rstan::sampling(
            model,
            data = dat,
            init = stan_init,
            iter = m$mcmc.samples,
            ...
        )
        m$params <- rstan::extract(stan.fit)
        n.iteration <- length(m$params$k)
    } else {
        stan.fit <- rstan::optimizing(
            model,
            data = dat,
            init = stan_init,
            iter = 1e4,
            as_vector = FALSE,
            ...
        )
        m$params <- stan.fit$par
        n.iteration <- 1
    }

    # Cast the parameters to have consistent form, whether full bayes or MAP
    for (name in c('delta', 'beta')){
        m$params[[name]] <- matrix(m$params[[name]], nrow = n.iteration)
    }
    # rstan::sampling returns 1d arrays; converts to atomic vectors.
    for (name in c('k', 'm', 'sigma_obs')){
        m$params[[name]] <- c(m$params[[name]])
    }
    # If no changepoints were requested, replace delta with 0s
    if (m$n.changepoints == 0) {
        # Fold delta into the base rate k
        m$params$k <- m$params$k + m$params$delta[, 1]
        m$params$delta <- matrix(rep(0, length(m$params$delta)), nrow = n.iteration)
    }
    return(m)
}

The script copied below, making use of the adapted routines, seems to work fine:
library(lubridate)
library(data.table)
library(prophet)

ds <- as.POSIXct("2011-01-01") + months(0 : 57)
y <- c(79, 88, 86, 94, 101, 92, 79, 77, 87, 78, 69, 62, 67, 79, 75, 84, 78, 98, 114, 126, 154, 128, 120, 118, 110, 95, 82, 102, 116, 100, 107, 104, 108, 96, 86, 100, 98, 126, 135, 141, 168, 140, 130, 115, 123, 143, 163, 169, 139, 136, 129, 117, 108, 93, 79, 92, 64, 94)
test_data <- data.table(ds = ds, y = y)

prophet_stan_model <- prophet:::get_prophet_stan_model(model = "linear")
for(i in 1 : 1000){
  print(i)
  res_prophet <- prophet.adapted(test_data, growth = "linear", weekly.seasonality = FALSE, model = prophet_stan_model)
  forecast <- predict(res_prophet)
}

Hope this helps.
Michael and Jakub

Thanks @Mathemagically!  We'll look into this solution more carefully for the v0.2 release.  For now, it looks like calling gc after model fitting fixes the bug (just committed this), so we're going to ship that for a temporary bugfix.

I was able to replicate this issue with several loops, and https://github.com/facebookincubator/prophet/commit/c164367c0841c2539e4aef30fbc986a36d465c4e fixed the issue for me. If you currently have this issue, please install the latest version and see if this resolves it:
devtools::install_github('facebookincubator/prophet', subdir='R')

Thanks for the temp fix guys. @bletham I re-ran the same on my use case after updating and I can confirm that it does not crash now for less than 1000 loops. There's something I'm working on which needs me to loop over this threshold and running more than 1000 loops causes Prophet to crash R. This has improved a lot since the bug fix but still crashes for my needs. Can you please verify the same and let me know if there's any room for improving this fix? Thanks!

@namman2 just to be clear, it now does not fail during the first 1000 iterations, but somewhere after 1000 it does still segfault?
I personally don't have a good understanding of what is causing the segfault or why gc() helps. If you don't need uncertainty intervals, then reducing uncertainty.samples might postpone the failure. It does seem to be memory related so you might try deleting the model object from memory in the loop rather than overwriting it. But I really don't know what exactly is happening.

@bletham Yes, it does segfault somewhere after 1000 iterations now, was more non-deterministic before, but a bit stable now.
And I do not need uncertainty intervals for my use case, so I set the uncertainty.samples to 0. I don't see it anywhere in the documentation and I know that confidence intervals are a part of forecasting but is there a way to disable prophet from completely executing or reporting on the intervals?
Yes, I will definitely try removing the model in the loop itself once it executes. Might be because I'm overwriting it that is causing this issue. Do you suggest to use an rm on just the model file or a gc at the end of the loop?
Thanks again!

@bletham So, I ran it again using your suggestions and it does still segfault at precisely around the 1000th iteration mark. While it was more random previously, now it looks like it crashes as it reaches the 1000th iteration.

@bletham I have installed the latest version, including c164367, and I can confirm that on our machine the failure does not occur when running my original example, even if the loop is carried out for 2000 iterations. However, the garbage collection seems to significantly slow down execution - maybe this is the cause of the problem noticed by @joaopcoelho, assuming that he is using the latest version.
Actually, your hack employs some form of software rejuvenation to counteract the aging effects caused by an aging-related bug, while our hack prevents the aging-related bug from being activated repeatedly.

@namman2 thanks for your help in debugging this.
I added a branch in https://github.com/facebookincubator/prophet/commit/551db63cfa3fc73a5b8e6a7b752b0756d8fcd0a6 that stops loading the Stan model each iteration, as @Mathemagically had suggested. I do not get segfaults in a loop of 2000 fits. Can you install this version and see if you do? You'll have to install the loop_debug branch:
devtools::install_github('facebookincubator/prophet', subdir='R', ref='loop_debug')

Thanks a lot, @bletham and @Mathemagically
I can confirm that the issue has now been resolved for me with executing just over 2000 iterations without segfaults.

Wooo excellent!


Invoke deployed endpoint on port 8080 with gRPC

/kind bug
I have deployed a model using tensorflow savedmodel and it is listening on both http port:8080 and grpc port:9000 by default, I tested http one with url and headers, in headers we have to write host name other wise it doesn't work, it was working fine. Then I deployed same model with http listening on 9000 and grpc listening on 8080 with custom yaml file, it deployed successfully. But I dont know how to invoke endpoint with grpc, I have ip address and port which is 80 as it is mapped on 8080 port of our model. Another thing is that is it necessary to pass host name in grpc like it is in rest api to mention host in headers while invoking rest api.
Here is my yaml file

apiVersion: "serving.kubeflow.org/v1alpha2"
kind: "InferenceService"
metadata:
  annotations:
  name: "<model-name>"
spec:
  default:
    predictor:
      serviceAccountName: sa
      custom:
        container:
          name: "kfserving-container"
          args:
          - tensorflow_model_server
          - --model_base_path=/mnt/models
          - --model_name=<model>
          - --port=8080
          - --rest_api_port=9000
          env:
          - name: STORAGE_URI
            value: "<s3 path>"
          image: tensorflow/serving:latest-gpu
        resources:
          limits:
            cpu: "1"
            memory: 16Gi
          requests:
            cpu: "1"
            memory: 16Gi

Here are the logs of my pod
usage: tensorflow_model_server
2020-11-25 07:15:05.248383: I tensorflow_serving/model_servers/server.cc:87] Building single TensorFlow model file config:  model_name: <model-name> model_base_path: /mnt/models
Flags:
	--port=8500                      	int32	Port to listen on for gRPC API
	--grpc_socket_path=""            	string	If non-empty, listen to a UNIX socket for gRPC API on the given path. Can be either relative or absolute path.
	--rest_api_port=0                	int32	Port to listen on for HTTP/REST API. If set to zero HTTP/REST API will not be exported. This port must be different than the one specified in --port.
	--rest_api_num_threads=16        	int32	Number of threads for HTTP/REST API processing. If not set, will be auto set based on number of CPUs.
	--rest_api_timeout_in_ms=30000   	int32	Timeout for HTTP/REST API calls.
	--enable_batching=false          	bool	enable batching
	--allow_version_labels_for_unavailable_models=false	bool	If true, allows assigning unused version labels to models that are not available yet.
	--batching_parameters_file=""    	string	If non-empty, read an ascii BatchingParameters protobuf from the supplied file name and use the contained values instead of the defaults.
	--model_config_file=""           	string	If non-empty, read an ascii ModelServerConfig protobuf from the supplied file name, and serve the models in that file. This config file can be used to specify multiple models to serve and other advanced parameters including non-default version policy. (If used, --model_name, --model_base_path are ignored.)
	--model_config_file_poll_wait_seconds=0	int32	Interval in seconds between each poll of the filesystemfor model_config_file. If unset or set to zero, poll will be done exactly once and not periodically. Setting this to negative is reserved for testing purposes only.
	--model_name="default"           	string	name of model (ignored if --model_config_file flag is set)
	--model_base_path=""             	string	path to export (ignored if --model_config_file flag is set, otherwise required)
	--max_num_load_retries=5         	int32	maximum number of times it retries loading a model after the first failure, before giving up. If set to 0, a load is attempted only once. Default: 5
	--load_retry_interval_micros=60000000	int64	The interval, in microseconds, between each servable load retry. If set negative, it doesn't wait. Default: 1 minute
	--file_system_poll_wait_seconds=1	int32	Interval in seconds between each poll of the filesystem for new model version. If set to zero poll will be exactly done once and not periodically. Setting this to negative value will disable polling entirely causing ModelServer to indefinitely wait for a new model at startup. Negative values are reserved for testing purposes only.
	--flush_filesystem_caches=true   	bool	If true (the default), filesystem caches will be flushed after the initial load of all servables, and after each subsequent individual servable reload (if the number of load threads is 1). This reduces memory consumption of the model server, at the potential cost of cache misses if model files are accessed after servables are loaded.
	--tensorflow_session_parallelism=0	int64	Number of threads to use for running a Tensorflow session. Auto-configured by default.Note that this option is ignored if --platform_config_file is non-empty.
	--tensorflow_intra_op_parallelism=0	int64	Number of threads to use to parallelize the executionof an individual op. Auto-configured by default.Note that this option is ignored if --platform_config_file is non-empty.
	--tensorflow_inter_op_parallelism=0	int64	Controls the number of operators that can be executed simultaneously. Auto-configured by default.Note that this option is ignored if --platform_config_file is non-empty.
	--ssl_config_file=""             	string	If non-empty, read an ascii SSLConfig protobuf from the supplied file name and set up a secure gRPC channel
	--platform_config_file=""        	string	If non-empty, read an ascii PlatformConfigMap protobuf from the supplied file name, and use that platform config instead of the Tensorflow platform. (If used, --enable_batching is ignored.)
2020-11-25 07:15:05.248564: I tensorflow_serving/model_servers/server_core.cc:464] Adding/updating models.
2020-11-25 07:15:05.248577: I tensorflow_serving/model_servers/server_core.cc:575]  (Re-)adding model: tracking
2020-11-25 07:15:05.348793: I tensorflow_serving/core/basic_manager.cc:739] Successfully reserved resources to load servable {name: tracking version: 1}
2020-11-25 07:15:05.348814: I tensorflow_serving/core/loader_harness.cc:66] Approving load for servable version {name: tracking version: 1}
2020-11-25 07:15:05.348822: I tensorflow_serving/core/loader_harness.cc:74] Loading servable version {name: tracking version: 1}
2020-11-25 07:15:05.348850: I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:31] Reading SavedModel from: /mnt/models/1
2020-11-25 07:15:05.357807: I external/org_tensorflow/tensorflow/cc/saved_model/reader.cc:54] Reading meta graph with tags { serve }
2020-11-25 07:15:05.357836: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:234] Reading SavedModel debug info (if present) from: /mnt/models/1
2020-11-25 07:15:05.357919: I external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX2 AVX512F FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2020-11-25 07:15:05.359175: I external/org_tensorflow/tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library libcuda.so.1
2020-11-25 07:15:05.362778: I external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-11-25 07:15:05.363092: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1716] Found device 0 with properties:
pciBusID: 0000:00:1e.0 name: Tesla T4 computeCapability: 7.5
coreClock: 1.59GHz coreCount: 40 deviceMemorySize: 14.75GiB deviceMemoryBandwidth: 298.08GiB/s
2020-11-25 07:15:05.363104: I external/org_tensorflow/tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU libraries are statically linked, skip dlopen check.
2020-11-25 07:15:05.363147: I external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-11-25 07:15:05.363447: I external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-11-25 07:15:05.363720: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1858] Adding visible gpu devices: 0
2020-11-25 07:15:06.234968: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1257] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-11-25 07:15:06.234994: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1263]      0
2020-11-25 07:15:06.234999: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1276] 0:   N
2020-11-25 07:15:06.235103: I external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-11-25 07:15:06.235413: I external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-11-25 07:15:06.235701: I external/org_tensorflow/tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:982] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-11-25 07:15:06.236017: I external/org_tensorflow/tensorflow/core/common_runtime/gpu/gpu_device.cc:1402] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 249 MB memory) -> physical GPU (device: 0, name: Tesla T4, pci bus id: 0000:00:1e.0, compute capability: 7.5)
2020-11-25 07:15:06.253277: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:199] Restoring SavedModel bundle.
2020-11-25 07:15:06.253319: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:209] The specified SavedModel has no variables; no checkpoints were restored. File does not exist: /mnt/models/1/variables/variables.index
2020-11-25 07:15:06.253339: I external/org_tensorflow/tensorflow/cc/saved_model/loader.cc:303] SavedModel load for tags { serve }; Status: success: OK. Took 904488 microseconds.
2020-11-25 07:15:06.253753: I tensorflow_serving/servables/tensorflow/saved_model_warmup_util.cc:59] No warmup data file found at /mnt/models/1/assets.extra/tf_serving_warmup_requests
2020-11-25 07:15:06.253878: I tensorflow_serving/core/loader_harness.cc:87] Successfully loaded servable version {name: <model-name> version: 1}
2020-11-25 07:15:06.255357: I tensorflow_serving/model_servers/server.cc:367] Running gRPC ModelServer at <IP_ADDRESS>:8080 ...
[warn] getaddrinfo: address family for nodename not supported
[evhttp_server.cc : 238] NET_LOG: Entering the event loop ...
2020-11-25 07:15:06.256714: I tensorflow_serving/model_servers/server.cc:387] Exporting HTTP/REST API at:localhost:9000 ...

/assign

Where did you map 80 to 8080?

Where did you map 80 to 8080?

Did you figure it out?? I am also stuck on this.

Did you figure it out?? I am also stuck on this.

No, i didn't figure it out when I was working on it.

No, i didn't figure it out when I was working on it.

@daganida88 @akash-harijan Please check the tensorflow gRPC example

@daganida88 @akash-harijan Please check the tensorflow gRPC example

The exmaple does not work.. I receive:
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNIMPLEMENTED
details = "Received http2 header with status: 404"
debug_error_string = "{"created":"@1612793608.875597000","description":"Received http2 :status header with non-200 OK status","file":"src/core/ext/filters/http/client/http_client_filter.cc","file_line":130,"grpc_message":"Received http2 header with status: 404","grpc_status":12,"value":"404"}"

I am also using v1alpha2 and not v1beta1.. it says inference service resource does not exists in v1beta1.


Make multi-lang component resource docs discoverable on API Reference page

Problem description
As part of the new multi-language components support, packages like pulumi-eks, pulumi-awsx, etc. need API Reference documentation that is easily discoverable. Right now, the existing Crosswalk component reference docs can be found on the API Reference page under the Extension Packages subheading for TypeScript and JavaScript. It feels like they should be brought up a bit higher on the page to make them more discoverable and prominent on the page.
Suggestions for a fix
One suggestion is to create a new subheading titled "Crosswalk Packages" on the root API Reference index page under the Version Control subheading (as a sibling) and have links to the root pages for each package under that new subheading.
Another option would be to bring these helper libraries closer to their related cloud provider docs on the page and create a sub heading under each top-level heading (i.e. Core Providers -> Crosswalk Packages).

Closing as no longer relevant. (These packages now exist in the Registry.)


Add rpmbuild ci

This pull request adds a github action, that builds a source rpm and a rpm for opensuse Leap 15.2 and Tumbleweed using mock. This might yield slightly different results than on obs, but we get instant feedback if the spec file is broken.

Nice PR @dcermak , very much welcomed!!!

Nice PR @dcermak , very much welcomed!!!


Backporting recent WSL builds to Windows 10?

Can the newer WSL builds be ported to work with Windows 10?
For those of us stuck on Windows 10 (e.g. company upgrade policies, lack of hardware support etc), it would be great to still get recent WSL improvements such as systemd support.

This is tracked elsewhere.

Where is it tracked?

WSL from Windows Store can run in Windows 10 now. See the blog post https://devblogs.microsoft.com/commandline/the-windows-subsystem-for-linux-in-the-microsoft-store-is-now-generally-available-on-windows-10-and-11/


[Snyk] Security upgrade alpine from 3.11.6 to 3.19.4

Snyk has created this PR to fix 4 vulnerabilities in the dockerfile dependencies of this project.
Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image.
Snyk changed the following file(s):

build/cert-agent/Dockerfile

We recommend upgrading to alpine:3.19.4, as this image has only 1 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected.
Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Buffer Overflow SNYK-ALPINE311-OPENSSL-1569451
  261

Buffer Overflow SNYK-ALPINE311-OPENSSL-1569451
  261

Out-of-bounds Write SNYK-ALPINE311-ZLIB-2977081
  240

Out-of-bounds Read SNYK-ALPINE311-APKTOOLS-1534687
  212

Use After Free SNYK-ALPINE311-BUSYBOX-1920749
  208

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Use After Free

:tada: Snyk checks have passed. No issues have been found so far.
:white_check_mark: code/snyk check is complete. No issues have been found. (View Details)


[Feature Request] Provide a switch to let each dialog has its own v-modal

Existing Component
Yes
Component Name
el-dialog/v-modal/messageBox
Description
I use element-ui in my project. It's a nice Toolkit. But recently I have a new request. the reproduction lick: https://jsfiddle.net/pj71jkyw/717/.
The request is: each page has its own dialogs, and the tabs must to be able to switch when a dialog is shown, and the dialog should be keep shown if I open it and switch to other tab.
At first I try to use CSS to complete the aim:
 .v-modal,.el-dialog__wrapper{
  position:absolute !important;
}
.inner-box{
  position:relative
}

It seems good so far. Now is the problem, just follow the steps:

click the button of tab1, and the dialog1 of tab1 is shown;
click the title of tab2, switch to the tab2;
click the button of tab2, and the dialog2 of tab2 is shown;
switch back to the tab1

now we can find that the mask layer (v-modal element) of dialog1 is disappear, and dialog2 has double layers of v-modal;
I read the code of Popup.vue, recognized that  it seemed you use a list called modalStack to save the v-modal layers, and all the v-modal share the some list?  That cases the problem.
Hope you can provide a switch to let each dialog has its own v-modal. Or can you give me some advice? Thank you!
英文不好，不知道有没有说明白。。

Having only one backdrop for all popup components is a fundamental design of Element. It keeps DOM clean and makes z-index easier to manage. So we'll probably keep it as is.
As for your case, I came up with a workaround: https://jsfiddle.net/pj71jkyw/719/ .

Thank you for your reply !
the example above is too sample, so you can use one more property to save the status.
But in my actual project, there are more than 20 tabs(actually, each tabs is a separate page, with their own route), and each tabs has more than 1 dialog and messageBox. So the solution will be complicated.
What's more, it is not useful in the <MessageBox> component, because MessageBox do not has a option like visible.sync in dialog to control its display.
Anyway, thank you for your help. Your answer gave me some inspiration. I will think about some compromise.

I have the some problem. Is there anyway to solve this problem!


sequence feature

41/5000
When I try to use sequence characteristics, the program has an array out of bounds error. Could you please give an example of sequence features.

We provide a demo for sequence features, pls have a try again.
https://github.com/xue-pai/FuxiCTR/blob/main/demo/DeepFM_with_sequence_feature.py


msi: term rename

Main change

az vm/vmss/webapp/functionapp assign-identity/remove-identity gets moved to under az vm/vmss/webnapp/functionapp managed-identity assign/remove
author az vm/vmss/webapp/functionapp managed-identity show
az login --msi --msi-port 1234 get changed to az login --managed-identity --managed-identity-port
Old commands/argument still work (for 2 releases). Deprecation information is emitted on old commands

//cc: @skwan, @arluca @mayurid @twitchax
General Guidelines

[x] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

Command Guidelines

[x] Each command and parameter has a meaningful description.
[x] Each new command has a test.

(see Authoring Command Modules)

View a preview at https://prompt.ws/r/Azure/azure-cli/5744
This is an experimental preview for @microsoft users.


Host/Play: Align Host and Play timers

This issue is based around a situation that has been observed in the classroom. Apparently, it's quite common for students to change tabs and navigate in other browsers while they are playing a game.
This is problematic for us, as we are running a timer on the page using requestAnimationFrame. For performance reasons, a browser will often scale down the available content running on unfocused tabs and requestAnimationFrame is one such process.
This means that if a teacher starts a game, a student can view a question, tab out of the game and their timer will not continue to run. They can then take as long as they want, and when they tab in, they will have their original time remaining.
To solve this, we will need to synch up the time between the host_v2 and the play apps.
I spoke with Mani about how to do this and he provided a few answers:

We could continually provide updates to play from host on the state of the timer, with an allowable tolerance. For instance, every 3s we could update all instances of play by pushing an update to the GameSession object. This was an original suggestion from way back and when I roughly implemented it, it just resulted in a ton of networking traffic. I would like to shelve this option and explore other options.

We could establish a server-side clock that runs when a question is started. Players could then query this clock whenever the tab is refocused so there is a single source of truth of all apps. I think this is the best solution but don't know the specifics for implementing the clock on AWS (is it a lambda? is there another service? I'm not sure).

We could simply write the current time when the question is first started to localStorage. Then when the tab is refocused, get the new current time from the system clock, compare the two, and adjust the timer accordingly. There may be some slippage between play and host (as we aren't maintaining a single source of truth) but it will get us most of the way there.

Given that we are on an accelerated timeline for host_v2 and that this is a high priority item, I would like to implement on #3 initially. Then, once we have it up and running, we can do some research on #2 to see if it's worth migrating over to a solution like that via a proof of concept.


Linear resampling in rg3d_sound::source::GenericSource

Right now the rg3d_sound::source::GenericSource uses the nearest algorithm when the resampling_multiplier is not an integer which produces apparent artifacts. I propose adding a linear resampler for this case, enabled automatically if either the pitch or the resampling_multiplier are non-integer.
I can make a PR if you are interested.

What kind of artifacts? It happens even if resampling_multiplier is 0.9999? I'm complete noob in resampling, would be cool to learn more about flaws of current approach :)
A PR would be nice indeed, I hope correct resampling is not very costly.

I am quite far a newbie in audio myself, but as far as I understand, there a few well-known algorithms:

nearest: the cheapest one, it is currently implemented in rg3d_sound, basically a sample[cur_pos.round()]
linear: calculates lerp(sample[cur_pos], sample[cur_pos+1], cur_pos.fract()
sinc-based: implemented in rubato, samplerate and many other libraries, considered to have the best quality as far as I know. A lot of libraries use these algorithms for final resampling (e.g. when the hardware has fixed sampling rate of 48000 like many modern phones do)
FFT-based: rubato is the only popular library that I know which implements it. The quality seems very decent.

Judging from my very preliminary benchmarks FFT-based algorithm is actually really fast (as the rubato documentation mentions quite a few times, actually), but is still several times slower than the linear resampling, and sinc-based are several times slower than FFT-based, so I do not think these algorithms should be the default. Linear resampling however is very easy to implement and actually does not sound half bad.
I'm attaching a spectrogram of a 1000Hz sine wave with 48000 rate after being mixed (and resampled) by current rg3d_sound and the spectrogram after being mixed by rg3d_sound with a trivial patch for linear resampling.

As you can see, while the second spectrogram is not "ideal", it contains a lot less noise (which can be easily heard by regular users).
I will prepare a PR during the next week. rg3d_sound is probably the most optimized Rust audio library already, but I'll try to optimize code a bit (nothing serious, just a bit of shuffling code around, reducing the number of branches in hot loop).

Awesome explanation, thanks, I learned something new today! Can't wait for the PR!

Thanks =) Almost nothing to report for now, but I tried playing with rg3d-sound in profiler and to my surprise found the following:

I do not have LTO enabled, however I still assumed that functions like lerpf would get inlined. However, it turns out that cross-crate inlines are not enabled by default (https://nnethercote.github.io/perf-book/inlining.html). It would probably be a good idea to add a few #[inline(always)] to rg3d-core/src/math (and maybe some other core functions?). Adding inline(always) to lerpf improves mixing performance by 15-35%

Good to know!


[Improvement]: Change Source Code link to Quick Start

Search before asking

[X] I have searched in the issues and found no similar issues.

What would you like to be improved?
It seems better to change Source Code to Quick Start link.

How should we improve?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Subtasks
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

cc @zhoujinsong

Good point, I will change it.


fix knative downstream tests

Signed-off-by: Jason Hall<EMAIL_ADDRESS>/assign vdemeester
cc @dprotaso @cardil
Changes
This moves the temp gopath to a location outside the repo, so that knative's go-ls-tags doesn't consider it when determining which tags to build for.
/kind cleanup
Might fix https://github.com/knative/actions/issues/86
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[ ] Has Docs included if any changes are user facing
[ ] Has Tests included if any functionality added or changed
[ ] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[ ] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

PR friction log:

unit test flake (timeout didn't happen): https://prow.tekton.dev/view/gs/tekton-prow/pr-logs/pull/tektoncd_pipeline/5763/pull-tekton-pipeline-unit-tests/1593602003307597824
e2e test flake (ghcr.io failure trying to publish images): https://prow.tekton.dev/view/gs/tekton-prow/pr-logs/pull/tektoncd_pipeline/5763/pull-tekton-pipeline-alpha-integration-tests/1593602003462787072
unit test flake (cloud events): https://prow.tekton.dev/view/gs/tekton-prow/pr-logs/pull/tektoncd_pipeline/5763/pull-tekton-pipeline-unit-tests/1593634438405689344

/test tekton-pipeline-unit-tests
/test pull-tekton-pipeline-alpha-integration-tests

/test tekton-pipeline-unit-tests

/lgtm

/retest


Update README.md

@sashahafner
README should also be updated with the stuff I have put in. Let me know what to do.


[REG]empty object is passed to the platformfound event listener

For iotivity-node 1.1.1-3, when there is no OCF server running, findPlatforms() will not trigger the platformfound event.
For iotivity-node-1.2.0-2, when there is no OCF server running, findPlatforms() still triggers the platformfound event and an empty object {} is passed to the listener. According to OCF API Spec, only Platform objects should be passed to the listener.
Running this code snippet (from iot-rest-api-server and modified):
var client = require('iotivity-node').client;
const PLATFORM_FOUND_EVENT = "platformfound";

var discoveredPlatforms = [];
function onPlatformFound(platformInfo) {
        console.log('new platform found: ', platformInfo);
        discoveredPlatforms.push(platformInfo);
        console.log('discoveredPlatforms num: ', discoveredPlatforms.length);
}

function discoverPlatforms() {
        client.on(PLATFORM_FOUND_EVENT, onPlatformFound);

        client.findPlatforms().then(function() {
            console.log("findPlatforms() successful");
        })
        .catch(function(e) {
            console.log(e.message);
        });
}

discoverPlatforms();

on IoT-Refkit image#119 with iotivity-node 1.2.0-2 gets
findPlatforms() successful
new platform found:  {}
discoveredPlatforms num:  1
new platform found:  {}
discoveredPlatforms num:  2
...

This happens for the same reason as #127.

@gabrielschulhof , thanks for the explanation for issue#127.
Since  the lowlevel stack is started with the OC_CLIENT_SERVER mode.
When I just start an OCF client, this client is also considered as an OCF server but the platform property of the OCF device is not set.
The platform property doesn't contain any neccssary OCF platform members, which doesn't comply the iot-js-api spec. But the platformfound event is fired and this empty object is sent to the event listener.
Is it possible to check if the platform object is empty before emitting the platformfound event? For example, just ignore the empty object and don't emit that event.

This case is a litter different with issue#127. The unset platform property of OCF device is not a regular OCF platform object. It might not be proper to expose the empty platform to the network. So reopen this issue.

@qiuzhong can you still reproduce this issue?

Tested on 1.3.0-1 and this issue is not reproduced.
I got the output this time:
findPlatforms() successful
new platform found:  { id: '1be7e5ba-8b36-576e-491c-8a391f6e247d' }
discoveredPlatforms num:  1
new platform found:  { id: '1be7e5ba-8b36-576e-491c-8a391f6e247d' }
discoveredPlatforms num:  2
new platform found:  { id: '1be7e5ba-8b36-576e-491c-8a391f6e247d' }
discoveredPlatforms num:  3

So basically, there is no empty object passed to the platformfound event listener now. However, a special platform object with only id property is found. I believe it's from the OCF client itself, is this the expected behavior?


fix(threads): mention common work-around for the logged error

Description

Include common work-around for the logged errors so that users don't need to look for it themselves. I've already lost count of how many times --pool=forks has resolved similar issues. Related to #3077.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[ ] Ideally, include a test that fails without this PR but passes with it.
[ ] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[ ] Run the tests with pnpm test:ci.

Documentation

[x] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[x] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

Error message now includes link to this page: https://deploy-preview-5024--fastidious-cascaron-4ded94.netlify.app/guide/common-errors.html#failed-to-terminate-worker


In Chrome, CTRL-clicking an upjs link does nothing

In contrast, Internet Explorer opens the link in a new tab as expected.

Should be fixed in 0.6.4.

Gorgeous! Thanks for the quick fix!
On 30.07.2015, at 21:19, Henning Koch<EMAIL_ADDRESS>wrote:

Should be fixed in 0.6.4.
—
Reply to this email directly or view it on GitHub.


GetHybridization() producing incorrect hybridization when using GetAtomWithIdx()

Description:

When using the Chem.rdchem sub module and selecting an atom, using the GetHydribization() function returns the incorrect hybridization value. I drew the same mol object using rdkit.Chem.Draw. The attachted image shows the correct molecule, but still returns the incorrect hybridization of the final oxygen in the SMILES chain.

RDKit Version: 2019.03.2
Platform: Ubuntu 18.04

import rdkit
from rdkit import Chem
from rdkit.Chem import rdchem
from rdkit.Chem import Draw

mol = Chem.MolFromSmiles("Cc1ccc(cc1)C(=O)O")

index = 0
while index <= mol.GetNumAtoms()-1:
    atomObj = mol.GetAtomWithIdx(index)
    symbol = str(atomObj.GetSymbol())
    Hybridization = str(atomObj.GetHybridization())
    print(symbol + " hybridization: " + Hybridization)
    index+=1

img = Draw.MolToFile(mol,"testImg.png")

The output was
C hybridization: SP3
C hybridization: SP2
C hybridization: SP2
C hybridization: SP2
C hybridization: SP2
C hybridization: SP2
C hybridization: SP2
C hybridization: SP2
O hybridization: SP2
O hybridization: SP2

I surmise this is a bug because this has occurred for many different SMILES codes, unless it is something incorrect in my code or implementation of rdkit.

This is the intended behavior. The RDKit considers both C-O bonds to be conjugated (actually all the bonds in this molecule are conjugated), and so it assigns SP2 hybridization to both O atoms.


[Bug]: reconnect after disconnect

Current Behavior
I use this code below to reconnect after i reload the page which works great.
connect: {     autoConnectLastWallet: true   },
But when i disconnect and reload my page, it also reconnect. Does that on purpose, or am i making mistake using the disconnect methods.
const onDisconnect = () => {   disconnectConnectedWallet() }
Expected Behavior
reconnect after i reload but does not reconnect after i disconnect and reload
Steps To Reproduce
disconnect -> reload
What package is effected by this issue?
@web3-onboard/core
Is this a build or a runtime issue?
N/A
Package Version
@web3-onboard/vue: "^2.5.2",
Node Version
No response
What browsers are you seeing the problem on?
No response
Relevant log output
No response
Anything else?
No response
Sanity Check

[X] If this is a build issue, I have included my build config. If this is a runtime issue, I have included reproduction steps and/or a Minimal, Reproducible Example.

@frankye23 Hey! This is the expected behaviour as if the user explicitly wishes to disconnect their wallet from the dapp then it shouldn't reconnect the users app after the dapp reloads

I can confirm that this is a bug. After using the "Disconnect Wallet" or "Disconnect all Wallets" button the library is not connected anymore. BUT the key onboard.js:last_connected_wallet (STORAGE_KEYS.LAST_CONNECTED_WALLET) is still in the local storage. So after a hard page reload the libraray will automatically reconnect again.
See here:  https://github.com/blocknative/web3-onboard/blob/8b84fc5dd5362253ee52789a078fd493e54bd9cf/packages/core/src/index.ts#L230-L242) {
My workaround for now is to listen to state changes and execute the following logic after a disconnect:
export function delLocalStore(key: string): void {
  try {
    localStorage.removeItem(key)
  } catch (error) {
    return
  }
}

delLocalStore('onboard.js:last_connected_wallet')

Cheers!

Ah ok it looks like @taylorjdawson misunderstood the report of current behaviour. We would expect it to remove the storage key when disconnect is called. We'll get a fix out for this and we can expose the types for the action type as well.


fix: findby count wrong calculation

That's a breaking change. Why do you need to turn it into an object instead of an array?

I took it back


Android Basics: Get data from the Internet

name: Android Basics Unit 4 issue
about: Report problems with the Android Basics Unit 4 codelabs
title: 'Android Basics Unit 4 issue:'
labels: ''
assignees: ''

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-4-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-getting-data-internet#5
and
https://developer.android.com/codelabs/basic-android-kotlin-training-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-4-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-getting-data-internet#7
In which task and step of the codelab can this issue be found?
Describe the problem
typo 1:

typo 2:

Steps to reproduce?
typo 1:  Go to - https://developer.android.com/codelabs/basic-android-kotlin-training-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-4-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-getting-data-internet#5
typo 2: Go to - https://developer.android.com/codelabs/basic-android-kotlin-training-getting-data-internet?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-4-pathway-2%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-getting-data-internet#7
Additional information
Please check codelab before publishing, many newbies cab be confused by this, the second time I already find a bug in your new codelabs. Thx

Чт, 14 окт. 2021 г. в 02:10, osuleymanova @.***>:

Closed #63
https://github.com/google-developer-training/android-basics-kotlin-mars-photos-app/issues/63
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google-developer-training/android-basics-kotlin-mars-photos-app/issues/63#event-5460293405,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQPDRCUFTEZLO2MO2YE7ILLUGYGV5ANCNFSM4744XAMQ
.

Thx


How to improve the decentralisation? Handle MW/Node Connection Failures

https://aeternity-blockchain.atlassian.net/browse/SW-1334

Are there publicly-available nodes running by third parties? We may add them to the wallet to improve decentralisation

We need to check this in current Sprint


docs(element): add index to .each example

Merged in at https://github.com/angular/protractor/commit/17f73cf711be1be25b1ff34f5ea5414fbd45fca8


trigger-bitrise-workflow 0.0.2

New Pull Request Checklist
Please mark the points which you did / accept.

[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

Thanks for the update & the new feature @koral-- ! ;)


Add blas=mkl to libtensorlight's 0th build

Checklist

[x] Ran python show_diff.py and posted the output as part of the PR.
[x] Modifications won't affect packages built in the future.

Output of show_diff.py:
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/noarch/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-64/repodata.json.bz2
linux-64::libtensorlight-3.0.1-hc894906_0.tar.bz2
-    "mkl >=2021.4.0,<2022.0a0"
+    "mkl >=2021.4.0,<2022.0a0",
+    "libblas * *mkl"
Downloading: https://conda.anaconda.org/conda-forge/linux-armv7l/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-armv7l/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-aarch64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-aarch64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-ppc64le/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/linux-ppc64le/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-64/repodata.json.bz2
osx-64::libtensorlight-3.0.1-h3f245aa_0.tar.bz2
-    "mkl >=2021.4.0,<2022.0a0"
+    "mkl >=2021.4.0,<2022.0a0",
+    "libblas * *mkl"
Downloading: https://conda.anaconda.org/conda-forge/osx-arm64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/osx-arm64/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-32/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-32/repodata.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-64/repodata_from_packages.json.bz2
Downloading: https://conda.anaconda.org/conda-forge/win-64/repodata.json.bz2

Thank you. We typically like to see a PR to the feedstock repo fixing it there as well.
Could you make one and cross reference it here.

The issue was fixed there in this PR. Thanks! 😄

ah i see. sorry about that.


Stats not work

Hi
I test this mtg more and more and stats in mtproxy admin bot not work and we can not get online member per hour
Please check it

Would you mind to elaborate? mtg and stats in that bot are absolutely disconnected. I do not know anything about internals of this bot and proxy does not expose any statistics to Telegram


[Feature]: Sort database tables by name in Datasources list

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
What a database is loaded as a datasource, all of its tables are listed out of order. Since this is a long list, it can make specific tables hard to find. Instead, the list should be alphabetically sorted.

Why should this be worked on?
It'll simplify working with long table lists.

we now have schema sorted and searchable for postgres, mysql, mongo.


Add overflow-auto to modals to make them scrollable

Before submitting the PR:

[X] Does your PR reference an issue? If not, please chat to the team on Discord or GitHub before submission.
[X] Did you update and run tests before submission using npm run test?
[X] Does your branch follow our naming convention? If not, please amend the branch name using branch -m new-branch-name
[ ] Did you update documentation related to your new feature or changes?

What does your PR address?
Fixes #734.
Added overflow-auto to the modal to make it scrollable.
Tips

Tap "convert to draft" to indicate this is work in progress.
Link to an issue using the verbiage Fixes #XX
Linked issues will auto-close when the PR is merged.

@endigo9740 I think the best we can do is add a mt-4 to the modal div, which would look like this:

But this then means that when the whole modal is visible it isn't fully centered anymore. Although the small difference isn't that noticable:

Using my-4 on the modal div or p-4 on the backdrop div doesn't work.

Gotcha, I figured that might be the case. Whatever works and looks good really.
Also side note - where is that drag handle coming from in the bottom-right corner. That's not native right? Do you have a browser plugin or something triggering that? First I've seen of that.

@endigo9740 yeah that's actually from the browser 😄 Firefox and Chrome both have that feature where you can change the dimensions of the screen, that's when the drag handle shows up:

Ohhh I see. I didn't realize that's what you were using. I tend to opt for the fixed sizes in Chrome as oppose to the fluid option. I follow.
Btw, it's still not quite like I want. Do you mind if I jump in an take a quick swing at this? I'll push a small change in a moment if I can get it like I want it. (Sorry I'm so picky heh)

@endigo9740 sure thing, give it a go! :)

Got it! Also fixed the trigger buttons being jacked up on mobile as well. I'll push this on sec...

I'm please with this, merging now!

@endigo9740 nice! Looks much better than before!


[improve][misc] Upgrade slf4j to 2.0.13

Motivation
Keep up-to-date, and this version supports fluent logging api.
Modifications

Upgrade slf4j from 1.7.32 to 2.0.13
Upgrade qpid-server to adapt the slf4j 2
Use log4j-slf4j2-impl instead log4j-slf4j-impl
Exclude the log4j-slf4j-impl and slf4j from some library

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

@nodece license check fails

I downloaded the test image and then tried to test the CLI test, when proxy is start, Failed to load class "org.slf4j.impl.StaticLoggerBinder" doesn't be printed, but in the GHA, this message has been printed, please see https://productionresultssa13.blob.core.windows.net/actions-results/c3508721-b89b-426a-aa66-cd2a8c2f5a99/workflow-job-run-6b1ea721-31e7-5262-bdcc-795f87829cb5/logs/job/job-logs.txt?rsct=text%2Fplain&se=2024-04-04T17%3A59%3A14Z&sig=lMZ7Bk7gThEIkAHVFAbJLNchc2Nq2jgfkcFXlxcWf%2F8%3D&sp=r&spr=https&sr=b&st=2024-04-04T17%3A49%3A09Z&sv=2021-12-02
unzip -p pulsar-java-test-image.zst.zip | unzstd | docker load
cd $PULSAR_HOME
./build/run_integration_group.sh CLI

@lhotari Do you have any suggestions?

@lhotari Do you have any suggestions?

@nodece To debug, locally with java-test-image in addition what you provided, you'd have to do export PULSAR_TEST_IMAGE_NAME=apachepulsar/java-test-image:latest (ref: https://github.com/apache/pulsar/blob/d61f7585e8ee1d5e76ff1ff1eb0b3380bc7178c4/.github/workflows/pulsar-ci.yaml#L539) before running the tests locally. The default value for PULSAR_TEST_IMAGE_NAME is the pulsar-test-latest-version image (ref: https://github.com/apache/pulsar/blob/8957e353ded9ee24eccea349c7747da721d9e66a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/containers/PulsarContainer.java#L54-L55).

Sorry, in my test, PULSAR_TEST_IMAGE_NAME has been set, but it still does not work.

Sorry, in my test, PULSAR_TEST_IMAGE_NAME has been set, but it still does not work.

@nodece What doesn't work?

Sorry, in my test, PULSAR_TEST_IMAGE_NAME has been set, but it still does not work.

@nodece What doesn't work?

In the GHA, the CLI test always print the “Failed to load class "org.slf4j.impl.StaticLoggerBinder"”, but in my local, never print.

slf4j seems to have some issues, and once the issues are fixed, I will continue working.

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks

It's a breaking change that affects the down
In our KSN project (the private version of KoP), after upgrading to include this commit, logs cannot be printed anymore.

I tried adding the reload4j dependency and it didn't work.
[INFO] \- org.slf4j:slf4j-reload4j:jar:2.0.13:test
[INFO]    \- ch.qos.reload4j:reload4j:jar:1.2.22:test

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation

Could you provide the log4j/log4j2 and slf4j versions?
I can help you solve the issues you are facing.

@nodece
Do we have any breaking changes for API/client API/client dependencies?  we should raise a PIP and discuss it to decide if we have a breaking change. :)
cc @codelipenghui @BewareMyPower

We should document explicitly that users should exclude slf4j-api from any pulsar-xxx dependency. Otherwise, users might suffer from such simple dependency upgrading.
In addition, for existing users, we should note this breaking change in 3.3.0's release note.

I mean we should discuss what strong reason pushed us to introduce this breaking change. :)

See my thread here: https://lists.apache.org/thread/4omvl62k4jhntj3rsywp14zzgh1l3l9q
For example, assuming users import the dependencies like:
<dependency>
  <groupId>org.apache.pulsar</groupId>
  <artifactId>pulsar-client-all</artifactId>
  <version>3.2.2</version>
</dependency>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.36</version>
</dependency>

After upgrading the pulsar-client-all dependency to 3.3.0, the slf4j-simple:1.7.36 dependency won't work. So if users want to upgrade the pulsar-client-all dependency, they have to exclude the slf4j-api dependency from pulsar-client-all and import slf4j-api 1.7.x dependency explicitly.

We should document explicitly that users should exclude slf4j-api from any pulsar-xxx dependency. Otherwise, users might suffer from such simple dependency upgrading.
In addition, for existing users, we should note this breaking change in 3.3.0's release note.

I don't think that excluding is needed. Both maven and gradle use a dependency resolution strategy where the closest dependency wins when there are conflicts. The user would need to add slf4j-api dependency or use dependency management. Excluding isn't a recommended solution.

@nodece Do we have any breaking changes for API/client API/client dependencies? we should raise a PIP and discuss it to decide if we have a breaking change. :)
cc @codelipenghui @BewareMyPower

3.3.0 is for breaking changes like this. I explained in https://github.com/apache/pulsar/pull/22391#issuecomment-2095259400 why the user already has a problem in dependency management if this breaks their application.
The world is moving forward and also other projects are moving towards slf4j-api 2.0.x . That will happen sooner or later for all projects.
It's better to make this change in 3.3.0 than in the 4.0.0 LTS version so that we have time to adjust things if needed for 4.0.0 . Introducing major changes in 4.0.0 isn't the best possible solution.


Create case study page for Box

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For 1.7 Features: set Milestone to 1.7 and Base Branch to release-1.7
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
NOTE: Please check the “Allow edits from maintainers” box below to allow
reviewers fix problems on your patch and speed up the review process.
Please delete this note before submitting the pull request.

This change is

Hello,
I have signed the CLA. Let me know if there are any problems!
Alex

Put case-studies/style_box.css in this PR, and then close PR 4231. Then click Show all checks > deploy/netlify Details to see the topic staged.

@alexcontini @steveperry-53 We need to expedite these PRs for the Box case study because the main blog article about the v1.7 has a link to it: http://blog.kubernetes.io/2017/06/kubernetes-1.7-security-hardening-stateful-application-extensibility-updates.html

I'm going to close this since it looks like it's being taken care of in https://github.com/kubernetes/kubernetes.github.io/pull/4235.


Configure TransactionManager on SubscribingEventProcessor

The SubscribingEventProcessors aren't configured with a transaction manager, by default. However, the processor can't always rely on the fact that messages are provided by a thread that has an active transaction on it.

Opened a PR - Feedback appreciated.


Firefox issue

When in Firefox, the nav fails to display.

It seems that the CSS pseudo-class has is not supported in FF: https://caniuse.com/css-has


fix(common): redundant store_cache removed

Motivation
Noticed one leftover store_cache, deemed unnecessary by new with_cache.
Solution
Removed.

looks like the failing tests are a result of a missing RPC URL secret, maybe on your fork? i haven't seen this before :(

looks like the failing tests are a result of a missing RPC URL secret, maybe on your fork? i haven't seen this before :(
Where to set this? I'm not familiar with github actions :/

Also found another small bug, that IPC path is being verified against URL scheme and so IPC connection fails due to this check. Ok for it to come in this pull request?

sounds good to me!

everything passing locally, so im just gonna merge this in!

 :)


WIP ML.NET: re-add landing pages

Summary
Add landing pages back in, until we decide medium term strategy
Preview: https://review.docs.microsoft.com/en-us/dotnet/machine-learning/?branch=pr-en-us-11749
AB#1495389

This is related to the issue I filed yesterday: https://github.com/dotnet/docs/issues/11737
do you want to add a Fixes keyword to your PR description?


generate samples for training/test data frames

something like..
let train, test  = data |> Frame.sampleAll 60
or
let train, test = data |> Frame.sampleSome 1000
'sampleAll' would randomly sample 60% of data can create a train frame, then take the other 40% and make a test frame.
'sampleSome' would take 2 different sets of randomly selected 1000 rows, and return them as a train frame and a test frame
Is there is currently an easy way to accomplish this using Deedle current features?

PartionBy would be useful for simple Tran/Test bifurcation, but many bagging methods require sampling with replacement (e.g. Random Forest) where any particular observation/row may be represented multiple times within a drawing.


534 original version note

https://github.com/uwlib-cams/MARC2RDA/blob/main/Working Documents/5XX.csv

Here are some notes I made before the meeting: and I added a bit based on our discussion
Questions:

From the definition, can we assume there is another manifestation, of same expression that's described in 534?

Is there enough in the 534 to generate an IRI, describe a manifestation, and relate that manifestation to this one?

(Is that the best way to go if we can?)

[from discussion:  Sophia has ideas about using $p terminology that matches RDA categories (original or official) of relationships to determine what property to use to relate our manifestation with the "original]
Terms in $p in examples (not controlled):
Originally issued,
Originally published,
Reproduction of,
Reprint.  Originally published
Original:
(no prefix)
Original version
$3vol. 2$pReproducción de la edición de: $cMadrid : Casa Editorial Hernando, 1924.
If a subfield 3 is present, materials specified, probably can't create a manifestation.  Just make a note on manifestation?
Assumption:  Title (and responsibility) are the same as for the manifestation being described in record.  (??)  If a $t or $a and $t don't match our manifestation, does this make the "original" a different expression?
Required tags are not always used - so these are "required if applicable/available".
$f Series statement of the original
$k Key title of the original
$n Note about the original
$o Other resource identifier
$x ISSN
$z ISBN
RDA relations:  Manifestation
(is) Facsimile of manifestation of http://rdaregistry.info/Elements/m/P30047 https://access.rdatoolkit.org/Content/Index?externalId=en-US_ala-a8671732-4aed-3b2c-9b6e-310e4617a9cf
Definition - https://access.rdatoolkit.org/Glossary?externalId=en-US_rdaregistry.info-termList-IllusContent-1002&highlight=facsimile  .
My take - implicit in the definition is that a facsimile is made from one or more items of the original through some process, even if they are not identified and referenced.  Whereas a Reproduction is broader and may encompass using the original's source composition (plates, typesetting, files, etc.), whether by the original publisher or another publisher.
If word facsimile appears in $p introductory phrase, use this property, otherwise use Reproduction of manifestation.
Broader:
(is) Reproduction of manifestation of https://www.rdaregistry.info/Elements/m/#P30043
Broader:
Has equivalent manifestation https://www.rdaregistry.info/Elements/m/#P30024 https://access.rdatoolkit.org/Content/Index?externalId=en-US_ala-19152c97-642c-3cd0-82db-630329ad2940

There are two more narrower properties under Has equivalent manifestation that may or may not be appropriate to express 534 relationships:
Also issued as: http://rdaregistry.info/Elements/m/P30026 https://access.rdatoolkit.org/Content/Index?externalId=en-US_ala-b63395e4-bf33-38a4-bcb6-7f60c9698552  "A manifestation that embodies the same expression of a work in a different format"
Mirror site http://rdaregistry.info/Elements/m/P30028 https://access.rdatoolkit.org/Content/Index?externalId=en-US_ala-f20ae004-4439-34d2-b836-5b15e452779c

We also discussed making these properties datatype properties, just supplying a title or authorized access point for the manifestation.  The problem was where to put whatever additional information is contained in the field.   On the other hand, what value would there be to minting IRIs for manifestations where we would have skimpy information to supply?  Until there are opportunities for reconciliation with fuller manifestation descriptions from elsewhere...

I would not mint any Manifestation based on 534.
I would either create a note on manifestation copying $p (e.g., Original version: ) and then the rest of 534 subfields using a specific order and punctuation.
An alternative would be to use the datatype property rdamd:P30024 "has equivalent manifestation"
If $p includes a text that reveals one of the rdamd:P30024 subproperties, then use the corresponding datatype property. Still the order of subfields and punctuation need to be specified.

Examples worked out during meeting: 2023-10-18
534 ##$pOriginally published: $tNorth-west territory. $cToronto : John Lovell, 1859.
[ReprodIRI] rdam:P30024 "equivalent manifestation" [OrigIRI]
[OrigIRI] rdf:type "type" rdac:C10007
[OrigIRI] rdam:P30139 "expression manifested" [ReprodExpressionIRI]
[OrigIRI] rdam:P30134 "title of manifestation" "North-west territory"
[OrigIRI] rdam:P30111 "publication statement" "Toronto : John Lovell, 1859."
245	14$aThe principles of language study / $cby Harold E. Palmer.
534	##$pReprint. Originally published: $cNew York : World Book Company, 1921.
[ReprodIRI] rdam:P30043 "reproduction of manifestation" [OrigIRI]
[OrigIRI] rdf:type "type" rdac:C10007
[OrigIRI] rdam:P30139 "expression manifested" [ReprodExpressionIRI]
[OrigIRI] rdam:P30134 "title of manifestation" "The principles of language study"
[OrigIRI] rdam:P30111 "publication statement" "New York : World Book Company, 1921."
OR
[ReprodIRI] rdam:P30043 "reproduction of manifestation" [OrigIRI]
[OrigIRI] rdf:type "type" rdac:C10007
[OrigIRI] rdam:P30139 "expression manifested" [ReprodExpressionIRI]
[OrigIRI] rdam:P30004 "identifier for manifestation" "OrigIRI"
[OrigIRI] rdam:P30111 "publication statement" "New York : World Book Company, 1921."

Group notes and mapping sketch in this document: https://docs.google.com/document/d/1RN5KzX4TuyUIUs-8TsBocbDd-nIINJ0WE9kqy6YLtKU/edit?usp=sharing
I filled out the spreadsheet according to group discussions of the past two weeks today. Ready for Theo to do transformation work. Great job everyone!

My 2 cents:  I agree.  Decisions are unclear.  Looks like we had alternative mappings and didn't delete one (or two..?).
Looking at the example 534's in the LC documentation for 534, I am strongly leaning toward leaving these as P30137 "Has note on manifestation" and not minting IRIs.
Having to assume author/title are same as the reproduction, trying to parse out place, publisher, date from ISBD punctuation, having most elements of a core description lacking in many cases - lots of assumptions to create enough of a description to go with our minted IRI to be worth it, let alone to provide enough data to be able to reconcile against  an actual manifestation descriptions of the "original".   (With 533 it's likely a different story, since so many of the other MARC elements in the record have been cloned from the original's MARC description.)
We could revisit this in Phase 2, especially if we heard protests from consumers of our product.
If a 775 - Other Edition Entry or 787 Other Relationship was also present I might feel differently about minting an IRI, taking data from the 775,  and using presence of 534 to indicate the relationship  P30043  "Is reproduction of manifestation of".   This may not be likely to happen, but subfield i "relationship information" which might be expected to have something  useful like the example "Reproduction of (manifestation):" may not be present in records created before it was included in MARC.  If it is present, then likely the 534 would not be added since it'd be redundant.
It'd be nice to use P30043 but just have the 534 stringified note as the object of it, but I don't think the rules allow that; either unstructured Title or structured Access point, or identifier...  but not the other stuff.  Since we don't have "note types", I guess P30137 will have to do.  We could a P30335 Category of Manifestation = "reproduction" which as far as I know isn't in any VES...  is it?
If we get to flagging conversions for human review at this pass, I'd say any with 533, 534 or other reproduction data patterns we might encounter would be candidates for a special flag.
Laura

From: Cypress @.>
Sent: Wednesday, May 22, 2024 3:27 PM
To: uwlib-cams/MARC2RDA @.>
Cc: Laura Akerman @.>; Assign @.>
Subject: [External] Re: [uwlib-cams/MARC2RDA] 534 original version note (Issue #208)
534 Decisions are unclear. Are we mapping to an original version note or minting an IRI?
—
Reply to this email directly, view it on GitHubhttps://github.com/uwlib-cams/MARC2RDA/issues/208#issuecomment-2125592870, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAKBM23KPGCDG74T2QZ67L3ZDTWTBAVCNFSM5IXMCQI2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMJSGU2TSMRYG4YA.
You are receiving this because you were assigned.

We mapped this as a note on manifestation under some conditions (LDR/06-08=ab|ai|as) and as an equivalent manifestation if those conditions are not met. I think the Group notes and mapping sketch in this [document] (https://docs.google.com/document/d/1RN5KzX4TuyUIUs-8TsBocbDd-nIINJ0WE9kqy6YLtKU/edit?usp=sharing) make the spreadsheet and its conditions more clear, but I am the one who filled out the spreadsheet after the group met about this mapping so maybe it only makes sense in my brain. We did two different treatments of this field under two different sets of conditions on purpose, but if we need to revisit those we can do that.

@CECSpecialistI Looking at it now, this makes sense. I was not familiar with what LDR/06-08 referred to. Does 06-08 mean 06 and 08, as in when 06 = a and 08 = b or i or s?

Yes, that!

Sorry the way we write LDR conditions is a little bit funny

@CECSpecialistI
For the "$x if exists is the same as 022 ## $a if exists" condition, should the transform be checking for multiple 022 fields with $a? Or will there only ever be one?

Do you mean LDR/06-07 (Bibliographic level) not 08) ? :-)

Transform on hold until decision is made on whether we are only mapping this as a note on manifestation or if there are certain circumstances where a manifestation is minted.

My vote would be to only map 534 as a note on manifestation. I do not think that sufficient information is provided in most of these notes to allow manifestations that are minted from them to be reliably matched to other descriptions of those manifestations.
I have put two files of records containing 534 fields at:

534_UW
534_LC.txt

Agreed with Deborah. It would also kind of odd to mint a manifestation for the original publication if a library does not have a holdings of. If the library does have a copy of the original publication, we would be making a duplicate.

Some strange uses of 534, such as:
130 0  $a Storia della bellezza. $l French.
245 10 $a Histoire de la beauté / $c sous la direction de Umberto Eco ; traduit de l'italien par Myriem Bouzaher ; traduit du latin et du grec par François Rosso.
260    $a Paris : $b Flammarion, $c ©2004.
300    $a 438 pages : $b illustrations (some color) ; $c 25 cm
337    $a unmediated $b n $2 rdamedia
534    $p Traduit de l'italien: $c Milan, Bompiani, 2004, $t Storia della bellezza.
655  7 $a History. $2 fast $0 (OCoLC)fst01411628
700 1  $a Eco, Umberto.
I've changed the 534 to a 500 note:
500  $a Translation of the Italian publication: Storia della bellezza. Milan : Bompiani, 2004.
Since this isn't a reproduction, 534 was inappropriate.  It also shouldn't have had a note in French, when 040 $b = eng.
Adam
Adam L. Schiff
Principal Cataloger
University of Washington Libraries
(206) 543-8409
@.***

From: Deborah Fritz @.>
Sent: Wednesday, May 29, 2024 1:36 PM
To: uwlib-cams/MARC2RDA @.>
Cc: Adam L Schiff @.>; Assign @.>
Subject: Re: [uwlib-cams/MARC2RDA] 534 original version note (Issue #208)
My vote would be to only map 534 as a note on manifestation. I do not think that sufficient information is provided in most of these notes to allow manifestations that are minted from them to be reliably matched to other descriptions of those manifestations.
I have put two files of records containing 534 fields at:

534_UWhttps://urldefense.com/v3/__https://drive.google.com/drive/folders/1m5tP46eD2E00T5RBQ5qfOwzeDXvRANAn__;!!K-Hz7m0Vt54!gPhew7pqGRifeYzsCGUvOQf6WGK5NzPx9lxn3XPEBY7YkN_lh0AwHhrR_02y3gU4kWj5AYP-D0Rt6Ta-LLJA70A$
534_LC.txthttps://urldefense.com/v3/__https://drive.google.com/drive/folders/1m5tP46eD2E00T5RBQ5qfOwzeDXvRANAn__;!!K-Hz7m0Vt54!gPhew7pqGRifeYzsCGUvOQf6WGK5NzPx9lxn3XPEBY7YkN_lh0AwHhrR_02y3gU4kWj5AYP-D0Rt6Ta-LLJA70A$

—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/uwlib-cams/MARC2RDA/issues/208*issuecomment-2138220994__;Iw!!K-Hz7m0Vt54!gPhew7pqGRifeYzsCGUvOQf6WGK5NzPx9lxn3XPEBY7YkN_lh0AwHhrR_02y3gU4kWj5AYP-D0Rt6Ta-XDI0bbk$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ADFBVBZ5MLALXL24P3LFYVLZEY34BAVCNFSM5IXMCQI2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMJTHAZDEMBZHE2A__;!!K-Hz7m0Vt54!gPhew7pqGRifeYzsCGUvOQf6WGK5NzPx9lxn3XPEBY7YkN_lh0AwHhrR_02y3gU4kWj5AYP-D0Rt6Ta-dd0dIN4$.
You are receiving this because you were assigned.Message ID: @.***>

Now that I've agreed with Deborah, I'm starting to lean in the opposite direction.  If there's enough data to identify the original (maybe, if $p contains the string "original" and place, publisher and date of publication can be parsed from $c based on ISBD punctuation), minting an IRI for it and breaking out those properties would give the advantage of potential searchability.  Users looking for the original could be alerted to the availability of the reproduction.  Discovery systems are going to have to change to properly deal with RDA relationships, particularly WEMI relationships.
However, we keep coming up with these flaky 534 examples and I wonder what percentage of the 534's (and 533's) are like that.  Seems like catalogers who didn't find a field to express something in MARC at the time, just picked another tag and got creative...

I think we should provisionally map the 534 as a note on manifestation, and consider revisiting the decision during Phase II. We've already potentially bitten off more than we can chew with reproductions with the 533 for phase I, and we are too pressed for time to realistically make an attempt to do anything besides a note on manifestation for the 534 in 2024.

@CECSpecialistI We have made the decision to provisionally map this as note on manifestation. Is someone able to update the google sheet and move this to ready for transform?


openssl 1.0.2j does not build with no-ec no-dh

The following configuration does not build with openssl 1.0.2 but it did work with 1.0.1:
./config no-ec no-dh
make depend && make
ake[1]: Entering directory /home/ed/OPC/openssl-1.0.2j/ssl' gcc -I../crypto -I.. -I../include  -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--noexecstack -m64 -DL_ENDIAN -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM   -c -o ssl_cert.o ssl_cert.c ssl_cert.c: In function 'ssl_cert_dup': ssl_cert.c:390:9: error: label 'err' used but not defined make[1]: *** [ssl_cert.o] Error 1 make[1]: Leaving directory /home/ed/OPC/openssl-1.0.2j/ssl'
make: *** [build_ssl] Error 1
build succeeds with the following patch:
--- ssl/ssl_cert.c.orig	2016-09-26 11:49:07.000000000 +0200
+++ ssl/ssl_cert.c	2016-12-14 08:02:08.283175581 +0100
@@ -392,7 +392,7 @@ CERT *ssl_cert_dup(CERT *cert)

     return (ret);

-#if !defined(OPENSSL_NO_DH) || !defined(OPENSSL_NO_ECDH)
+#if !defined(OPENSSL_NO_DH) || !defined(OPENSSL_NO_ECDH) || !defined(OPENSSL_NO_TLSEXT)
  err:
 #endif
 #ifndef OPENSSL_NO_RSA

Actually, the correct thing to do is to remove the conditional around the lable entirely.  There is unconditional code with goto err;...

yes, indeed.  Thanks.

one more thing,
I think in line 318 the return (NULL) should also be a goto err;
right?

That's right, thanks for pointing that out.

Fixes for both got merged into the 1.0.2 branch moments ago.  They will appear in the next 1.0.2 release.
Thank you.
Closing this.


fix load to setup the asset properly with the Api

this is actually required for the upload thumbnail, I'll need to update the vendor accordingly


Notifier DismissProgressDialog closes all dialogs on iOS

Describe the bug
From the forum: Using the DismissProgressDialog block will dismiss dialogs of types other than the progress dialog.
Affects

[ ] Designer
[ ] Blocks editor
[ ] Projects Explorer
[x] Companion
[ ] Compiled apps
[ ] Buildserver
[ ] Debugging
[ ] Other... (please describe)

Expected behavior
The DismissProgressDialog block should only close an active progress dialog.
Steps to reproduce
TBD

@ewpatton I pulled down the test app on the community thread linked in the issue, and this branch does not seem to affect the user's example. Ferran_SIMON's app opens a progress dialog and a choose dialog at the same time. They appear on top of each other in both Android and iOS, with whichever dialog was created last on top.
In Android, if you dismiss one dialog, you see the second one underneath. In iOS, if you dismiss one dialog, they both go away.
This may not be the same as the issue discussed by the power users.

I think the challenge of handling multiple notifier presentations is a separate issue that will need to be addressed. This PR is specifically addressing the semantics around DismissProgressDialog.


Could you add a command for administrators to check users' e-mail address?

Could you add a command for administrators to check users' e-mail address? If the server doesn't set mysql, it is impossible for administrators to check users' passport, e-mail address, etc. It is not convienient very much.

Viewing the password is too dangerous. The admin shouldn't know the password of the users. That's why you hash it.

If the server doesn't set mysql, it is impossible for administrators to check users' passport, e-mail address, etc. It is not convienient very much.

You could use H2 database browser. I love to use SQLiteman for SQLite database and SquirellSQL for for everything else except MySQL.


How to create async Timed background tasks

This document only covered how to create a timed background task using synchronous programming. I've been using async all the way through my program and converting a task to void or calling .Result has it's issues. Is there an example that can be provided that can avoid these issues for a timed service?

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

ID: c3460b0d-9c60-3a06-ac63-18cf990e53c3
Version Independent ID: b2dece1f-15b8-03af-6d52-7cc070432b4b
Content: Background tasks with hosted services in ASP.NET Core
Content Source: aspnetcore/fundamentals/host/hosted-services.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

You can go async by
...
_timer = new Timer(async _ => await DoWorkAsync(), null, TimeSpan.Zero, TimeSpan.FromSeconds(5));
...

private static async Task DoWorkAsync()
{
    ...
}

Just take care that no unhandled exception bubbles up to the async lambda passed to the timer.

For .NET 6 with the introduction of the PeriodicTimer I'd propose to update the "template" given in the docs to
public class TimedHostedService : BackgroundService
{
    private int executionCount = 0;
    private readonly ILogger<TimedHostedService> _logger;
    private Timer _timer = null!;

    public TimedHostedService(ILogger<TimedHostedService> logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        _logger.LogInformation("Timed Hosted Service running.");

        // When the timer should have no due-time, then do the work once now.
        DoWork();

        using PeriodicTimer timer = new(TimeSpan.FromSeconds(5));

        while (await timer.WaitForNextTickAsync(stoppingToken))
        {
            DoWork();
        }

        _logger.LogInformation("Timed Hosted Service is stopping.");
    }

    // Could also be a async method, that can be awaited in ExecuteAsync above
    private void DoWork()
    {
        int count = Interlocked.Increment(ref executionCount);

        _logger.LogInformation("Timed Hosted Service is working. Count: {Count}", count);
    }
}

I can submit a PR if this approach seems fine (I use this one in a similar way for quite some time in production).

@gfoidl can you create a sample in https://github.com/dotnet/AspNetCore.Docs.Samples/tree/main/fundamentals/host?

@gfoidl  are you still interested in writing the sample code?

Oh, sorry I missed the comment from 1st Oct 2022.
Yeah, I can create the sample in a week or two (at the moment a bit busy).

Awesome. No hurry.

@gfoidl just checking in.

@Rick-Anderson did you means something like https://github.com/dotnet/AspNetCore.Docs.Samples/pull/117?

Sorry for not being more active 😞, but in winter it's a bit busy for me 😃

Fixed in https://github.com/dotnet/AspNetCore.Docs.Samples/pull/117

@Rick-Anderson Why was this closed? The code snippet in the PR never made it to the documentation page that I initially created the issue for.

@Rick-Anderson Why was this closed? The code snippet in the PR never made it to the documentation page that I initially created the issue for.

Sorry, see #28533

@Rick-Anderson Thanks! I appreciate it.

Im using the BackgroundService - is it possible to have multiple task in one background service in .net core with different timer duration:
FirstLoop - execute every second
SecondLoop - execute every minute
ThirdLoop - execute every hour
ForthLoop - execute every day
For some reason only the FirstLoop is been executed and every loop after it is not been executed. What are my options to make this work?
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
if (double.TryParse(_configuration["FirstLoop"], out double firstLoopExecution))
{
using PeriodicTimer timer = new PeriodicTimer(TimeSpan.FromSeconds(firstLoopExecution));
while (!stoppingToken.IsCancellationRequested &&
await timer.WaitForNextTickAsync(stoppingToken))
{
//Wrap any invocations inside this while loop into a try catch so that when one run of the while loop fails, it doesn’t break the entire method meaning the periodic loop continues
try
{
await DoFirstWorkAsync();
}
catch (Exception ex)
{
_logger.LogError("Error in first loop , " + ex.Message + ", InnerException ex:" + ex.GetOriginalException()?.Message + ", stackTrace:" + ex.StackTrace);
}
    }
}
else
{
    _logger.LogError("Missing FirstLoop configuration");
}

if (double.TryParse(_configuration["SecondLoop"], out double secondLoopExecution))
{
    using PeriodicTimer timer = new PeriodicTimer(TimeSpan.FromSeconds(secondLoopExecution));
    while (!stoppingToken.IsCancellationRequested &&
        await timer.WaitForNextTickAsync(stoppingToken))
    {
        //Wrap any invocations inside this while loop into a try catch so that when one run of the while loop fails, it doesn’t break the entire method meaning the periodic loop continues
        try
        {
            await DoSecondWorkAsync();
        }
        catch (Exception ex)
        {
            _logger.LogError("Error in second loop , " + ex.Message + ", InnerException ex:" + ex.GetOriginalException()?.Message + ", stackTrace:" + ex.StackTrace);
        }

    }
}
else
{
    _logger.LogError("Missing SecondtLoop configuration");
}

if (double.TryParse(_configuration["ThirdLoop"], out double thirdLoopExecution))
{
    using PeriodicTimer timer = new PeriodicTimer(TimeSpan.FromSeconds(thirdLoopExecution));
    while (!stoppingToken.IsCancellationRequested &&
        await timer.WaitForNextTickAsync(stoppingToken))
    {
        //Wrap any invocations inside this while loop into a try catch so that when one run of the while loop fails, it doesn’t break the entire method meaning the periodic loop continues
        try
        {
            await DoThirdWorkAsync();
        }
        catch (Exception ex)
        {
            _logger.LogError("Error in first loop , " + ex.Message + ", InnerException ex:" + ex.GetOriginalException()?.Message + ", stackTrace:" + ex.StackTrace);
        }

    }
}
else
{
    _logger.LogError("Missing ThirdLoop configuration");
}

if (double.TryParse(_configuration["ForthLoop"], out double forthLoopExecution))
{
using PeriodicTimer timer = new PeriodicTimer(TimeSpan.FromSeconds(forthLoopExecution));
while (!stoppingToken.IsCancellationRequested &&
await timer.WaitForNextTickAsync(stoppingToken))
{
//Wrap any invocations inside this while loop into a try catch so that when one run of the while loop fails, it doesn’t break the entire method meaning the periodic loop continues
try
{
await DoForthWorkAsync();
}
catch (Exception ex)
{
_logger.LogError("Error in first loop , " + ex.Message + ", InnerException ex:" + ex.GetOriginalException()?.Message + ", stackTrace:" + ex.StackTrace);
}
    }
}
else
{
    _logger.LogError("Missing ForthLoop configuration");
}

}


Better splitting of the mighty edpm-deploy.yml playbook

Splitting it like that would allow to get a cleaner overview of the file
content, allowing an easier maintenance later.
This patch also introduces some more top-level parameters, allowing to
activate or not RHOL/CRC and Libvirt supports.
Depends-On: #64

recheck
Weird.... "merge conflict" while branch is 100% up-to-date compared to main

/recheck

/hold
Need to check something first - I think I can make it even better.

/unhold


Rewrite ThreadPoolWrapper to use atomic pointer

There seems to be no need to have a lock around an option wrapping an Arc - since we have an (allocated) Arc, we can just use its raw pointer for AtomicPtr, and swap it out whenever the pool should be changed.
cc @AndreaCatania

Yep, AtomicPtr is enough

If you want I can do this change, let me know


Resty GWT issue about ArrayIndexOutOfBoundException

,
I am trying call REST call using resty Gwt but it gets arrayIndexOutOfBoundIndex,
But when the same API get a call through postman it gives a correct response,
I am attaching the screenshot kindly check
please provide me a solution

if you can provide a model class which fails here that would be really helpful.
do you use gwt-jackson for then encoding/decoding ?


make install results in warning: 'SecKeychainCreate' is deprecated

I'm observing this error:
$ make install
--> Ensure dependencies have not been modified
GO111MODULE=on go mod verify
all modules verified
--> Installing celestia-appd
# github.com/keybase/go-keychain
cgo-gcc-prolog:81:11: warning: 'SecKeychainCreate' is deprecated: first deprecated in macOS 12.0 - Custom keychain management is no longer supported [-Wdeprecated-declarations]
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecKeychain.h:301:10: note: 'SecKeychainCreate' has been explicitly marked deprecated here
cgo-gcc-prolog:139:11: warning: 'SecKeychainLock' is deprecated: first deprecated in macOS 12.0 - Custom keychain management is no longer supported [-Wdeprecated-declarations]
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecKeychain.h:357:10: note: 'SecKeychainLock' has been explicitly marked deprecated here
cgo-gcc-prolog:159:11: warning: 'SecKeychainOpen' is deprecated: first deprecated in macOS 12.0 - Custom keychain management is no longer supported [-Wdeprecated-declarations]
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecKeychain.h:287:10: note: 'SecKeychainOpen' has been explicitly marked deprecated here
cgo-gcc-prolog:183:11: warning: 'SecKeychainUnlock' is deprecated: first deprecated in macOS 12.0 - Custom keychain management is no longer supported [-Wdeprecated-declarations]
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecKeychain.h:347:10: note: 'SecKeychainUnlock' has been explicitly marked deprecated here
cgo-gcc-prolog:203:11: warning: 'SecTrustedApplicationCreateFromPath' is deprecated: first deprecated in macOS 10.15 - No longer supported [-Wdeprecated-declarations]
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecTrustedApplication.h:59:10: note: 'SecTrustedApplicationCreateFromPath' has been explicitly marked deprecated here

OS: macOS Monterey Version 12.4
Chip: Apple M1 Pro
I recall installing XCode Command Line Tools directly via xcode-select --install.
xcode-select --print-path
/Library/Developer/CommandLineTools

Originally posted by @rootulp in https://github.com/celestiaorg/celestia-app/issues/375#issuecomment-1180809514
^ new issue b/c I couldn't re-open the previous one

Relevant: https://github.com/cosmos/cosmos-sdk/issues/12131


Solution to excersise 3.4 is not correct.

 element missing in solution of exercise 3.4
To Reproduce
Provided solution (below), returns text node directly inside
function MessageComponent({ level, message }) {
  return h('div', { class: `message message--${level}` }, [message])
}

Expected behavior
Text node should be returned inside
 that's inside

(markup from book)

This is an info message

Solution
here is MessageComponent() that returns expected virtual DOM
MessageComponent({ level, message }) {
    return h('div', { class: `message message--${level}` }, [
        h('p', {}, [message]),
    ]);
}

Hi @half-cto, you are completely right.
I fixed the solution in the Wiki. Thanks a lot for writing such a detailed description, and for the feedback.
Best,
Angel


Setting up trusted apps doesn't work without a WindowServer

* chef_gem[AXElements] action install
             - install version ~> 6.0 of package AXElements
       _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
           * mac_app_store_trusted_app[/usr/libexec/sshd-keygen-wrapper] action create

           ================================================================================
           Error executing action `open` on resource 'mac_app_store[default]'
           ================================================================================

           RuntimeError
           ------------

           -------------------------------------------------------------------
           The Application that is running AXElements is not trused to control
           your computer. A window prompting you to grant permission to the
           application should appear right now. Please grant the application
           permission to control your computer and try again.
           -------------------------------------------------------------------

This is on a brand new OS X machine, after running tccutil but before logging into the GUI. Once again, only in Vagrant somehow...?

Switching to a Vagrant box with autologin enabled takes care of this in test. There seems to be no way around it on real machines.