Docker containers dying unexpectedly

We are running some number of docker containers on an ec2 instance and unexpected every container on the machine will quit at the same time.
A single container will get sig kill.  Most containers will get sigterm and then some will exit with a 0 exit code.
The logs for the containers do not list why they exited nor could I find any information about the sudden exit in dmesg or kern.log.
This is on an xlarge instance with 4 vcpus and 16GB of ram. The images are running in the absolute default configuration and I have not attempted to change any docker logging configurations.  My initial suspicion is that the json logger is eating some ram and then the system asks the daemon to reduce memory usage and it responds by killing/stoppping all running containers.
Is this a likely scenario?
ubuntu@pi-test-1:~$ sudo docker version
Client:
 Version:      1.8.3
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   f4bf5c7
 Built:        Mon Oct 12 05:37:18 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.3
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   f4bf5c7
 Built:        Mon Oct 12 05:37:18 UTC 2015
 OS/Arch:      linux/amd64

ubuntu@pi-test-1:~$ sudo docker info
Containers: 14
Images: 179
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 207
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-53-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 4
Total Memory: 15.67 GiB
Name: pi-test-1
ID: MND3:FVQK:XMYF:O2BT:7O23:UEAA:WC2N:NJUJ:A6IV:WO2A:T67U:ULVK
WARNING: No swap limit support
Labels:
 provider=amazonec2

Linux pi-test-1 3.13.0-53-generic #89-Ubuntu SMP Wed May 20 10:34:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

daemons_elasticsearch_1     0.25%               282.4 MB/16.83 GB   1.68%               4.499 MB/5.123 MB
daemons_grafana_1           0.00%               8.647 MB/16.83 GB   0.05%               170.2 kB/2.038 MB
daemons_influxdb_1          0.07%               9.839 MB/16.83 GB   0.06%               89.16 kB/502.8 kB
daemons_kafka_1             0.18%               248.3 MB/16.83 GB   1.48%               617.6 kB/953.2 kB
daemons_kibana_1            0.00%               65.04 MB/16.83 GB   0.39%               74.44 kB/27.76 kB
daemons_logstash_1          0.26%               388.1 MB/16.83 GB   2.31%               5.143 MB/4.424 MB
daemons_zookeeper_1         0.05%               92.02 MB/16.83 GB   0.55%               1.001 MB/571.4 kB
datomic                     0.14%               1.737 GB/16.83 GB   10.32%              136 MB/220.9 MB
webapp_cncatalog_1          0.07%               2.674 GB/16.83 GB   15.89%              92.21 MB/13.62 MB
webapp_cnfashionmanager_1   0.05%               497.2 MB/16.83 GB   2.95%               134.2 kB/7.001 MB

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

Is docker being shut down for some reason?
Can you provide the daemon logs for when this happens?

I have faced the same issue.
docker version
Client:
Version:      1.8.3
API version:  1.20
Go version:   go1.4.2
Git commit:   f4bf5c7
Built:        Mon Oct 12 05:37:18 UTC 2015
OS/Arch:      linux/amd64
Server:
Version:      1.8.3
API version:  1.20
Go version:   go1.4.2
Git commit:   f4bf5c7
Built:        Mon Oct 12 05:37:18 UTC 2015
OS/Arch:      linux/amd64
docker info
Containers: 18
Images: 1
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 37
Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-65-generic
Operating System: Ubuntu 14.04.3 LTS
CPUs: 8
Total Memory: 15.67 GiB
Name: comet
ID: JL2N:XZSH:EMQL:GCZK:6LKM:363I:ZCXK:3N4W:NV5X:6FGP:R5DZ:BMSP
WARNING: No swap limit support
root@comet:~/docker-build-image# uname -a
Linux comet 3.13.0-65-generic #106-Ubuntu SMP Fri Oct 2 22:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
docker image
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
sd-with-sync        5.4                 61363e96238b        16 hours ago        5.942 GB
List the steps to reproduce the issue:

Created an image with a size of 6GB.
Made Ubuntu 14.04.3 LTS in bridge mode .
Started 18 docker instances from the same image.
Image is built with monitrc entrypoint script that starts portmap, ypbind, sshd and postfix daemons.
Docker runs as root user.
Containers are mounted 3 numbers host volumes, which are NFS mounted into the host.
Used nsenter to assign unique IP address to each containers.
root user does not have read permission to all the mounted volumes.
But the NIS ssh user has read/write access to the mounted volumes.
When ssh login into the docker instances which specific username, all the mounted volumes were accessible.
After 24 hours, observed that 2 containers are down out of 18 containers.

start.sh -- The script that starts the 17 containers.
while read line;do
ip=echo $line | awk '{print $1}'
name=echo $line | awk '{print $2}'
echo $ip
echo $name
/usr/bin/docker run -h ${name} --name=${name} -v /tools:/tools -v /home/build:/home/build -v /home/release:/home/release -v /release2:/release2 -v /sd_release:/sd_release --net="none" -d /usr/bin/docker images | awk '{print $3}' | tail -n1 /bin/entrypoint.sh
ip link del ${name}-ext
ip link add ${name}-int type veth peer name ${name}-ext
brctl addif br0 ${name}-ext
ip link set ${name}-ext up
ip link set netns $(docker-pid ${name}) dev ${name}-int
nsenter -t $(docker-pid ${name}) -n ip link set ${name}-int up
nsenter -t $(docker-pid ${name}) -n ip addr add ${ip}/18 brd + dev ${name}-int
nsenter -t $(docker-pid ${name}) -n ip route del default
nsenter -t $(docker-pid ${name}) -n ip route add default via <IP_ADDRESS> dev ${name}-int
sleep 1
curl --user myuser:mypassword -X POST -d "action=restart" http://${ip}:2812/ypbind > /dev/null 2>&1
done < hosts
hosts file contents
==============================================================================
<IP_ADDRESS> jupiter jupiter.xyz.com
<IP_ADDRESS> s1-d s1-d.xyz.com
<IP_ADDRESS> s2-d s2-d.xyz.com
<IP_ADDRESS> s3-d s3-d.xyz.com
<IP_ADDRESS> s4-d s4-d.xyz.com
<IP_ADDRESS> s5-d s5-d.xyz.com
<IP_ADDRESS> s6-d s6-d.xyz.com
<IP_ADDRESS> s7-d s7-d.xyz.com
<IP_ADDRESS> s8-d s8-d.xyz.com
<IP_ADDRESS> s9-d s9-d.xyz.com
<IP_ADDRESS> s10-d s10-d.xyz.com
<IP_ADDRESS> s11-d s11-d.xyz.com
<IP_ADDRESS> s12-d s12-d.xyz.com
<IP_ADDRESS> s13-d s13-d.xyz.com
<IP_ADDRESS> s14-d s14-d.xyz.com
<IP_ADDRESS> s15-d s15-d.xyz.com
<IP_ADDRESS> s16-d s16-d.xyz.com
<IP_ADDRESS> s17-d s17-d.xyz.com
entrypoint.sh content below
==============================================================================
#!/bin/bash
cat /root/hosts >> /etc/hosts
cat /root/resolv.conf > /etc/resolv.conf
exec /usr/bin/monit -d 10 -Ic /etc/monitrc
monitrc content below
set init
set httpd
port 2812
allow myuser:mypassword
check process sshd with pidfile /var/run/sshd.pid
every 2 cycles
start program = "/etc/init.d/sshd start"
stop program = "/etc/init.d/sshd stop"
check process portmapd
matching "portmap"
start program = "/etc/init.d/portmap start"
stop program = "/etc/init.d/portmap stop"
check process  ypbind with pidfile /var/run/ypbind.pid
every 2 cycles
start program = "/etc/init.d/ypbind start"
stop program = "/etc/init.d/ypbind stop"
check process  postfix with pidfile /var/spool/postfix/pid/master.pid
every 2 cycles
start program = "/etc/init.d/postfix start"
stop program = "/etc/init.d/postfix stop"
==============================================================================

@malayamanas 1 or 2 containers dying is very much different from all containers dying.

@cpuguy83 Should I create a new issue to track ?
Please let me know if there is any option to increase the vervosity of docker process logs to know what is going under the hood.
Thanks

@malayamanas This would probably be more appropriate for #docker on IRC, or the docker-user mailing list.
To increase verbosity, pass -D to the docker daemon options and restart docker.

@cpuguy83 I did try in IRC channel for help, but did not get any response from anyone !!!
But there are kern.log entries that points to apparmor.
Oct 25 08:24:01 comet kernel: [279212.461808] type=1400 audit(1445786641.841:6546499): apparmor="DENIED" operation="ptrace" profile="docker-default" pid=26849 comm="monit" requested_mask="trace" denied_mask="trace" peer="docker-default"
Can anyone please guide to resolve this ?

Why might it receive this signal?  IT wasn't sent manually, so apparmour or some system watchdog (process memory?) sent it.

I'm going to close this since it looks like something external sent docker SIGTERM.
As to what might have sent SIGTERM, not sure. I doubt it was a watchdog unless you've got something implemented here.


Move Label component out of Input folder and let it accept for Typography "types"

It seems Label can be used not only for Input-based types but also for other cases such as Select. I suggest to:

[ ] Move Label to its own folder.
[ ] Let Label accept different type props, so the Typography color it is using is more flexible. Currently it can only be either secondary or primary, which is not enough for Select for example.

Make sure these boxes are ticked before submitting a new issue:

[x] I have checked that this is not a duplicate
[x] I have added a label categorizing this under BLKN | Kiwicom | Icons | Global

@darkwindcz Can I close it ? <FormLabel /> is available since #219

@tomashapl I think you can.

@tomashapl Yes


Fix Rust build caching by using absolute paths

We've had Lighthouse users on Discord reporting linking errors related to blst for a while, which would always be solved by cargo clean and a rebuild (suggesting a build caching issue). Today it happened to me and I decided to investigate.
I found that the build script's use of ../.. was causing the C compiler to reach out of the sandbox (OUT_DIR) given to it by Cargo, and into a path shared by all Cargo packages that shouldn't be modified from a build script. One of the compiler invocations it was making was:
running: "cc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-mno-avx" "-Wno-unused-command-line-argument" "-D__ADX__" "-o" "/home/michael/Programming/lighthouse3/target/release/build/blst-b4fcc12bd32c5abb/out/../../src/server.o" "-c" "../../src/server.c"

Note the ../.. in the -o argument that causes files to be written to target/release/build/src/server.o. If there are multiple versions of blst in the build cache (due to updates, etc), then they share these files, and I think that must confuse Cargo (unfortunately I can't describe an exact mechanism of action here). The Cargo docs have this to say:

Build scripts may save any output files in the directory specified in the OUT_DIR environment variable. Scripts should not modify any files outside of that directory.

In an attempt to fix it, I've switched to using absolute paths, and can confirm that the compiler invocations look more sensible now:
running: "cc" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-Wall" "-Wextra" "-mno-avx" "-Wno-unused-command-line-argument" "-D__ADX__" "-o" "/home/michael/Programming/blst/bindings/rust/target/release/build/blst-aa4544c2724aab9e/out/server.o" "-c" "/home/michael/Programming/blst/src/server.c"

And server.o ends up in OUT_DIR instead of its previous location. I hope this is the only build caching issue, and alleviates the problems our users have been facing :crossed_fingers:

I deleted the commented out code for bindgen, as that seems to be covered by build.sh now, but I'm happy to put it back if you'd like to keep it.
I contemplated deleting the override mechanism for local libblast.a and blst, but figured they were harmless because we never use them downstream, and they may be useful for you.

Cool! Thanks! I took liberty to align commentary with rustfmt.toml. And it also allowed to clean up CI scripts... In other words, merged. Thanks again:-)

Awesome, thanks!


wav2vec2-fs model for chinese alignment?

Hello, from your paper, it seems that the W2V2-FS‘s alignment is better than the W2V2-FC's, but now there is English W2V2_FS model only . Have you tested the W2V2-FS alignment Chinese? If you don't have a test, I'd like to train one to test
also I would like to know the specific steps of training. I have read your training code but I don't know what dataset I should used.
I'd like use W2V2-FS to replace the MFA
(sorry for my bad English)

Sorry for the late reply.
The original training data for English can be found here and here. I've lost the Chinese data after graduation from UMich. However, you can create such training data by using MFA or FS model using data from OpenSLR. You can also use these data to get started.

Sorry for the late reply.
The original training data for English can be found here and here. I've lost the Chinese data after graduation from UMich. However, you can create such training data by using MFA or FS model using data from OpenSLR. You can also use these data to get started.

Thanks for your reply I am trying to train the attention_aligner  (wav2vec2-fs not wav2vec2-fc) I have trained the required BertMaskedLM but I dont konw this:
weights = torch.load('. /models/neural_attention_aligner_forwardsum_10ms_true_quantizer.pt').state_dict()
from
It looks like it will load neural_attention_aligner_forwardsum_10ms_true_quantizer.pt but I don't have that weight so I'm wondering what this is.

Hello, from your paper, it seems that the W2V2-FS‘s alignment is better than the W2V2-FC's, but now there is English W2V2_FS model only . Have you tested the W2V2-FS alignment Chinese? If you don't have a test, I'd like to train one to test also I would like to know the specific steps of training. I have read your training code but I don't know what dataset I should used. I'd like use W2V2-FS to replace the MFA (sorry for my bad English)

I just try to use W2V2-FS to replace the MFA.  Any progress do you have?  What about the performance on Chinese data？


Per-page layouts are not rendering

I'm using per-page layouts as described here https://nextjs.org/docs/basic-features/layouts#per-page-layouts and when I use them with next-translate the layout is not rendering. Can I get some help? Thank you very much
nextJS version: 11.1.2 and 12.0.1 (tried both)
next-translate version: 1.1.1
// Layout.tsx

export const Layout = ({ children }: PropsWithChildren<unknown>): JSX.Element => {
  return (
    <main>
      {children}
    </main>
  );
};

// index.tsx

import { Layout } from '@components';

const Home = (): JSX.Element => {
  const { t } = useTranslation();

  return (
    <div>
        {t('home:description')}
    </div>
  );
};

Home.getLayout = (page: PageProps) => <Layout>{page}</Layout>;

export default Home;

// _app.tsx

function MyApp({ Component, pageProps }: Props): JSX.Element {
  const getLayout = Component.getLayout || ((page) => page);

  return getLayout(
    <>
      <CssBaseline />
      <Component {...pageProps} />
    </>
  );
}

export default MyApp;

@carlosriveroib Can you try to add hoist-non-react-statics to copy the statics properties of components getLayout?

docs: https://github.com/vinissimus/next-translate/blob/master/docs/hoist-non-react-statics.md

It's not included by default in order not to include more kb than necessary (static values different than getInitialProps in the pages are rarely used).
I hope it works.

Hi @aralroca, thanks for your answer. I just tried and still not working.
This is my i18n.js config file
const hoistNonReactStatics = require('hoist-non-react-statics');

module.exports = {
  locales: ['en', 'es'],
  defaultLocale: 'en',
  pages: {
    '*': ['common'],
    '/': ['home'],
    staticsHoc: hoistNonReactStatics,
  },
  loadLocaleFrom: (locale, namespace) =>
    import(`./src/i18n/translations/${locale}/${namespace}`).then((m) => m.default),
};

and my next.config.js
const nextTranslate = require('next-translate');

module.exports = nextTranslate({
  images: {
    formats: ['image/avif', 'image/webp'],
  },
  reactStrictMode: true,
});

Change this:
odule.exports = {
  locales: ['en', 'es'],
  defaultLocale: 'en',
  pages: {
    '*': ['common'],
    '/': ['home'],
-    staticsHoc: hoistNonReactStatics,
  },
+ staticsHoc: hoistNonReactStatics,
  loadLocaleFrom: (locale, namespace) =>
    import(`./src/i18n/translations/${locale}/${namespace}`).then((m) => m.default),
};

Ok, now is working. So sorry, I didn't realize about that huge mistake...
Now it's working.
On the other hand, do you recommend me that? Should I avoid this? What will be a better approach to handle this?
Thank you

no problem, we all make mistakes ! I'm glad it's working for you then. I close the issue

do you recommend me that? Should I avoid this?

It's good that you do it this way, it doesn't take up that much hoist-non-react-statics (1.2kb) and it's used by most libraries that use HOC to copy everything.

Thanks @aralroca for this solution!


Fix domain name acquisition problem

Fix the domain name judgment issue of AliYun and Tencent Cloud, change it to get from the interface.
@LEIRONGHUA https://github.com/win-acme/win-acme/issues/2537

Hi @zgcwkj - the best practise for this bug that you're trying to fix is to use the helper method from the common base class, which is FindBestMatch (https://github.com/search?q=repo%3Awin-acme%2Fwin-acme FindBestMatch&type=code). It will return the most closely matching zone given the required record. This also helps support scenarios where subdomains have their own zone and such.


XGBoost is complaining about get_prams

What is the bug?
Using XGBoost causes the following error
/usr/local/anaconda3/envs/interview/lib/python3.6/site-packages/xgboost/sklearn.py in get_params(self, deep)
    300         cp.__class__ = cp.__class__.__bases__[0]
--> 301         params.update(cp.__class__.get_params(cp, deep))
    302         # if kwargs is a dict, update params accordingly

AttributeError: type object 'Step' has no attribute 'get_params'

How to reproduce it?
import pandas as pd
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from baikal import Input, Model, make_step
from baikal.plot import plot_model
from baikal.steps import Stack
from xgboost import XGBClassifier

# load data
df = pd.read_csv(
    'https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv',
    header=None)
dataset = df.values

x = Input()
y = Input()

xgbStep = make_step(XGBClassifier)()(x, y)
model = Model(x, xgbStep, y)
model.fit(dataset[:,0:8], dataset[:,8])

What behavior did you expect?
It should have without any issue
What versions are you using?

baikal==0.4.1
scikit-learn==0.23.1
xgboost==1.1.1

It seems the problem is with the XGBoost library (over here). It explicitly calling get_params on Step class as it's using bases[0]. I will appreciate if you can suggest any solution to fix this.

I was able to avoid the problem for now by replacing the above-mentioned line with the below logic.
        cp = copy.copy(self)
        tmp = copy.copy(self)
        found = False
        for base in tmp.__class__.__bases__:
            try:
                cp.__class__ = base
                params.update(cp.__class__.__bases__[0].get_params(cp, deep))
                found = True
                break
            except Exception as ex:
                continue

        # cp.__class__ = cp.__class__.__bases__[0]
        if not found:
            raise AttributeError("get_params not found")

@ragrawal
Thank you for this report!
These bug seems more tricky than other one you reported :/  It seems that nothing can be done on baikal's side as it assumes that the base class the step inherits from is a class that implements the scikit-learn API (by inheriting from BaseEstimator in the usual case) without fiddling with  the __bases__ attribute.
Most likely the fix must be done on xgboost side, but I have to study a bit more the internals of that implementation to see what can be done about it. Coincidentally, this is related to this discussion.
While it is certainly not ideal, you may use that workaround while we come up with a solution.

Hello,
I haven't tried but it's worth checking the module xgboost.sklearn which will probably help you out because it is implemented like any other scikit learn model.
So your import should be:
from xgboost.sklearn import XGBClassifier
I hope it'll help 😉

For anyone else struggling with it, here is an easier solution. Just add this line early in the code
setattr(Step, 'get_params', dict)

@alegonz
Starting this discussion again. Can you explain why the below function errors out when I don't use setattr(Step, ... line
import pandas as pd
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from baikal import Input, Model, make_step
from baikal.plot import plot_model
from baikal.steps import Stack
from xgboost import XGBClassifier

setattr(Step, 'get_params', dict)

# load data
df = pd.DataFrame({'target': [1, 1, 2, 2, 3, 3],
                         'feat1': [1, 2, 3, 4, 5, 6],
                         'feat2': [1, 2, 3, 2, 3, 4]})
dataset = df.values

x = Input()
y = Input()

xgbStep = make_step(XGBClassifier)()(x, y)
model = Model(x, xgbStep, y)
model.fit(dataset[:,0:2], dataset[:,2])

any update on this ?

It is the same issue as in the original post.
XGBoost is not inheritance-friendly because it fiddles directly with the __bases__ attribute to access get_params. Since a baikal step has Step in its ancestors, that logic in XGBoost will look for get_params there and won't find it because Step does not define it.
Doing setattr(Step, 'get_params', dict) is definitely wrong because that breaks the get_params mechanism of not only the XGBoost step but all the steps. get_params is important for cloning estimators (e.g. for grid search). Limiting the hack to only the XGBoost step class (e.g. XgbStep = make_step(XGBClassifier); setattr(XgbStep, 'get_params', dict)) is also wrong because that seems to effectively ignore the parameters specified during instantiation (relevant logic here).
As I said in the past, this is not an issue with baikal but rather XGBoost due to that fiddling with __bases__ which makes inherit from it hard. A short-term solution is to define your own get_params appropriately (without inspecting __bases__) and pass that via the attrs_dict of make_step. Something like:
def get_params(self, deep=True):
    # some appropriate logic here
    return params

xgbStep = make_step(XGBClassifier, attrs_dict={"get_params", get_params})

@alegonz will it be possible for you to provide a good working solution for this issue

Here is my another attempt to fix this issue
from baikal import Step, make_step
from xgboost.sklearn import XGBClassifier
import json
import copy
from typing import Union, Optional, List, Dict, Callable, Tuple, Any, TypeVar, Type

class XGBClassifierFix(XGBClassifier):

    def get_params(self, deep=True):
        params = {}
        cp = copy.copy(self)
        cp.__class__ = cp.__class__.__bases__[1]

        cp = copy.copy(self)
        tmp = copy.copy(self)
        found = False
        for base in tmp.__class__.__bases__:
            try:
                cp.__class__ = base
                params.update(cp.__class__.__bases__[0].get_params(cp, deep))
                found = True
                break
            except Exception as ex:
                continue

        # cp.__class__ = cp.__class__.__bases__[0]
        if not found:
            raise AttributeError("get_params not found")

        # if kwargs is a dict, update params accordingly
        if isinstance(self.kwargs, dict):
            params.update(self.kwargs)
        if isinstance(params['random_state'], np.random.RandomState):
            params['random_state'] = params['random_state'].randint(
                np.iinfo(np.int32).max)

        def parse_parameter(value: Any) -> Optional[Union[int, float, str]]:
            for t in (int, float, str):
                try:
                    ret = t(value)
                    return ret
                except ValueError:
                    continue
            return None

        # Get internal parameter values
        try:
            config = json.loads(self.get_booster().save_config())
            stack = [config]
            internal = {}
            while stack:
                obj = stack.pop()
                for k, v in obj.items():
                    if k.endswith('_param'):
                        for p_k, p_v in v.items():
                            internal[p_k] = p_v
                    elif isinstance(v, dict):
                        stack.append(v)

            for k, v in internal.items():
                if k in params.keys() and params[k] is None:
                    params[k] = parse_parameter(v)
        except ValueError:
            pass
        return params

XGBClassifierStep = make_step(XGBClassifierFix, class_name='XGBClassifierStep')

I guess that works, but this is shorter, simpler and more explicit:
class XGBClassifierFix(XGBClassifier):
    def get_params(self, deep=True):
        params = {}
        for cls in [XGBClassifier, XGBModel]:
            assert cls in self.__class__.mro()  # sanity check
            params.update({p: getattr(self, p) for p in cls._get_param_names()})

        # if kwargs is a dict, update params accordingly
        ...

The core part of get_params is to call _get_param_names (extract the parameters names from the signature of __init__) which unfortunately is a @classmethod so this works around it by explicitly getting the parameters of the classes we need (XGBModel and XGBClassifier).

Closing due to inactivity. Feel free to reopen.


Overload Manager: Add loop delay histogram for overload manager resource refresh loop.

Commit Message: : Add loop delay histogram for overload manager resource refresh loop.
Additional Description:
Risk Level: low
Testing: added unit test
Docs Changes: included
Release Notes:  included
Platform Specific Features: n/a
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign @RyanTheOptimist

/retest

Thanks for the review @zuercher.
Yes this is combining both the delay of the timer + the latency for the refresh to run which would capture the latency of the last refresh of resource monitors.
There's currently no metric for the timer delay AFAICT. The underlying context is that given that this runs on the main thread there are times where I expect the timer to be delayed (large config, stat flushing, etc); I'd expect the resource refresh to be mostly negligible compared to that delay / the timer interval.


version: 1.0.4: JSONExportable.update() added + more tests

Codecov Report
Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (03a206a) 74.97% compared to head (b1fb6b4) 77.58%.
Report is 5 commits behind head on main.

Files
Patch %
Lines

src/pydantic_exportables/jsonexportable.py
90.00%
2 Missing :warning:

tests/test_exportable_importable.py
98.07%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #15      +/-   ##
==========================================
+ Coverage   74.97%   77.58%   +2.61%
==========================================
  Files          10       10
  Lines        1011     1053      +42
==========================================
+ Hits          758      817      +59
+ Misses        253      236      -17

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


getting error for freq a, needed for yearly granularity

return np.vstack([feat(dates) for feat in time_features_from_frequency_str(freq)])

File "<array_function internals>", line 6, in vstack
File "D:\autoformer\venv\lib\site-packages\numpy\core\shape_base.py", line 282, in vstack
return _nx.concatenate(arrs, 0)
File "<array_function internals>", line 6, in concatenate
ValueError: need at least one array to concatenate

Hi, thanks for your response.
You can check whether the timestamp of the data is in the form of 2020-01-01 00:10:00.


Articles changed to Calendars, events display on calendar on start date

I did a thing

Need to find a way to show events spanning multiple dates on every date and not just start date


No error authenticating JIRA with incorrect JIRA code

Describe the bug
When I try to authenticate JIRA and use the wrong code, I expect to see some error message (as popup or whatever). But with a  wrong code I only see a 401 in the network tab, but no other information is shown to the user it seems.
What part of Nexus is affected

[x] Fusion
[ ] Delta
[ ] CLI
[ ] Documentation

To Reproduce
Steps to reproduce the behavior, e.g. for Fusion:

Go to some entity
Try to authenticate with JIRA
Use an incorrect code

Expected behavior
I expect to see an error message

Additional context
env: stage
user: adietz

The Jira plugin has been removed as Jira supports now OAuth 2.0


Create jsx-render

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] Feature
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[x] Yes
[ ] No

If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:

[ ] It's submitted to the dev branch for v2.x (or to a previous version branch), not the master branch
[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[x] All tests are passing: https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup
[x] New/updated tests are included

If adding a new feature, the PR's description includes:

[x] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:
Make Vue extends freer
Example
// a.vue
<template>

        other code ...

        <jsx-render render-content="renderContent1" />
        <jsx-render render-content="renderContent1" />
        <jsx-render render-content="renderContent2" />
        other code ...

</template>

// b.vue

For your cases u can use v-html
And this is plain component, u can use render with
https://github.com/vuejs/babel-plugin-transform-vue-jsx
if understand correctly

Thanks for the PR but there is no need to add this component to vue core, it's better as an external utility


Personal data

Hello. You forgot your personal data in MainActivity's comments. Please be careful and change password

thanks


Webview can overlap and block interactions underneath

VSCode Version: 1.23
OS Version: Windows 10 x64

Steps to Reproduce:

Open a webview (might need a fixed internal width) and size the window small enough

As you can see in this image that webview is somehow on top of the explorer views, and it blocks clicking on anything underneath them.

Does this issue occur when all extensions are disabled?: No
//cc @mjbvz

Do you have reliable repo steps? I've not been able to repo this problem

I can still reproduce this. You do need to have the sidebar positioned on the right side though.

Open GitLens settings (or welcome)
Size the vscode window so that it is very narrow
Notice that the webview will overlap the sidebar (you won't get hovers or be able to click on the left side of the items in the tree views (Explorer file view is easy to see)

Sorry but I've never been able to reproduce this. Are you still seeing it in recent VS code versions?

@mjbvz It looks fixed now to me


Update to ABP Framework 8

Hi, just wondering if you're working on an update to ABP Framework 8.
Cheers

Hello @beriniwlew, I have created a new project .Please visit https://github.com/zyknow/Vctoon.


The font is different for post text and title.

Usually the blog should use the same font though out. However the theme is setting different fonts for summary/post body and title.
Example:

In case you want to change the font used in the summary part, you have to override the theme's data file. Follow these steps.

Make a folder root/data
make a file root/data/font.toml
font.toml file

content_font = "\"Montserrat\", sans-serif"

This will solve the problem

Will this get overridden when I update the git sub module?

No, you have to make a font.toml file in root/data

Hmm.. I tried. It didn't change :thinking:

restart hugo?

Tried.

Did you tried content_font = "\"Merriweather\", serif"?

Yes and the font didn't change either. I check the css.
Disabling the css of font-family, fixes things.

Did you tried force refresh the browser?
ctrl+shift+r

You are right. I had to hard reset the cache and reload the page.
I guess I should do that before opening any issue :sweat_smile: [restart server, hard reset page]
Thanks!
Closing this issue.

No, it's Ok. Feel free to open a new issue.
I'll document this in the future


Docs: update syncer.md to make the syncer dev steps a bit clear for the local kcp kind-based syncer scenario.

Make the syncer dev steps a bit clear for the local kcp kind-based syncer scenario.

Summary
Related issue(s)
Fixes #

@davidfestal I think this PR is ready unless you want to consider what I said in my last comment.


Enable sending String payloads with JSON content type in SqsTemplate

Currently due to Spring Messaging internals if we send a String message containing a JSON without specifying a Content-Type it'll default to text/plain in the StringMessageConverter.
If we set .header(MessageHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON), it will be mapped by  MappingJackson2MessageConverter which will double serialize the payload, which won't be readable.
We should look into a way of enabling users to send a String json with APPLICATION_JSON content type so it can be properly deserialized by the consumer.

I'm looking into this issue, but the sample code doesn't seem to be checking this issue properly.
Below is the code I used.  I have made some modifications to the SQS sample code.
`
@SpringBootApplication
public class SpringSqsSample {
private static final Logger LOGGER = LoggerFactory.getLogger(SpringSqsSample.class);

private static final String QUEUE_NAME = "test-queue";

public static void main(String[] args) {
	SpringApplication.run(SpringSqsSample.class, args);
}

@SqsListener(queueNames = QUEUE_NAME, acknowledgementMode = "ON_SUCCESS")
void listen(Object message) {
	LOGGER.info("Received message : " + message);
}

@Bean
public ApplicationRunner sendMessageToQueue2(SqsTemplate sqsTemplate) {
	String jsonString = """
		{
		  "message1": "hello",
		  "message2": "sqs!"
		}
		""";

	return args -> sqsTemplate.send(sqsTemplate.send(to -> to.queue(QUEUE_NAME)
															 .payload(jsonString).delaySeconds(30)
															 .header(MessageHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)));
}

}
`
Can you tell me if there's something wrong with my code or give me an example of a situation where it would be double serialize?

@imsosleepy, please try to receive a record MyPojo(String message1, String message2){}  in the listener:
void listen(MyPojo message) {...}

@tomazfernandes After modifying the code as your advice, I proceeded to test it again.
@SpringBootApplication
public class SpringSqsSample {

	private static final Logger LOGGER = LoggerFactory.getLogger(SpringSqsSample.class);

	private static final String QUEUE_NAME = "test-queue";

	public static void main(String[] args) {
		SpringApplication.run(SpringSqsSample.class, args);
	}

	@SqsListener(queueNames = QUEUE_NAME)
	void listen(SampleRecord message) {
		LOGGER.info("Received message {} {}", message.propertyOne(), message.propertyTwo());
	}

	@Bean
	public ApplicationRunner sendMessageToQueue2(SqsTemplate sqsTemplate) {
		String jsonString = """
			{
			  "message1": "hello",
			  "message2": "sqs!"
			}
			""";

		return args -> sqsTemplate.send(to -> to.queue(QUEUE_NAME).payload(jsonString).delaySeconds(30).header(MessageHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON));
	}

	private record SampleRecord(String propertyOne, String propertyTwo) {
	}

}

then, I am getting the error message below.
java.util.concurrent.CompletionException: io.awspring.cloud.sqs.listener.AsyncAdapterBlockingExecutionFailedException: Error executing action in BlockingMessageListenerAdapter
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) ~[na:na]
	at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:674) ~[na:na]
	at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) ~[na:na]
	at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2200) ~[na:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageListenerExecutionStage.process(MessageListenerExecutionStage.java:49) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageProcessingPipelineBuilder$ComposingMessagePipelineStage.lambda$process$0(MessageProcessingPipelineBuilder.java:80) ~[classes/:na]
	at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) ~[na:na]
	at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) ~[na:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageProcessingPipelineBuilder$ComposingMessagePipelineStage.process(MessageProcessingPipelineBuilder.java:80) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageProcessingPipelineBuilder$FutureComposingMessagePipelineStage.process(MessageProcessingPipelineBuilder.java:104) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageProcessingPipelineBuilder$FutureComposingMessagePipelineStage.process(MessageProcessingPipelineBuilder.java:104) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageProcessingPipelineBuilder$FutureComposingMessagePipelineStage.process(MessageProcessingPipelineBuilder.java:104) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.pipeline.MessageProcessingPipelineBuilder$FutureComposingMessagePipelineStage.process(MessageProcessingPipelineBuilder.java:104) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.sink.AbstractMessageProcessingPipelineSink.lambda$execute$0(AbstractMessageProcessingPipelineSink.java:99) ~[classes/:na]
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run$$$capture(CompletableFuture.java:1768) ~[na:na]
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
	at java.base/java.lang.Thread.run(Thread.java:1589) ~[na:na]
Caused by: io.awspring.cloud.sqs.listener.AsyncAdapterBlockingExecutionFailedException: Error executing action in BlockingMessageListenerAdapter
	at io.awspring.cloud.sqs.listener.AsyncComponentAdapters$AbstractThreadingComponentAdapter.wrapWithBlockingException(AsyncComponentAdapters.java:162) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.AsyncComponentAdapters$AbstractThreadingComponentAdapter.runInSameThread(AsyncComponentAdapters.java:124) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.AsyncComponentAdapters$AbstractThreadingComponentAdapter.execute(AsyncComponentAdapters.java:111) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.AsyncComponentAdapters$BlockingMessageListenerAdapter.onMessage(AsyncComponentAdapters.java:208) ~[classes/:na]
	... 15 common frames omitted
Caused by: io.awspring.cloud.sqs.listener.ListenerExecutionFailedException: Listener failed to process messages 218c1f35-667d-4131-92d5-a16b256edcca
	at io.awspring.cloud.sqs.listener.adapter.AbstractMethodInvokingListenerAdapter.createListenerException(AbstractMethodInvokingListenerAdapter.java:79) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.adapter.AbstractMethodInvokingListenerAdapter.createListenerException(AbstractMethodInvokingListenerAdapter.java:83) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.adapter.AbstractMethodInvokingListenerAdapter.invokeHandler(AbstractMethodInvokingListenerAdapter.java:59) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:41) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.AsyncComponentAdapters$BlockingMessageListenerAdapter.lambda$onMessage$0(AsyncComponentAdapters.java:208) ~[classes/:na]
	at io.awspring.cloud.sqs.listener.AsyncComponentAdapters$AbstractThreadingComponentAdapter.runInSameThread(AsyncComponentAdapters.java:120) ~[classes/:na]
	... 17 common frames omitted
Caused by: org.springframework.messaging.converter.MessageConversionException: Cannot convert from [java.lang.String] to [io.awspring.cloud.sqs.sample.SpringSqsSample$SampleRecord] for GenericMessage [payload={
  "message1": "hello",
  "message2": "sqs!"
}

But this seems to be natural: the error message says that the jsonString and the SampleRecord don't match. Still no double serialization occurred. I think I need a more detailed guide.

@imsosleepy I get a different error here:
Caused by: org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Cannot construct instance of com.test.SpringSqsSample$SampleRecord (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{   "message1": "hello",   "message2": "sqs!" }')  at [Source: (String)""{\n  \"message1\": \"hello\",\n  \"message2\": \"sqs!\"\n}\n""; line: 1, column: 1]
I remember seeing the double serialization at some point, but I might have got it wrong, or it might only happen with some specific configuration.
But that's ok - the overall goal is to be able to send raw JSON with the template and have it be properly deserialized to a POJO / record  in the listener, requiring as few changes / configurations as possible.
Please let me know if that helps. Thanks.

@tomazfernandes I identified what the issue was and created a PR that fixed it. This was not a case of double serialization, but simply an incorrectly created String that could not be deserialized to an Object.
Please see the images below.

The first payload was successfully processed.

However, the second payload was not processed correctly because it contained unnecessary newlines and backslashes.
To fix this issue, I implemented the getPayloadToDeserialize method of MessagingMessageConverter to create the body of the message as an ObjectNode and then convert it back to a String.
However, I need to verify if it is appropriate to have an ObjectMapper in its current location.
Further testing might be necessary, but I would appreciate any advice on the best location for it.
I may need to test it further, but I would appreciate any advice on where to put it.
The PR is here : #1168

Hey @imsosleepy,
Perhaps a better way would be making the getMappingJackson2MessageConverter protected and using its Object Mapper instead.
Would it be possible for you to create an integration test to assert this solution in fact resolves the problem?
Also, since this is an edge case, it would probably be best if we could only do this extra step if necessary.
Let me know your thoughts, thanks.

Hey @imsosleepy, looking at this again, I wonder if maybe the right way to go would be making it so that the message is not sent with the line breaks.
Otherwise we may fix this for our listeners, but if the message is read by a consumer using other language / library that can't read both formats it might get confusing.
We'd need to check what exactly is adding the line breaks and make sure they're not added to the final payload.
What do you think?

@tomazfernandes
While writing the integration test and reviewing other tests, I encountered more inputs.
As a result, I concluded that, like your opinion, re-parsing from the input is the correct approach.
In this PR (#1168), I implemented the changes on the recipient side and created the integration test.
It seems that when javaType and classFromTypeMapper are not the same, too many unnecessary branches occur.
I will proceed with the modification for now, but if you think the current code is fine, please leave a review.

@tomazfernandes
I think it is appropriate to resolve this issue on the receiving side.
The current cause of the failure in object conversion lies not only in the strings that contain line breaks but also in the process of determining the targetType.
Even if the correct type is assigned to JavaType in the part where the type of the payload is determined, if the payload is a JsonString, it is identified as a string, causing an issue in object conversion.
Therefore, the sending side cannot fully resolve the issue.
Please review the final PR : #1168

@imsosleepy I get a different error here:
Caused by: org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Cannot construct instance of com.test.SpringSqsSample$SampleRecord (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('{ "message1": "hello", "message2": "sqs!" }') at [Source: (String)""{\n \"message1\": \"hello\",\n \"message2\": \"sqs!\"\n}\n""; line: 1, column: 1]
I remember seeing the double serialization at some point, but I might have got it wrong, or it might only happen with some specific configuration.
But that's ok - the overall goal is to be able to send raw JSON with the template and have it be properly deserialized to a POJO / record in the listener, requiring as few changes / configurations as possible.
Please let me know if that helps. Thanks.

I am also getting same error
during springcloud update to 3.1.1


How to disable signature pad

I tried SignaturePad.setOnSignedListener null but still its not working

Just write
mSignature.setEnabled(false), its working for me :)


Add constant for HTTP 418 per RFC 7168

RFC 7168 introduced the 418 response code to indicate that a pot is tea-enabled, and may be short and stout.

Thank you! Merged.
:beers:


Sync belongsToMany throw allowed memory error

Describe the bug
Sync post relatedCategories throw PHP Fatal error:  Allowed memory size of ********* bytes exhausted
Post is a cacheable model and category is a cacheable method.
It only pass in production envioronment.
When I try to update related categories from a post, I get a tipical memory error :(.
Eloquent Query
Please provide the complete eloquent query that caused the bug, for example:
public function relatedCategories()
    {
            return $this->belongsToMany(Category::class)->withTimestamps();
    }

$post-> relatedCategories()-> sync($request->related_categories);

Stack Trace
2020/09/07 14:16:16 [error] 17231#17231: 59 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 4096 bytes) in /CODE/www/.com/httpdocs_9d7999fc5ca37605867751000c54677cdfd1027c/vendor/predis/predis/src/Connection/StreamConnection.php on line 345
PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 16384 bytes) in /CODE/www/.com/httpdocs_9d7999fc5ca37605867751000c54677cdfd1027c/vendor/symfony/error-handler/Error/FatalError.php on line 91" while reading response header from upstream, client: , server: *******.com, request: "PUT /360panel/posts/45530 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: ".com", referrer: "https://******.com/360panel/posts/45530/edit"
Environment

PHP: 7.3.9
Laravel: 7.27.0
Model Caching: 0.10.2
Redis.

Additional context
Add any other context about the problem here.

@josearagon Please provide the full stack trace.

@mikebronner I just edited the original comment with the full stack trace.
Always need more memory. We try to increase memory_limit but it's never enough.
Thanks a lot

@josearagon Where are you getting this stack trace from? I'm looking for the full stack trace from /storage/logs/laravel.log. This seems to be only a partial stack trace.

Interestingly, Laravel rarely logs an error in this case. The error occurs at php level.


Support the timestamp with us unit type convert and also fix the timezone issue in gandiva

@zhouyuan Please help to review if you have available time. Thanks.


Change CLI schema default to "human"

Category
CLI features/changes
Describe the feature you'd like to request
Cedar policies and schemas support two formats: human-readable and JSON. You can change the format used in CLI commands using --policy-format (human|json) and --schema-format (human|json).
The default for policies is human and the default for schemas is json. Now that we've released the new schema syntax, I think it's time to update the default to be human so the two are consistent.
Describe alternatives you've considered
No response
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this feature request
[ ] ⚠ This feature might incur a breaking change

Big +1.  But, this is a breaking change so has to be held until 4.0.


Feature request: Indicate which account is authenticating in logs/console

Currently, whenever an account successfully authenticates, the following message is output to the console/log:
2022-09-28 14:53:15: IMAP (hostname:993) [ Successfully authenticated IMAP connection - removing proxy ]
It would be helpful in troubleshooting if this message could include the account that is authenticating so that, on a system with mutiple accounts, one can identify which one did the authentication correctly.
An example would be:
2022-09-28 14:53:15: IMAP (hostname:993) [ Successfully authenticated IMAP connection for<EMAIL_ADDRESS>- removing proxy ]

This is already the case if you enable debug mode, but I can see why it might be useful to have it as standard.


ERROR during build in examples

Hi, I am getting errors:
ERROR in ./~/react-tap-event-plugin/src/injectTapEventPlugin.js Module not found: Error: Cannot resolve module 'react/lib/EventPluginHub' in /home/rsmol/Code/git/formsy-material-ui/examples/webpack-example/node_modules/react-tap-event-plugin/src  @ ./~/react-tap-event-plugin/src/injectTapEventPlugin.js 23:2-37
during the build of the webpack-example module. I've tried to do yarn upgrade, but no luck either.

I think we just fixed this with #187.


Rename data_flow_decorator to logical_data_flow_decorator  (or similar)

Perhaps get rid of the generic decorator kind and make it specific for data types


calling this plugin several times

Hi,
I don't know exactly where to look for, so I will just explain here, hoping this is not totally off topic.
In one of our use cases, we used the plugin several times on one model. Our problem is that only the last inclusion of the plugin is executed when we do a find/findOne. I think this is the expected behavior, but is there a way to have mutilple find/findOne hooks ? I know I can pass an array of functions to mongoose-post-find, but if I use your plugin in say plugins, I am screwed.
I'll try to put that into code :
// mymodel.js
var schema = new mongoose.Schema({foo: String});
schema.plugin(plugina);
schema.plugin(pluginb);

// plugin-a.js
var postFind = require('mongoose-post-find');
module.exports = function(schema, options) {
    schema.plugin(postFind, {
        find: function(res, done) {
            //do something
        }
    });
};

// plugin-b.js
var postFind = require('mongoose-post-find');
module.exports = function(schema, options) {
    schema.plugin(postFind, {
        find: function(res, done) {
            //do something else
        }
    });
};

With this example, only the B plugin hooks will be called.
I'm sorry if that can't be done, or if the problem is solvable only somewhere in mongoose or whatever, I  just don't know where to go from here.
Thanks !

As I understand current implementation works only with one handler. If it is true it explains such behaviour. B plugin rewrites the A plugin handler. And I think that it is normal.

May be the problem is, if the code is in the same file, that node is taking the last export you are writing, so you can try something like:
// mymodel.js
var schema = new mongoose.Schema({foo: String});
schema.plugin(plugina);
schema.plugin(pluginb);

// plugin-a.js
var postFind = require('mongoose-post-find');
module.exports.pluginA = function(schema, options) {
    // your code ...
};

// plugin-b.js
var postFind = require('mongoose-post-find');
module.exports.pluginB = function(schema, options) {
    // your code
};

// Or may be you can export an object of functions:

var postFind = require('mongoose-post-find');
module.exports = {
   pluginA: function(schema, options) {
       // your code for plugin-a ...
   },
   pluginB: function(schema, options) {
       // your code for plugin-b ...
   }

}

(closing as I don't use this anymore)


[release/1.6] Cherry pick GitHub actions workflow updates 1.6

Backporting updates to GitHub Actions CI workflows to address deprecation warnings.

[x] CI passes
[x] Test release linked

Related-issue: https://github.com/containerd/project/issues/95
Signed-off-by: Austin Vazquez<EMAIL_ADDRESS>

/ok-to-test


Add new BitSong gauges

Yes we can delete the old gauges
Il Sab 2 Apr 2022, 22:40 JeremyParish69 @.***> ha
scritto:

@.**** commented on this pull request.
Can we remove the old gaugeIds?
—
Reply to this email directly, view it on GitHub
https://github.com/osmosis-labs/osmosis-frontend/pull/319#pullrequestreview-929602868,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANMHRZBFOEIDBCNJMAYXVTVDCWEPANCNFSM5R26DXPQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


[Patch] (B)BD, Powercord + more are somewhat / completely broken due to overriding their CSP disabler's

CSP unstricter / disabler in GooseMod currently overrides other mod's so if they expect no CSP they will still have some of it.

Should be done in new patch v10.
Checks for common mods including (B)BD and PC before doing CSP unstricting.

Oh, this was solved in patch v10 a while ago.


Pistol Mode

first merge

ProjectSettings/ => Need to Web Merge
Packages/ => Need to Web Merge
Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF => Have to remove


IOS 12 rdp and local lan issue. Works only with Android and Windows

Issue
I am able to connect to the internet, and RDP into computers behind the vpn with android Oreo and a windows computer only.
IOS 12.1.1 only gives me only internet access through the vpn. It does not allow me to RDP or even ping anything on the LAN behind the vpn.  I have devices with interfaces on port 80 with local addresses (192...*) that i can not see either.  It is as if the traffic is not being routed to the local Lan but only for apple devices.
I have searched and searched for issues but I only encounter results for the latest compression issue that was resolved. Maybe this is a lingering issue from that??
Have you taken any steps towards solving your issue?
I have uninstalled and re-installed pivpn with minimal options and only creating one test user.
I have had the exact same result. Android and windows connect to Lan computers and Internet just fine. IOS devices (iphone 6,8,10, ipad) ONLY connect to internet through the vpn (public ip matches the remote location).

@SalientComputers This looks like a client problem, not a pivpn/server problem. Could you please attach a log from the client?

I use the openvpn client on iOS. The issue ended up being that my local wifi lan and the remote VPN lan are using the same address scope and iOS was not routing to the VPN. I had to have the iOS device connect to the cell network and everything started working perfectly.

so, this problem has nothing to do with ipvpn. can be closed, as it's resolved.

I am using pivpn and the openvpn client on ios and android. Android has no issues connecting to remote desktop on the remote network regardless of my local networks scope.  iOS does not route to the remote network if it is using the same scope as the local one.  This seems to me not to be a trivial issue. I was able to find a work around but not a solution.

But this is a problem with the OpenVPN client for iOS, not pivpn. We want to help, but we can't fix the iOS OpenVPN client.


Could not connect to openvpn:5555 (Temporary failure in name resolution)

Hello.
I would like to seek assistance from you guys. It was not running perfectly and this is the first time I encountered this error.
Can you help me on our issue please.

I also checked its docker openvpn-monitor logs

Here is my configuration in docker-compose yaml file

Here is my openvpn configuration file. I already input the <IP_ADDRESS> 5555 but still the same

Then I tried your other version but still the same

It was not running perfectly and this is the first time I encountered this error.
I assume you mean it was running perfectly?

The issue seems to be, that the container openvpn_monitor cannot resolve the hostname 'srv-dr-openvpn'.
Try it with docker-compose run openvpn_monitor
To fix it either use openvpn in the env-variable OPENVPNMONITOR_SITES_0_NAME, docker will automatically resolve it for you to the openvpn container or use links. For that add to the openvpn_monitor service:
openvpn_monitor:
[...]
    links:
        - "openvpn:svr-dr-openvpn"

@clerrific enter the openvpn-monitor container (docker exec -it <containerId/name> sh) and then do a cat /etc/hosts. Try pinging the linked container to see if you have connectivity.


After following instructions, az comdlet not found

I followed these instructions to the letter on both the Powershell that comes with windows and the newer Powershell Core. In both cases when I type in "az" afterward, I get:
The term 'az' is not recognized as the name of a cmdlet...
I'm assuming there's a PATH variable that is not being installed by the install script.
UPDATE: I tried manually adding the path and also manually importing the module, but no luck:
PS C:\WINDOWS\system32> Import-Module Az -Verbose
VERBOSE: Loading module from path 'C:\Program Files\WindowsPowerShell\Modules\Az\1.7.0\Az.psd1'.
PS C:\WINDOWS\system32> Az
Az : The term 'Az' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Az
+ ~~
    + CategoryInfo          : ObjectNotFound: (Az:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS C:\WINDOWS\system32>

That's correct, because Az is not a cmdlet name. The set of commands that come in the Az module are what allow you to interact with Azure. See the complete cmdlet reference


TypeErrr

Hi,
I constantly get this error using provided sample usage.
TypeError: (0 , B.fetch) is not a function
    at requestLemonSqueeze (/Users/hassan/work/minoo/node_modules/lemonsqueezy.ts/src/shared/shared.actions.ts:44:28)
    at getUser (/Users/hassan/work/minoo/node_modules/lemonsqueezy.ts/src/modules/user/user.action.ts:20:10)

Hey, can I ask for some extra detail about you are using to run the sample usage:
- Engine (Node.js, Deno, etc)
- Engine version (Node.js v19.6.0)
-

Right, it seems fetch function is pretty new. Now works perfectly with Node 18!
Thanks for the quick reply.


Tabby plugin version still in 1.4.2

Hi thank you for this plugin !
Is there a way to update the plugin to avoid doing it manually npm i terminus-cloud-settings-sync. Because in tabby application the version is still in 1.4.2.
Have a nice day,
Thomas

@LacazeThomas this is Tabby plugin issue itself, you could download the release zip and replace the original plugin folder.
https://registry.npmjs.org/terminus-cloud-settings-sync/-/terminus-cloud-settings-sync-1.4.3.tgz

I tried but I have an error at launch, files extensions are not the same (index.d vs index.ts). I think if we rename all the files it can be good, but long.
I think the only valuable solution is to have npm installed.
Thank you !

I have the same problem, I tried to install it with npm but in tabby the version is not updated. Is it possible to have a procedure to update it?
Thanks

@Bloopps Yes for sure !
Open tabby, select extensions tab and click to open extensions' folder.
On the same folder, execute : npm i terminus-cloud-settings-sync


Running test for a fresh angular project opens 3 Chrome tabs

Which @angular/* package(s) are the source of the bug?
Don't known / other
Is this a regression?
Yes
Description
When executing ng test on a fresh angular project 3 Chrome tabs get opened.
This results in really annoying behaviour when trying to debug tests.
There is already an issue in karma for that: https://github.com/karma-runner/karma/issues/3827
But there is no response since December 19th. So it seams karma is somehow dead?
As it is the default experience for Angular tests I consider this a rather big problem.
Steps to reproduce:
npm install -g @angular/cli
ng new my-app
cd .\my-app\
ng test

Please provide a link to a minimal reproduction of the bug
No response
Please provide the exception or error you saw
✔ Browser application bundle generation complete.
18 04 2023 10:56:08.084:WARN [karma]: No captured browser, open http://localhost:9876/
18 04 2023 10:56:08.100:INFO [karma-server]: Karma v6.4.1 server started at http://localhost:9876/
18 04 2023 10:56:08.100:INFO [launcher]: Launching browsers Chrome with concurrency unlimited
18 04 2023 10:56:08.108:INFO [launcher]: Starting browser Chrome
18 04 2023 10:56:08.747:ERROR [launcher]: Cannot start Chrome

18 04 2023 10:56:08.747:ERROR [launcher]: Chrome stdout: Wird in einer aktuellen Browsersitzung ge�ffnet.

18 04 2023 10:56:08.748:ERROR [launcher]: Chrome stderr:
18 04 2023 10:56:08.751:INFO [launcher]: Trying to start Chrome again (1/2).
18 04 2023 10:56:08.901:INFO [Chrome <IP_ADDRESS> (Windows 10)]: Connected on socket 77HXdEZtgU5qB7KLAAAB with id 88680799
18 04 2023 10:56:09.325:INFO [Chrome <IP_ADDRESS> (Windows 10)]: Disconnected browser returned on socket cgtfdh69AMfrmsciAAAD with id 88680799.
18 04 2023 10:56:09.407:ERROR [launcher]: Chrome crashed.

18 04 2023 10:56:09.408:ERROR [launcher]: Chrome stdout: Wird in einer aktuellen Browsersitzung ge�ffnet.

18 04 2023 10:56:09.408:ERROR [launcher]: Chrome stderr:
18 04 2023 10:56:09.410:INFO [launcher]: Trying to start Chrome again (2/2).
Chrome <IP_ADDRESS> (Windows 10): Executed 0 of 3 SUCCESS (0 secs / 0 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 1 of null SUCCESS (0 secs / 0.096 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 1 of null SUCCESS (0 secs / 0.096 secs)
18 04 2023 10:56:10.017:INFO [Chrome <IP_ADDRESS> (Windows 10)]: Disconnected browser returned on socket oWKinAdyyaxET4PrAAAF with id 88680799.
18 04 2023 10:56:10.159:ERROR [launcher]: Chrome crashed.

18 04 2023 10:56:10.160:ERROR [launcher]: Chrome stdout: Wird in einer aktuellen Browsersitzung ge�ffnet.

18 04 2023 10:56:10.160:ERROR [launcher]: Chrome stderr:
18 04 2023 10:56:10.162:ERROR [launcher]: Chrome failed 2 times (crashed). Giving up.
Chrome <IP_ADDRESS> (Windows 10): Executed 0 of 3 SUCCESS (0 secs / 0 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of null SUCCESS (0.001 secs / 0.108 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 SUCCESS (0.085 secs / 0.079 secs)
Chrome <IP_ADDRESS> (Windows 10) ERROR
  Disconnected , because no message in 30000 ms.
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 DISCONNECTED (30.73 secs / 0.079 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 DISCONNECTED (30.73 secs / 0.079 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 DISCONNECTED (30.73 secs / 0.079 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 DISCONNECTED (30.73 secs / 0.079 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 DISCONNECTED (30.73 secs / 0.079 secs)
Chrome <IP_ADDRESS> (Windows 10): Executed 3 of 3 DISCONNECTED (30.73 secs / 0.079 secs)

Please provide the environment you discovered this bug in (run ng version)
Angular CLI: 15.2.6
Node: 18.12.0
Package Manager: npm 9.2.0
OS: win32 x64

Angular: 15.2.7
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1502.6
@angular-devkit/build-angular   15.2.6
@angular-devkit/core            15.2.6
@angular-devkit/schematics      15.2.6
@angular/cli                    15.2.6
@schematics/angular             15.2.6
rxjs                            7.8.0
typescript                      4.9.5

Anything else?
No response

Hi, I did try to replicate this without an success. Which Chrome version are you using please?

Seems like it might be related to https://github.com/karma-runner/karma-chrome-launcher/issues/34, the resolution should be to make the user-data-dir writable.

@alan-agius4 Thanks for the quick reply. Will try that.
Chrome Version:  112.0.5615.50  (64-Bit)

@alan-agius4 thank you for the hint.
Had to make the folder writeable.
From this point on it was possible to propperly execute the tests but only if chrome was not running already

Closing as this is not actionable from our end.


Server - Laravel task scheduling isn't working on Production server

The laravel task scheduler failed to restart our email queue. Its possible its also not running the automatic job status transitions (ready->live and live->close at open and close times).

Duplicate of #4132


[New chain]: Redstone Mainnet 1.4.1

Summary

https://github.com/safe-global/safe-deployments/pull/599
https://github.com/ethereum-lists/chains/blob/master/_data/chains/eip155-690.json

Chain ID
690
Chain detail URL
https://chainlist.org/chain/690
RPC URL
https://rpc.redstonechain.com
Blockscout Client URL
https://explorer.redstone.xyz/api/v1/graphql
Etherscan Client URL
No response
Etherscan Client API URL
No response
Version
1.4.1
Address (Master copy)
0x41675C099F32341bf84BFc5382aF534df5C7461a
Deployment Tx hash (Master copy)
0xcfee532b01f489e68286de72b1e11d5a261d0dae4f9f94adb7c776a99b4aca4f
Block explorer URL (Master copy)
No response
Address (Master copy L2)
0x29fcB43b46531BcA003ddC8FCB67FFE91900C762
Deployment Tx hash (Master copy L2)
0x5fc235eaa2dedcfd41a02042288af2942f8b28869365cd055620a88b5a4e9054
Block explorer URL (Master copy L2)
No response
Address (Proxy factory)
0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67
Deployment Tx hash (Proxy factory)
0xa9756e914a2fe68eb467ced9f7f3513f90d8beb9402c61d8c74e49b9339d38a8
Block explorer URL (Proxy factory)
No response

/execute


okteto: 2.19.0 -> 2.19.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/okteto/versions.
meta.description for okteto is: Develop your applications directly in your Kubernetes Cluster
meta.homepage for okteto is: https://okteto.com/
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.19.2 with grep in /nix/store/52avqp6g2212r8vphylkczm4xzsaspz2-okteto-2.19.2
found 2.19.2 in filename of file in /nix/store/52avqp6g2212r8vphylkczm4xzsaspz2-okteto-2.19.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
okteto

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/52avqp6g2212r8vphylkczm4xzsaspz2-okteto-2.19.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A okteto https://github.com/r-ryantm/nixpkgs/archive/1f3194ffb15aab628c1c76ae54587b3e745a4878.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/52avqp6g2212r8vphylkczm4xzsaspz2-okteto-2.19.2
ls -la /nix/store/52avqp6g2212r8vphylkczm4xzsaspz2-okteto-2.19.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

okteto

Maintainer pings
cc @aaronjheng for testing.

Result of nixpkgs-review pr 253446 run on aarch64-darwin 1

1 package built:

okteto


Where is the Material 3 contribution guide ?

I'm looking for the Material 3 contribution guide, like in the Material 2.
Does anyone know how I can contribute ?
How I run and develop the project in my computer ?
I already had cloned the repository, installed the dependencies, checked for the scripts session on the package.json and I'm not understand how I can start something like a dev server...
Thanks

Thanks for the issue! @rodydavis is working on this now :)

Going to track this in https://github.com/material-components/material-web/issues/246


Android: Support VectorDrawables for markers

Currently, a Marker seems to accept any Drawable as its picture on the interface, but in reality, it always assumes this drawable to be a BitmapDrawable:
    public boolean setDrawable(Drawable drawable) {
        int density = context.getResources().getDisplayMetrics().densityDpi;
        BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
        ...

It would be nice if Tangram-ES for Android would support vector drawables for markers out of the box for Api 21+.
For Apis below 21, Android Studio creates bitmap icons for the different dimensions by default during the build process, so there is no necessity to use a compatibility library. Users who use the compatibility library instead of the automatic bitmap drawable creation during the build process, can wrap their VectorDrawableCompat like this (DrawableCompat.wrap(drawable)).mutate();.
Here is a stackoverflow question on how to draw any drawable into a Bitmap. It's pretty straightforward.

To use vector drawables anyway, I use this function now:
	private BitmapDrawable createBitmapDrawableFrom(int resId)
	{
		Drawable drawable = getResources().getDrawable(resId);
		if(drawable instanceof BitmapDrawable) return (BitmapDrawable) drawable;

		Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
				drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
		Canvas canvas = new Canvas(bitmap);
		drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
		drawable.draw(canvas);
		return new BitmapDrawable(getResources(), bitmap);
	}

Hmm, actually, nevermind. I reckon that Tangram-ES always needs a Bitmap(Drawable)  to copy over to the native part, so supporting Vector- and other Drawables should perhaps be up to the user instead of creating another layer of indirection.
It is a bit like
void applyData(Collection c) {
  if(!(c instanceof Set)) c = new HashSet(c);
  // .... do things
}

If Tangram-ES needs a Bitmap(Drawable), it should be simply be clear about it and that's it, in my opinion.

Yep, you got it. We don't have an SVG renderer in the native library, so the only way to render an SVG in a Marker would be to rasterize it to a bitmap like in your example.
As you said though, we should be clear about the precise kind of Drawable we expect in our API!


Eslint 9 compatibility?

Do you know if it's possible to use this plugin with ESLint 9? I see in the dependencies that the official eslint version is 8, and there's an official "migration guide" to eslint 9.x so I'm fearing it this plugin might need some migration steps to make it work.
I've tried changing the setup to this:
import svgPlugin from "svg-jsx";

export default tseslint.config(
    // ...
    plugins: {
      "react-hooks": reactHooks,
      "react-refresh": reactRefresh,
      "svg-jsx": svgPlugin,
    },
    rules: {
      // ...
      "svg-jsx/camel-case-dash": "error",
      "svg-jsx/camel-case-colon": "error",
      "svg-jsx/no-style-string": "error",
    },
  },

But unfortunately that was not enough and when trying to run it I get this error:
$ npm run lint
> eslint . --max-warnings=0

Usage: {REDACTED}/node_modules/.bin/eslint <input file>
<ouput file>

Options:
  -h, --help  Show help                                                [boolean]

Not enough non-option arguments: got 1, need at least 2

Which I assume it has something to do with the eslint-plugin-svg not being compatible with ESLint 9, since if I remove the SVG-specific bits it works as usual.

9.x isn't supported unfortunately. Like you mentioned, it would take some effort to go through the migration guide and ensure the plugin works as intended.
If you have the time for a pull request, I'm happy to review and cut a v9.x tag/release for you.


Set Up Connection Between Google BigQuery and SAP HANA

Tutorial URL: https://developers.sap.com/tutorials/gcp-hxe-evt-bq-1.html
Please specify the step you are referring to
Step 2, would be nice if the setup.sh file could be made available for after the event, as I am able to follow along so far otherwise after conference.

Sorry, Mike. If I could, I would have made it available and removed that warning from this tutorial series. I documented the steps covered by the script here: https://codelabs.developers.google.com/codelabs/sap-hana-connect-to-bigquery/#0
I will warn you that the OS user executing the commands is very important and that the process is painful and error prone. And yes, restart the machine when it tells you to.

Lucia, understood, and thanks for the link, I'll go through the steps and adapt as need.

Also, just FYI, on this step:
https://codelabs.developers.google.com/codelabs/sap-hana-connect-to-bigquery/#6 (Step 7)
I think you have the path wrong:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/sap/XHE/home/simba/googlebigqueryodbc/lib/64

Shouldn't it be this?
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/sap/HXE/home/simba/googlebigqueryodbc/lib/64


Bug in EvtContext::addListener ?

Hi,
And many thanks for this nice library! I intend to use in for a project with my students.
I have two questions and one suggestion about the EvtContext::addListener method.
Question 1 :
I think that there is a bug in EvtContext::addListener.
In the first for loop, I think you should use i as the index of listeners[] instead of listenerCount.
In other words, you should replace
for(int i = 0; i < listenerCount; i++) { // Try to add in empty slot
  if(listeners[listenerCount] == 0) {
    listeners[listenerCount] = lstn;
    return;
  }
}

by
for(int i = 0; i < listenerCount; i++) { // Try to add in empty slot
  if(listeners[i] == 0) {
    listeners[i] = lstn;
    return;
  }
}

Question 2 :
I'm not sure of that, but I think you should also add lstn->setupListener(); in this loop.
The result would then be:
for(int i = 0; i < listenerCount; i++) { // Try to add in empty slot
  if(listeners[i] == 0) {
    listeners[i] = lstn;
    lstn->setupListener();
    return;
  }
}

Suggestion :
This method could return a pointer to the EvtListener * that it got in parameter.
Thus the prototype would become
EvtListener * EvtContext::addListener(EvtListener *lstn);
and the method return lstn.
This would enable to make calls like:
EvtListener *pLstn;
pLstn = EvtContext::addListener(new EvtPinListener(SOME_PIN, (EvtAction)some_action));

and then use pLstn as an id to remove this event:
mgr.removeListener(pLstn);

I just stumbled across the same issue when I tried adding two listeners to the same context. I ended up just copy/pasting the two files into my project and ditch the downloaded library. This is how I fixed the addListener method. It doesn't protect against too many listeners yet but
void EvtContext::addListener(EvtListener *lstn) {
  Serial.println(String("Adding listener ") + lstn->instanceNumber);

  int i;
  for(i = 0; i < listenerCount; i++) { // Try to add in empty slot
    if(listeners[i] == 0) {
      break;
    }
  }

  listeners[i] = lstn;
  Serial.println(String("Added in slot ") + listenerCount);
  lstn->setupListener();
  listenerCount++;
}

I just stumbled across the same issue when I tried adding two listeners to the same context. I ended up just copy/pasting the two files into my project and ditch the downloaded library. This is how I fixed the addListener method. It doesn't protect against too many listeners yet but
void EvtContext::addListener(EvtListener *lstn) {
  Serial.println(String("Adding listener ") + lstn->instanceNumber);

  int i;
  for(i = 0; i < listenerCount; i++) { // Try to add in empty slot
    if(listeners[i] == 0) {
      break;
    }
  }

  listeners[i] = lstn;
  Serial.println(String("Added in slot ") + listenerCount);
  lstn->setupListener();
  listenerCount++;
}


Use bazel to drive the demonstrator?

Since some of the dependencies uses bazel anyway (ex: XLS), I wonder if you could simplify the demonstrator setup by leveraging bazel as its main execution/build system, ex:

use XLS bazel workspace instead of a submodules
add bazel rules for building the firmware
add bazel rules for driving the simulation
pin dependencies rather than relying on system install

Let me know what you think?

Absolutely! I think that's a great idea and would definitely enhance the users experience
Bazel rules for driving the simulation require more work, but the rest shouldn't be a problem.


Complete profile page

Complete the Languages, Education, Skills, and Certifications section.
Server actions are created for CRUD operations you need to implement them and fetch data with Route APIs.

Complete the Languages, Education, Skills, and Certifications section. Server actions are created for CRUD operations you need to implement them and fetch data with Route APIs.

I can do it. Assign it to me.

Complete the Languages, Education, Skills, and Certifications section. Server actions are created for CRUD operations you need to implement them and fetch data with Route APIs.

I can do it. Assign it to me.

OK

Complete the Languages, Education, Skills, and Certifications section.
Server actions are created for CRUD operations you need to implement them and fetch data with Route APIs.


Vector icons

.png icons have been replaced with theirs vector analogs

I've updated some files and pushed this PR.

I've updated some files and pushed this PR.


marketplace package required server restart , can not access admin portal by domain

Description
I followed these docs https://github.com/threefoldtech/js-sdk/blob/development/docs/wiki/marketplace/deployment.md
1 - i have start threebot by threebot restart then I have added marketpalce as manaul step
j.servers.threebot.default.packages.add("/root/js-sdk/jumpscale/packages/marketplace/") j.servers.threebot.default.save()
2 - when i refresh the page that showes the packages installed on threebot , marketpalce shown as not installed
3 - i  restart threebot by threebot restart , then i can access marketpalce by domain https://marketplace.freeflowpages.com
4 - i can not access admin portal by domain name with https://marketplace.freeflowpages.com/admin , it redirect me to marketplace page
Version information
root@marketplace:~/js-sdk# git log -1
commit d3c4653e5d18e2acfd2a4eea4c3106622c314f76 (HEAD -> development, tag: 11.0-b11, origin/development, origin/HEAD)
Author: xmonader<EMAIL_ADDRESS>Date:   Thu Oct 29 18:03:58 2020 +0200

    Development 3botdeployer (#1441)

admin package isn't bound to domain should be accessible via IP

got this error when trying IP

ok, closed then

but on that point when got error like below , we need to access admin portal which is not ok with domain ?

can you please open this in a different issue that alert link when on domain should use the admin url instead?

sure


programmatic celery hook for invariants

I appreciate that you are feeling the love.  I am too.
Nancy is asleep.  How about Pola?
—
Randal Burns
Professor, Dept. of Computer Science
Johns Hopkins University

On Sep 11, 2015, at 11:54 PM, Disa Mhembere<EMAIL_ADDRESS>wrote:
—
Reply to this email directly or view it on GitHub https://github.com/openconnectome/m2g/issues/145.

Oh she's fast asleep! Best time to work :+1:


How to pass proxy server in HttpTask

Is there a way to pass a proxy server and port to the http task?

@itsmshani How do you intend to use a proxy server in the Http task?
If the provided Http task implementation doesn't meet your needs, feel free to extend and plug-in your own implementation.

Closing this issue due to inactivity, please reopen if you need assistance.


DPE-994 Add initial GH=>Jira integration

Current automation synchronizes GitHub issues to Jira (one-way).
GH issue created with label "Bug" -> open Jira bug
GH issue created with label "Enhancement" -> open Jira Story
GH issue closed -> transition Jira bug/story to status Done
GH issue reopened -> transition Jira bug/story to status New

I often find forms too restrictive so I end up clicking Don’t see your issue here? Open a blank issue. or submitting the report incomplete & editing it.

This is exactly why we have "blank issue" link there. :-)
As for DPE team we will stay in Jira, GH Issues is more for Community reporting and there we want to receive all the necessary details => form.

Abandon in favor of upcoming PR based on https://github.com/canonical/data-platform-workflows/pull/2


[WIP] Show message if topology is empty

Nice design. I have tried to test it but miserably failed:

To force an empty graph, I made the probe not report to the app, providing an unassigned IP to scope:
./scope launch <IP_ADDRESS>

Here's the /api/report:
{"Endpoint":{"Nodes":{}},"Address":{"Nodes":{}},"Process":{"Nodes":{}},"Container":{"Nodes":{}},"ContainerImage":{"Nodes":{}},"Host":{"Nodes":{}},"Overlay":{"Nodes":{}},"Sampling":{"Count":0,"Total":0},"Window":0}

@2opremio try make static

I did that

Works nicely for me:

Mind if I make the 1 suggested change and merge it?

NB I rebased this.

David wanted to solve some 'flickering' issues with this before it goes in.

@tomwilkie the implementation based on /api/topology is tricky, because the stats of a container topology return node_count: 0, but then send two nodes over the websocket: theinternet and uncontained. So those are rendered.
So either we adjust the node_count to reflect what would come over the websocket, or I dont render the graph when node_count is 0 as a hard, sufficient condition.

Just found another stats field: nonpseudo_node_count. I could use that as a sufficient condition.

Alright, a mix of stats and nodes map size does the trick:
currentTopology && currentTopology.stats && currentTopology.stats.node_count === 0 && nodes.size === 0;

One minor nit; otherwise LGTM.
I'm fixing master right now; once I have, could you rebase & squash please?   Once you get a green off circle, go ahead and merge.


Cargo installation on Mac (lurk-cli doesn't compile)

Describe the bug
Running cargo install binsider
   Compiling regex v1.10.6
   Compiling clap v4.5.18
   Compiling comfy-table v7.1.1
   Compiling lurk-cli v0.3.6
error[E0432]: unresolved import `libc::user_regs_struct`
 --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:3:33
  |
3 | use libc::{c_long, c_ulonglong, user_regs_struct};
  |                                 ^^^^^^^^^^^^^^^^ no `user_regs_struct` in the root

error[E0432]: unresolved import `nix::sys::ptrace::Options`
 --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:5:5
  |
5 | use nix::sys::ptrace::Options;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `Options` in `sys::ptrace`

error[E0432]: unresolved import `libc::user_regs_struct`
 --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/syscall_info.rs:3:25
  |
3 | use libc::{c_ulonglong, user_regs_struct};
  |                         ^^^^^^^^^^^^^^^^ no `user_regs_struct` in the root

error[E0432]: unresolved imports `libc::user_regs_struct`, `libc::PTRACE_SYSCALL_INFO_EXIT`
  --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:77:12
   |
77 | use libc::{user_regs_struct, PTRACE_SYSCALL_INFO_EXIT};
   |            ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^ no `PTRACE_SYSCALL_INFO_EXIT` in the root
   |            |
   |            no `user_regs_struct` in the root

error[E0432]: unresolved imports `linux_personality::personality`, `linux_personality::ADDR_NO_RANDOMIZE`
  --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:78:25
   |
78 | use linux_personality::{personality, ADDR_NO_RANDOMIZE};
   |                         ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^ no `ADDR_NO_RANDOMIZE` in the root
   |                         |
   |                         no `personality` in the root
   |
   = help: consider importing one of these variants instead:
           crate::Sysno::personality
           syscalls::Sysno::personality
           syscalls::arm::Sysno::personality
           syscalls::mips64::Sysno::personality
           syscalls::mips::Sysno::personality
           syscalls::powerpc64::Sysno::personality
           syscalls::powerpc::Sysno::personality
           syscalls::riscv32::Sysno::personality
           syscalls::riscv64::Sysno::personality
           syscalls::s390x::Sysno::personality
           syscalls::sparc64::Sysno::personality
           syscalls::sparc::Sysno::personality
           syscalls::x86::Sysno::personality
           syscalls::x86_64::Sysno::personality

error[E0432]: unresolved import `nix::sys::ptrace::Event`
  --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:79:30
   |
79 | use nix::sys::ptrace::{self, Event};
   |                              ^^^^^ no `Event` in `sys::ptrace`

error[E0432]: unresolved imports `crate::arch::TRACE_CLOCK`, `crate::arch::TRACE_CREDS`, `crate::arch::TRACE_DESC`, `crate::arch::TRACE_FILE`, `crate::arch::TRACE_FSTAT`, `crate::arch::TRACE_FSTATFS`, `crate::arch::TRACE_IPC`, `crate::arch::TRACE_LSTAT`, `crate::arch::TRACE_MEMORY`, `crate::arch::TRACE_NETWORK`, `crate::arch::TRACE_PROCESS`, `crate::arch::TRACE_PURE`, `crate::arch::TRACE_SIGNAL`, `crate::arch::TRACE_STAT`, `crate::arch::TRACE_STATFS`, `crate::arch::TRACE_STATFS_LIKE`, `crate::arch::TRACE_STAT_LIKE`
 --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/args.rs:2:5
  |
2 |     TRACE_CLOCK, TRACE_CREDS, TRACE_DESC, TRACE_FILE, TRACE_FSTAT, TRACE_FSTATFS, TRACE_IPC,
  |     ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^ no `TRACE_IPC` in `arch`
  |     |            |            |           |           |            |
  |     |            |            |           |           |            no `TRACE_FSTATFS` in `arch`
  |     |            |            |           |           no `TRACE_FSTAT` in `arch`
  |     |            |            |           no `TRACE_FILE` in `arch`
  |     |            |            no `TRACE_DESC` in `arch`
  |     |            no `TRACE_CREDS` in `arch`
  |     no `TRACE_CLOCK` in `arch`
3 |     TRACE_LSTAT, TRACE_MEMORY, TRACE_NETWORK, TRACE_PROCESS, TRACE_PURE, TRACE_SIGNAL, TRACE_STAT,
  |     ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
  |     |            |             |
  |     |            |             no `TRACE_NETWORK` in `arch`
  |     |            no `TRACE_MEMORY` in `arch`
  |     no `TRACE_LSTAT` in `arch`
4 |     TRACE_STATFS, TRACE_STATFS_LIKE, TRACE_STAT_LIKE,
  |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^

error[E0425]: cannot find function `setoptions` in module `ptrace`
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:103:13
    |
103 |     ptrace::setoptions(
    |             ^^^^^^^^^^ not found in `ptrace`

error[E0425]: cannot find function `setoptions` in module `ptrace`
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:110:13
    |
110 |     ptrace::setoptions(
    |             ^^^^^^^^^^ not found in `ptrace`

error[E0425]: cannot find value `SYSCALLS` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:125:5
    |
125 |     SYSCALLS
    |     ^^^^^^^^ not found in this scope

error[E0425]: cannot find value `length` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:152:75
    |
152 |         SyscallArgType::Bytes => SyscallArg::Bytes(read_bytes(pid, value, length)),
    |                                                                           ^^^^^^ not found in this scope

error[E0425]: cannot find function `getevent` in module `ptrace`
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:227:41
    |
227 |                     let event = ptrace::getevent(pid)? as u8;
    |                                         ^^^^^^^^ not found in `ptrace`

error[E0425]: cannot find value `code` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:382:23
    |
382 |                 match code {
    |                       ^^^^ not found in this scope

error[E0425]: cannot find value `code` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:386:17
    |
386 |                 code
    |                 ^^^^ not found in this scope

error[E0425]: cannot find function `syscall` in module `ptrace`
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:426:17
    |
426 |         ptrace::syscall(pid, signal)
    |                 ^^^^^^^ not found in `ptrace`
    |
help: consider importing one of these items
    |
72  + use libc::syscall;
    |
72  + use syscalls::mips::Sysno::syscall;
    |
72  + use syscalls::syscall;
    |
help: if you import `syscall`, refer to it directly
    |
426 -         ptrace::syscall(pid, signal)
426 +         syscall(pid, signal)
    |

error[E0425]: cannot find function `getregs` in module `ptrace`
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:432:17
    |
432 |         ptrace::getregs(pid).map_err(|_| anyhow!("Unable to get registers from tracee {}", pid))
    |                 ^^^^^^^ not found in `ptrace`

error[E0425]: cannot find value `reg` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:440:10
    |
440 |         (reg as u32)
    |          ^^^ not found in this scope

error[E0425]: cannot find value `reg` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:442:63
    |
442 |             .map_err(|_| anyhow!("Invalid syscall number {}", reg))
    |                                                               ^^^ not found in this scope

error[E0425]: cannot find value `reg` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:459:13
    |
459 |             reg == Sysno::exit as u64 || reg == Sysno::exit_group as u64
    |             ^^^ not found in this scope

error[E0425]: cannot find value `reg` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:459:42
    |
459 |             reg == Sysno::exit as u64 || reg == Sysno::exit_group as u64
    |                                          ^^^ not found in this scope

error[E0308]: mismatched types
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:79:51
    |
79  |         let res: c_long = match ptrace::read(pid, address) {
    |                                 ------------      ^^^^^^^ expected `*mut i8`, found `*mut c_void`
    |                                 |
    |                                 arguments to this function are incorrect
    |
    = note: expected raw pointer `*mut i8`
               found raw pointer `*mut c_void`
note: function defined here
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/nix-0.29.0/src/sys/ptrace/bsd.rs:173:8
    |
173 | pub fn read(pid: Pid, addr: AddressType) -> Result<c_int> {
    |        ^^^^

error[E0308]: mismatched types
  --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:80:27
   |
80 |             Ok(c_long) => c_long,
   |                           ^^^^^^ expected `i64`, found `i32`
   |
help: you can convert an `i32` to an `i64`
   |
80 |             Ok(c_long) => c_long.into(),
   |                                 +++++++

error[E0425]: cannot find function `get_arg_value` in this scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/arch/mod.rs:143:17
    |
143 |     let value = get_arg_value(registers, idx);
    |                 ^^^^^^^^^^^^^ not found in this scope

error[E0599]: no variant or associated item named `PtraceEvent` found for enum `WaitStatus` in the current scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:212:29
    |
212 |                 WaitStatus::PtraceEvent(pid, _, code) => {
    |                             ^^^^^^^^^^^ variant or associated item not found in `WaitStatus`

error[E0599]: no variant or associated item named `PtraceSyscall` found for enum `WaitStatus` in the current scope
   --> /Users/mike/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lurk-cli-0.3.6/src/lib.rs:222:29
    |
222 |                 WaitStatus::PtraceSyscall(pid) => {
    |                             ^^^^^^^^^^^^^ variant or associated item not found in `WaitStatus`

Some errors have detailed explanations: E0308, E0425, E0432, E0599.
For more information about an error, try `rustc --explain E0308`.
error: could not compile `lurk-cli` (lib) due to 25 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `lurk-cli v0.3.6`, intermediate artifacts can be found at `/var/folders/vk/cb344xdx2jg29k9z7gw_2l240000gn/T/cargo-installq8cQwM`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

However, the same error can be obtained by compiling cargo install<EMAIL_ADDRESS>To reproduce
Run cargo install<EMAIL_ADDRESS>- so this is not a binsider specific issue, however, it is a dependency of binsider.
Software information

Operating system: Mac OS 14.5 (23F79)
Rust version:
stable-aarch64-apple-darwin
rustc 1.81.0 (eeb90cda1 2024-09-04)
Project version: latest (on crates.io)

This does however compile with CARGO_TARGET_DIR=target cargo build --release --no-default-features.  I think it's probably best to add a section for Mac OS in the docs and suggest using the above rather than a direct cargo install?

See #31
It is already documented here and I will be creating a new release tomorrow :)

See #31
It is already documented here and I will be creating a new release tomorrow :)

Awesome, thanks.

0.2.0 is released.

Blog post: https://binsider.dev/blog/v020/
Changelog: https://github.com/orhun/binsider/releases/tag/v0.2.0


URL's generated with youtube-dl resulting in 403 error?

My php script to merge 1080p was working fine until today and used wget to download url's generated by youtube-dl and merged them (as youtube-dl does not delete source files after merge) , today this functionality is broken and both wget and curl fails to download the streams with 403 Forbidden error from Youtube.
Strangely, YTDL is able to download the files. I tried changing user-agent in curl as below but it still results in 403.
> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2
> Host: r3---sn-aig7knek.googlevideo.com
> Accept: */*
>
* additional stuff not fine transfer.c:1037: 0 0
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 403 Forbidden
< Last-Modified: Wed, 02 May 2007 10:26:10 GMT
< Content-Type: text/plain
< Connection: close
< X-Content-Type-Options: nosniff
< Date: Sat, 01 Feb 2014 14:37:24 GMT
< Server: gvs 1.0
<
{ [data not shown]
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Closing connection #0

I would also like to request that youtube-dl deletes dash files after conversion (https://github.com/rg3/youtube-dl/issues/1612#issuecomment-32445539) which will specifically come handy in situations and usage scenario (scripted downloading on mass level) like this.

Hi I am having the same problem. Did you end up getting a fix?

After hours of testing I finally found the problem and the solution which worked was to clear the youtube-dl cache folder.

axel is broken with YouTube, see https://github.com/rg3/youtube-dl/issues/10429#issuecomment-242292635

aria2c raises 403
#!/usr/bin/env php     <?php     $height = 360;     if($argc > 2) $height = $argv[2];     system("youtube-dl -qge -f 'bestvideo[height<=$height]' ".$argv[1]." > videos.list");     $list = explode("\n", file_get_contents('videos.list'));     for($i=1;$i<count($list);$i+=2){         system("aria2c -c -j 3 -x 8 -s 8 --file-allocation=falloc -o ". str_replace('"','',preg_replace('/\s+/','-',$list[$i-1])).".mp4 -U 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36' ". $list[$i]);     }