virt-api prevent VM scheduling in hybrid CPU-arch environment

What happened:
The cluster is comprised of both AMD64 and ARM64 worker nodes, and multi-arch kubevirt components are built and deployed in the cluster. When a new VM is created, the webhook in virt-api prevents VM scheduling due the unsupported VirtType issue. The virt-api containers run in  both AMD64 and ARM64 worker node, and when a new VM is spawned by statically specifying the CPU type using nodeSelector, it still has chance to send the validation and other reqest to the virt-api which runs in different CPU typed machine.
What you expected to happen:
The VM creation process should always invoke the virt-api which runs in the corresponding CPU typed worker node. For example if an ARM64 typed VM is spawned, then virt-api which run on ARM64 typed CPU should be invoked.
How to reproduce it (as minimally and precisely as possible):
Create a hybrid CPU-arch Kubernetes cluster and install multi-arch KubeVirt. Two virt-api PODs are created and run in ARM64 and AMD64 worker node respectively. Create a ARM64 typed VM by specifying the ARM64 typed worker node using nodeSelector (e.g., kubernetes.io/arch: arm64).
Additional context:
Add any other context about the problem here.
Environment:

KubeVirt version (use virtctl version): 0.59.0
Kubernetes version (use kubectl version): 1.26.5
VM or VMI specifications:

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: "arm64-vm"
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/domain: arm64-vm
      annotations:
        image: almalinux-8-8-arm
    spec:
      nodeSelector:
        node-role.kubernetes.io/worker: ""
        kubernetes.io/arch: arm64
      terminationGracePeriodSeconds: 30
      domain:
        cpu:
          sockets: 2
          cores: 1
          threads: 1
        devices:
          disks:
            - name: bootdisk
              disk:
                bus: virtio
            - name: cloudinitdisk
              disk:
                bus: virtio
          interfaces:
            - name: default
              bridge: {}
        resources:
          requests:
            memory: 4Gi
          limits:
            memory: 4Gi
      networks:
        - name: default
          pod: {}
      volumes:
        - dataVolume:
            name: arm64-vm-boot-dv
          name: bootdisk
        - name: cloudinitdisk
          cloudInitNoCloud:
            secretRef:
              name: userdata-arm64-vm
            networkDataSecretRef:
              name: networkdata-arm64-vm
  dataVolumeTemplates:
  - metadata:
      name: arm64-vm-boot-dv
    spec:
      preallocation: true
      pvc:
        storageClassName: hostpath-csi
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 40Gi
      source:
        pvc:
          namespace: imagevolume
          name: almalinux-8-8-arm

Cloud provider or hardware configuration: multi-arch CPU worker nodes
OS (e.g. from /etc/os-release): Rocky Linux release 8.8 (Green Obsidian)
Kernel (e.g. uname -a): 4.18.0-477.13.1.el8_8.aarch64
Install tools: N/A
Others: N/A

/cc @xpivarc @zhlhahaha
IIRC we still don't support mixed architecture clusters, am I wrong? Should this work?
/triage needs-information

As the PR https://github.com/kubevirt/kubevirt/pull/8293 has merged, we should support mixed architecture clusters. Let me take a look.

Hi @gunine , as I do not have hybird k8s cluster, would you like to share the error message? And can you add the following line into your configuration and try again?
...
    spec:
      nodeSelector:
        node-role.kubernetes.io/worker: ""
        kubernetes.io/arch: arm64
      architecture: arm64
...

Hi @zhlhahaha,
Sure thing. I am still on kubevirt 0.59.0, and it seems like architecture attribute was introduced from kubevirt v1.0.0. I will upgrade the kubevirt to v1.0.0 first, and try your suggestion and respond to you. Stay tuned!

Hi @gunine , as I do not have hybird k8s cluster, would you like to share the error message? And can you add the following line into your configuration and try again?
...
    spec:
      nodeSelector:
        node-role.kubernetes.io/worker: ""
        kubernetes.io/arch: arm64
      architecture: arm64
...

Hi @zhlhahaha,
Sure thing. I am still on kubevirt 0.59.0, and it seems like architecture attribute was introduced from kubevirt v1.0.0. I will upgrade the kubevirt to v1.0.0 first, and try your suggestion and respond to you. Stay tuned!

Hi @zhlhahaha
With the given manifest on KubeVirt v1.0.0-rc0, I confirmed that VM provisioning in hybrid-cluster environment works.
One minor issue on the current implementation is that with host-path provisioner (hpp), the VM sometimes scheduled to the wrong node, which leads the virt-launcher POD be in pending state. The root cause of the issue is that there is no way to schedule the CDI importer POD to the corresponding CPU-arch node using labels what we have tried in VM manifest. Any hints on this? Followings are the manifest used for provisioning the VM.
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: "arm64-vm"
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/domain: arm64-vm
      annotations:
        image: almalinux-8-8-arm
    spec:
      nodeSelector:
        node-role.kubernetes.io/worker: ""
        kubernetes.io/arch: arm64
      terminationGracePeriodSeconds: 30
      architecture: arm64
      domain:
        cpu:
          sockets: 2
          cores: 1
          threads: 1
        devices:
          disks:
            - name: bootdisk
              disk:
                bus: virtio
            - name: cloudinitdisk
              disk:
                bus: virtio
          interfaces:
            - name: default
              bridge: {}
        resources:
          requests:
            memory: 4Gi
          limits:
            memory: 4Gi
      networks:
        - name: default
          pod: {}
      volumes:
        - dataVolume:
            name: arm64-vm-boot-dv
          name: bootdisk
        - name: cloudinitdisk
          cloudInitNoCloud:
            secretRef:
              name: userdata-arm64-vm
            networkDataSecretRef:
              name: networkdata-arm64-vm
  dataVolumeTemplates:
  - metadata:
      name: arm64-vm-boot-dv
    spec:
      preallocation: true
      pvc:
        storageClassName: hostpath-csi
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 40Gi
      source:
        pvc:
          namespace: imagevolume
          name: almalinux-8-8-arm

there is no way to schedule the CDI importer POD to the corresponding CPU-arch node using labels what we have tried in VM manifest. Any hints on this?

We haven't enabled CDI on Arm64, and I'm not very familiar with CDI. Therefore, I'm unsure if the CDI importer works on Arm64.
Just to confirm, you're looking to schedule both VMI pods and CDI importer pods on the same k8s node. Is my understanding correct?

there is no way to schedule the CDI importer POD to the corresponding CPU-arch node using labels what we have tried in VM manifest. Any hints on this?

We haven't enabled CDI on Arm64, and I'm not very familiar with CDI. Therefore, I'm unsure if the CDI importer works on Arm64. Just to confirm, you're looking to schedule both VMI pods and CDI importer pods on the same k8s node. Is my understanding correct?

I would suggest opening an issue on CDI side if there is none yet.
@zhlhahaha The CDI importer needs to be on the same node if hostpath provisioner is used.

there is no way to schedule the CDI importer POD to the corresponding CPU-arch node using labels what we have tried in VM manifest. Any hints on this?

We haven't enabled CDI on Arm64, and I'm not very familiar with CDI. Therefore, I'm unsure if the CDI importer works on Arm64. Just to confirm, you're looking to schedule both VMI pods and CDI importer pods on the same k8s node. Is my understanding correct?

Correct! For the VM which has a local-storage attached, we somehow need to import the disk-image (VM image) using CDI. A CDI importer POD, by default is scheduled to the node where the new PV is created, and the PV contains the copy of VM image so that the VM can boot from it. Of course, we can specify the node where the PV should be located using PVC, but the majority of dynamic provisioner (including hpp) does not support selector instruction with which we can label both amd64 and arm64. Followings are the DV manifest what I have tried, but with no luck.
...
dataVolumeTemplates:
  - metadata:
      name: arm64-vm-boot-dv
    spec:
      preallocation: true
      pvc:
        selector:
          matchLabels:
            kubernetes.io/arch: arm64
        storageClassName: hostpath-csi
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 40Gi
      source:
        pvc:
          namespace: imagevolume
          name: almalinux-8-8-arm
...

Error message from logs.
claim.Spec.Selector is not supported for dynamic provisioning

I would suggest opening an issue on CDI side if there is none yet. @zhlhahaha The CDI importer needs to be on the same node if hostpath provisioner is used.

Hi, @gunine would you like to migrate the issue to https://github.com/kubevirt/containerized-data-importer/issues?

Followings are the DV manifest what I have tried, but with no luck.

From my perspective, this issue seems to be independent of CPU architecture. Would you like to know if the same issue occurs when starting VMI on an x86_64 platform as well?


Add a way to avoid duplicate attempts to initialize SDKLoggingSystem

Describe the feature
You can only initialize the SDKLoggingSystem once. This makes sense. However, there are two related problems as things currently stand:

Attempting a second initialization aborts execution.
There's no way to determine whether or not the SDKLoggingSystem is already initialized.

There needs to be way to handle this situation.
Use Case
This is not usually an issue but can be when debugging tests because there is no way to provide code that runs before any testing begins. You can only run code before a given test class begins to run, and you can't reliably be certain of the order in which tests will run as it changes depending on the number of test classes you have.
Proposed Solution
I propose two potential solutions. Implementing either one -- or both -- would make it trivial to avoid this problem.

Add an SDKLoggingSystem.isInitialized class variable which returns true if the logging system has been initialized, or false otherwise.
Change SDKLoggingSystem.initialize() to throw an exception instead of aborting when initialized a second time.

The first option would allow developers to write in every test class's class setUp() function:
if SDKLoggingSystem.isInitialized == false {
    SDKLoggingSystem.initialize(logLevel: .error)
}

The second option would allow:
do {
    SDKLoggingSystem.initialize(logLevel: .error)
} catch {
    /* ignore the exception or check it to be sure it's just a duplicate init error */
}

Either way, the test class that runs first would handle initializing the logging system (and setting the logging level), while every subsequent test class would see that it's already been done and skip the initialization step.
Other Information
No response
Acknowledgements

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

@shepazon Thanks for the feedback, we'll discuss as a team and figure out the best way to address this.  We'll let you know if we need any more info or context.

We must the fix the crash. As a good experience, we can just do the right thing without exposing the isInitialized. So it wouldn't matter how many times customer calls initialize method.

I agree. That would be even better.

Shipped in AWS SDK for Swift 0.34.0


[5.2] ErrorException in EntityNotFoundException.php line 16

I have been struggling with this weird error after submitting a form.
The most weird thing is that it occurs 'sometimes'.
I tried to debug the core code with no success.
The error says:

Missing argument 1 for Illuminate\Contracts\Queue\EntityNotFoundException::__construct(), called in /Users/..../...../app/Core/BaseRepository.php on line 93 and defined

This is unrelated to form submissions.


Fix nil pointer dereference in deployment reconciler

Description
Fix nil pointer dereference in deployment reconciler.
Type of change

This pull request fixes a bug in Radius and has an approved issue (issue link required).
Fixes: #6841

Auto-generated summary

🤖[deprecated] Generated by Copilot at e480029
Summary
🐛🚑💅

Fix nil pointer bug and improve formatting in reconciler package. The pull request updates the deployment_reconciler logic to avoid a potential crash and applies consistent code style to the reconciler files.

deployment_reconciler
Fixes a nil pointer bug
Code is more tidy

Walkthrough

Prevent nil pointer dereference when accessing status annotation (link)
Remove unnecessary blank line from reconciler package (link)

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test


JsonIgnore Needs to be Added wherever XmlIgnore is

Description of problem
I am currently working on updating the Redis Cache Provider to support JSON serialization with a binary fall back. A common error I am currently seeing is:
Newtonsoft.Json.JsonSerializationException: Self referencing loop detected for property 'Vocabulary' with type 'DotNetNuke.Entities.Content.Taxonomy.Vocabulary'. Path '$values[0].DesktopModule.Terms.$values[0].Vocabulary.Terms.$values[0]'.

Looking at the file DNN Platform/Library/Entities/Content/Taxonomy/Term.cs I see that in order to avoid this issue on the XML side, XmlIgnore was added to multiple properties. In order to support Json Serialization we will need to add JsonIgnore to the attributes that have XmlIgnore
Description of solution
In order to support Json Serialization we will need to add JsonIgnore to the attributes that have XmlIgnore

I can work on this one

Are there any preferences on how I do this? I can do just the Terms.cs class now. Or I can search for [XmlIgnore] and add [JsonIgnore] as well. I just don't want to create a PR that has 100's of file changes. Let me know.

@mtrutledge My preference for this would be lets go for the full solution in a single PR, targeting the 9.11.0 release branch.  Improving the serialization ability of core objects is a positive change for sure.


Fix file name mimetype detection to match the spec

According to the "Recommended checking order" section of the shared-mime-info spec:

Keep only globs with the biggest weight. If the patterns are different, keep only globs with the longest pattern, as previously discussed. If after this, there is one or more matching glob, and all the matching globs result in the same mimetype, use that mimetype as the result.

However, currently, all the globs regardless of weight and pattern length are kept from this step. Only the number of mimetypes that match is checked. This can cause some problems, such as html files without doctype or html tags being detected as plaintext files despite having an .html file extension, like in #22.
In addition, this solves #27 because I had to fix the sorting to implement this.

Thank you for you contribution; I especially appreciate the comments and the regression test: both are very welcome.


Improve ksdiff url

Thank you for the contribution. It was merged directly as 4a20263fc684b08852203dae6b2c9afb76f64f6c to keep commit history cleaner. Your contribution is still credited to you.


Why use FIFO IO directly

I find this issus  from
https://github.com/containerd/containerd/issues/9568
The community shim links child procress through copyIO. The shim and containerd have separate pipe links, so the shim can close the pipe when the exec process exit. r-shim use the FIFO-IO directly.

@abel-von @mxpv  @Burning1020
problem  find in ctr v1.7 "TestContainerDrainExecIOAfterExit"

As mentioned here: https://github.com/containerd/rust-extensions/pull/24#issuecomment-1040619960
We think directly IO could be efficient and simple.


[LiveComponent] Date field ajax request 3 times

Hello, when we have a date type field and we configure the data-model="on(change)", it is executed when we modify the day, the month, and the year, instead of being executed when we have finished filling in everything :
{{ form_row(form.birthdate, {'attr': {'data-model': 'on(change)|debounce(700)|' ~ form.birthdate.vars.full_name }}) }}

https://user-images.githubusercontent.com/53140475/228486448-0a39b2e8-99ea-4226-bfff-ecb207b120a7.mp4
In text fields, it works pretty good

I think this is the expected behaviour, html dispatch the onChange event on every change made to the field (day, month, year, and even minute and second). Maybe you can listen to the onBlur event or manually change the value.

Hey! You mean, something like that?
    {{ form_row(form.birthdate, {'attr': {'data-model': 'on(blur)|debounce(700)|' ~ form.birthdate.vars.full_name }}) }}

Unfortunately, this no longer causes any events.
When you say "manually change the value", what do you mean?

Like here: https://symfony.com/bundles/ux-live-component/current/index.html#working-with-the-component-in-javascript

Thank you!


Update read_chunk() PB protocol to return trimmed chunks

Add trimed array of chunk_pos at read_chunk message
trimmed are only filled only when needs_trimmed is true which is false by default
Pass options defined in PB protocol to the flu server
several minor changes in repair code (like change from spawn to spawn_link)

Will follow with actual trim implementation later.

Discussion result:

checksum must be recalculated after any trim
even if in return case

So, next comes...

Basic actual trim & GC implementation
Checksum recalculation
(nice to have) TCP code separation from flu server

Currently the border trimming happens in CR client, because this makes repair life easier. This would be a point for discussion, maybe it'd better avoid repairing a whole GB chunk by reading a single byte.

乙！+1, many thanks!

@slfritchie Thank you for review, btw what do you think of slicing the chunk returned by flu to fit client-requested size at CR client?

If the original chunk was 1MB and the client asked for 1KB in the middle of the original chunk, why should the server send 1023 extra KB? (The "reductio ad absurdum" https://en.wikipedia.org/wiki/Reductio_ad_absurdum argument suggests that for any read_chunk request, the server should send the whole file ... send all files ... send the entire Internet!  ^_^)
I like the idea of making the clients to as much "extra work" as is reasonable ... but I feel that sending the original chunk (send the entire Internet) isn't a good use of network bandwidth: the server memory & CPU is cheaper than network b/w?


Use floating-ui for contract list popup

The main motivation behind this was because I want the ContractCard to only render conditionally on hover (it's quite heavy, e.g. it subscribes to Firestore for the contract data) and I didn't see any reasonable way to use Tippy to do that.
As far as I can tell floating-ui is a better library and there's no reason for us to write code against Tippy.

FYI @akrolsmir (I put back the quick betting because now we don't render all the cards unconditionally.)


perf: cache decoded instructions

Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

I don't get why codecov fails in the #[derive(Copy, Clone lines

I don't get why codecov fails in the #[derive(Copy, Clone lines

Yes, it's annoying. It boils down to the code generated apparently not being covered. Maybe I sprinkled it in a few more places than needed.


feat: Add Luhn (closes #120)

https://github.com/exercism/vlang/pull/122 fixes the failure, which is not related to this PR.

Would you mind updating this branch with the latest code from #122? Just to get that sweet sweet green color before merging :smile:

Updated.


Version 2 unusable: App crashes when pressing +

Since version 2.0.0 the app crashes immidietaly when you click on + at tasks. I tried to wipe data, didnt help.
Android Version: 9.0
Model: Nokia 3 TA-1032
GMS: manually removed

I am terribly sorry for your experience. However, I cannot reproduce the issue you are having. Can you update to the 2.0.1 release?

2.0.1 has the same problem for me. I will try Debugging tomorrow maybe.
Btw, maybe you could add an error Catcher showing the exception in an extra Activity

Update: I have reproduced the issue, it seems that this is only present in Android 9.0 Pie. The TwoLineRadioButton component is throwing a NullPointerException.

Okay, is this fixable?

Yes, working on a fix right now. :)

Update: will release the update with the hotfix later

Hotfix is now live in the Releases section :)


continuously buy and sell

Please confirm with the attached image where we need to change the number of token to buy so it can be changed to our requirement or can be given as 100

0

Yes, change that to whatever you want.

@anandexclusive hey just a heads up never put stuff like this... sure maybe your private key isnt there.. but realistically your giving us your private key to your telegram account ... which im sure can technically reak havic ...
@anandexclusive


remove compiler_resource_dir

After the include path changes in #2302 it should not be used, clang should find the necessary files relative to the binary.
The compiler_resource_dir in the package_layout.json is not used when the analysis command is built.

It was removed in #2880.


Adds minimum-coverage option

Users can now decide from the command line (CLI) whether to stop the program after a minimum coverage has been reached and the coverage has remained the same over multiple iterations.
2 new arguments:
--minimum-coverage-quick=1.0
--minimum-iteration-quick=10

All done now. No more duplicate code.

I have processed/fixed all of your comments. I'm not sure how unit tests work here in Pynguin. I added a new file "tests/ga/stoppingconditions/test_minimumcoveragestoppingcondition.py".
I also tested the stop condition extensively myself.


Is it possible to load a non-existent file?

My use-case is that I need to load a type of file which does not exist but can be generated on-the-fly.
Imagine a file giving the current directory listing and I'd like to import that as ./some/path/dir.json. Obviously I don't want to create those files in every directory and to maintain them so I wrote a loader to provide the content of the file when it is needed. The problem is that the loader will not be invoked because webpack tries to read the file itself from the system and not finding it breaks the entire chain. I even went on with NormalModuleReplacementPlugin to direct webpack to a file that exists hoping that it will be happy if it loads something but it turned that it actually replaced all references with just one - that dummy file.
Somewhere I read that pitching loaders are able to short-circuit the processing chain when the file content does not matter (as is my case) and tried that but still webpack insists on having a real file or it will not bother to run any loader.
I wonder if there are other options left to get webpack to load such a "virtual" file by passing the import request through my generator and to accept the output of the generator as the content which to be further processed as usual? I may need babel or some CSS stuff run on that content just like one would do with a normal file written to the file system.
Thanks

You can load "non-files" by using a require statement that specifies the loader as such:
require('mything-loader!')

or as an entry point:
entry: 'mything-loader!',

then write mything-loader to do whatever you need it to and return whatever code you want.

Your suggestion appears equivalent to what I already have (but setup differently)
module:{
    loaders:[{
        test: /my-thing/,
        loader: 'mything-loader'
    }]
}

and it works well for files that exist but not for ones that don't.
Specifying the loader in the requre() call is not supposed to do anything different from an entry in the loaders block, right? Or am I missing something particular?

He proposed calling the loader without file.

It looks like you just deleted our lovely crafted issue template. It was there for good reasons. Please help us solving your issue by answering the questions asked in this template. I'm closing this. Please either update the issue with the template and reopen, or open a new issue.

Oh, I see - to call require() but only specify a loader and no file - didn't expect that but will give it a try. Thanks

is it possible do accomplish this using some or custom resolver plugin?

Is there any loader implemented for this use case?

Not sure what you mean to use a loader for.
The problem described here was not the loader itself but that it wouldn't get invoked if the target file does not exist. But this got solved if the file was not specified in the import statement as usual but was provided as the query parameter instead. Now my loader gets called as expected but that's not a general purpose loader - it gets called when one of those special files is requested (certain JSON files in my case) and produces the respective ES6 source code.
Cheers

I have created a loader like this, in which I can temporarily load JSON file during runtime, and this file can be non-existent during webpack compiling time.
require('fileloader!?path=file&type=run')(function (content) {
    /** handle with content */
});

/** custom-loader */
var loaderUtils = require('loader-utils');
var path = require('path');
var fs = require('fs');

module.exports = function () {
    this.cacheable && this.cacheable();

    var params = loaderUtils.parseQuery(this.resourceQuery);

    /** compile time */
    if (params.type === 'compile') {
        var root = this._compiler.options.resolve.root;
        var exportWhenExisted = function (dir, filePath) {
            return fs.existsSync(path.resolve(dir, filePath)) ? `module.exports = require('${filePath}')` : '';
        };

        if (typeof root === 'string') {
            /** string type */
            return exportWhenExisted(root, params.path);
        }  else {
            /** array type */
            var len = root.length;
            for (var i = 0; i < len; i++) {
                var result = exportWhenExisted(root[i], params.path);
                if (result) {
                    return result;
                }
            }
        }

        return '';
    }

    /** run time */
    if (params.type === 'run') {
        return `
            module.exports = function (callback) {
                var xhr = new XMLHttpRequest();
                xhr.onreadystatechange = function () {
                    if (xhr.readyState === 4) {
                        if (xhr.status === 200 || xhr.status === 304 || xhr.status === 202) {
                            if (/\\.json$/gi.test('${params.path}')) {
                                callback(JSON.parse(
                                        xhr.responseText
                                            .replace(/\\u2028/g, '\\\\u2028')
                                            .replace(/\\u2029/g, '\\\\u2029')
                                    )
                                )
                            }
                        }
                    }
                }

                xhr.open('GET', '${params.path}', true);
                xhr.send();
            };
        `;
    }
};

However, I haven't find a solution for requiring files using loader during runtime

Could it be even possible? That would mean to bundle the loader so it can run and produce its output at runtime.

Maybe not possible, but with using such a loader, I don't need to worry about non-existent files during compiling time at all. Especially in the case when I need to require a file, which may be created in the future.


updated link share description

changed the description text for shared links

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Trav dev

@ygoyal18 Feel free to merge after you review.

For future PRs, please rebase instead of commit followed by a revert. I also have some comments on the code coming in a moment.


Backport of the automatic modules names.

Hi. This is a back port of d651911bd592526e34f70a50778954810e88f11b into the 4.x branch. It would be really beneficial to release a 4.4.1 patch release so that QueryDSL can be used in modular world without relying on file based generated modules names. This doesn't change anything when run on the class path and doesn't add any further Java modules system capabilities to QueryDSL.
Thank you for considering this.

Querydsl 5.0.0.M1 is out and is the first version of Querydsl to support Java 9 out-of-the-box. We do not intend any further 4.x releases.


Web APIs and AJAX Chapter

Would be nice to have a separate chapter that talks about Web APIs and AJAX as they are fundamental for creating interactive and dynamic web applications

I want to work on this  but where are these chapters? Or Do I need to add them?

I want to work on this but where are these chapters? Or Do I need to add them? Also this project looks cool, I will be happy to add to this.

Hi @StrixV54, these are the new chapters that need to be added. We would be more than happy if you could do this. Let me know if you need any help.

can you assign me this issue so that i can work on this

@sumn2u How to add chapter number and page number .

@bEluga0000 To add a chapter you can add following section in  top of your .md file.
---
layout: editorial
chapter: <chapter_id>
pageNumber: <page_number>
description: <small_description_of_content>
---

Additionally, to preview the newly created chapter in the sidebar, it needs to be added to the SUMMARY.md file as shown here.


[Feature]: linux-aarch64 support

What's missing?
As far as I can tell there is no mention of what architectures are supported. I tried to get it to work, but I'm not really sure what I'm supposed to do and whether it is possible to get it going at all. Can it be done with adjustments to the flake only? If there is no support yet, it would be nice to have a note somewhere in the README or in the documentation.
Possible solution
No response
Alternatives
No response
Additional context
No response

closes by #524


Handle coded index variable sizes

If a .NET assembly has a table large enough to trip a coded index into the larger 4-byte format rather than the 2-byte format, getnetguids.py would get totally thrown for a loop and read guids from somewhat arbitrary places.
is fix nao
Resolves https://github.com/CylanceSPEAR/GetNETGUIDs/issues/6
Also helps-with-but-doesn't-quite-solve https://github.com/CylanceSPEAR/GetNETGUIDs/issues/4, where there's also some strangeness at play with the #- metadata tables' uncompressed data, rather than the normal #~ compressed metadata.

Thanks!


Package azure-cli-2.0.52-1.el7.x86_64.rpm is not signed

Describe the bug
Installation of AzureCLI on CentOS doesn't work
To Reproduce
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
sudo yum -y install azure-cli
['rpm', '--import', 'https://packages.microsoft.com/keys/microsoft.asc']
['sh', '-c', 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo']
Error with cmd: ['yum', 'install', '-y', 'azure-cli']
Output: Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package azure-cli.x86_64 0:2.0.52-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
Package           Arch           Version               Repository         Size
Installing:
azure-cli         x86_64         2.0.52-1.el7          azure-cli          25 M
Transaction Summary
Install  1 Package
Total download size: 25 M
Installed size: 173 M
Downloading packages:
Package azure-cli-2.0.52-1.el7.x86_64.rpm is not signed
[stderr]
Package azure-cli-2.0.52-1.el7.x86_64.rpm is not signed
Traceback (most recent call last):
File "cyclecloud_install.py", line 369, in
main()
File "cyclecloud_install.py", line 354, in main
install_pre_req()
File "cyclecloud_install.py", line 300, in install_pre_req
_catch_sys_error(["yum", "install", "-y", "azure-cli"])
File "cyclecloud_install.py", line 29, in _catch_sys_error
output = check_output(cmd_list)
File "/usr/lib64/python2.7/subprocess.py", line 575, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['yum', 'install', '-y', 'azure-cli']' returned non-zero exit status 1
".;
DEBUG: Finish sending metric.
DEBUG: 10:21:14 PM - NewAzureResourceGroupDeploymentCmdlet end processing.
DEBUG: 10:21:14 PM - NewAzureResourceGroupDeploymentCmdlet end processing.
Expected behavior
The package is expected to be signed
Environment summary
Python, Bash
Additional context
Add any other context about the problem here.

Thank you willexu.
However the workaround you proposed can't apply in my case, because it is a "production" environment.
A lot of existing scripts are relying on it.
we really need a fix ASAPS.

I wanted to warmly thank you. It is working now.
BR,
Daniel


White outline?

Has anyone figured out how to eliminate the white outline that's particularly noticeable on the top in macOS Mojave?

White outline is visible on macOS Catalina as well, would be great to find out how to get rid of it. By the way, this is the only dimmer app that works with Catalina so far. Good job.

I'm going to have a go at fixing this after upgrading to Catalina as I have a bit of experience with Electron.
This plugin has improved a lot since I tried it a few years back! Shame things have gone a bit quiet since then.
So glad this works for 64-bit as I've in touch with the developers of ScreenShade (big part of my current workflow) and they will not update it.
So this is our only hope for darker screens on the latest macOS.


ci: change release pipeline to run for main branch

Signed-off-by: ankitm123<EMAIL_ADDRESS>

Not changing the version, as 0.3.0 was never released.


Add nvim get_line function

Fix #32. Just copy paste removed function

Any chance we could get this merged?


OAuth 1.0a : POST Calls to request Access Tokens without Body : Will require Content-Length header

Summary
We recently encountered an issue while retrieving a OAuth Access token for a Provider(1.0a) - we internally use a Feign client with an interceptor making use of the CoreOAuthConsumerSupport class to retrieve the access tokens - the provider seem to be returning a 411 response.
On a deep dive we saw that a POST call to retrieve the access token via the AcceptAuthorizationHeader set i.e we do not have a POST body and hence we do not have a Content-Length header and there by the 411 response
I understand OAuth spec does not mention anything on Content-Length headers, but looking at the RFC 7230 they suggest that we have a header with value 0 even if it is empty payload

For example, a Content-Length header
field is normally sent in a POST request even when the value is 0
(indicating an empty payload body).

Actual Behavior
When its a POST call to OAuth provider to get access tokens with AcceptAuthorizationHeader set the Content-Length headers is not set.
Expected Behavior
When its a POST call to OAuth provider to get access tokens with AcceptAuthorizationHeader set the Content-Length header equal to 0.
Configuration
N/A
Version
spring-security-oauth : 2.3.6.RELEASE
believe this can happen in older versions as well.
Probable Resolution

We could pass in additionalRequestHeaders to  BaseProtectedResourceDetails and that would get put in the request header.

But this approach seems to be hacky as we are introducing additional parameters and in case we have a context of the access tokens ....it becomes messy if we have a built in refresh etc.

A solution more closer to the problem can be made in CoreOAuthConsumerSupport#getTokenFromProvider

    if ("POST".equalsIgnoreCase(httpMethod)) {
      requestHeaders.put("Content-Type", "application/x-www-form-urlencoded");
      // DIRECTAPP-1054 Customization.
      if(details.isAcceptsAuthorizationHeader()) {
        requestHeaders.put("Content-Length ", "0"); // The space is intentional
      }
    }

Sample
Currently do not have a mechanism to demonstrate this as we would require a OAuth Provider available ..... probably we can mock this but here is the current work around we have in place i.e by overriding the method getTokenFromProvider (Please refer 12th line)
  @Override
  protected OAuthConsumerToken getTokenFromProvider(ProtectedResourceDetails details, URL tokenURL, String httpMethod,
                                                    OAuthConsumerToken requestToken, Map<String, String> additionalParameters) {
    boolean isAccessToken = requestToken != null;
    if (!isAccessToken) {
      //create an empty token to make a request for a new unauthorized request token.
      requestToken = new OAuthConsumerToken();
    }

    TreeMap<String, String> requestHeaders = new TreeMap<String, String>();
    if ("POST".equalsIgnoreCase(httpMethod)) {
      requestHeaders.put("Content-Type", "application/x-www-form-urlencoded");

      // Customization.
      if(details.isAcceptsAuthorizationHeader()) {
        requestHeaders.put("Content-Length ", "0"); // The space is intentional
      }
    }
    InputStream inputStream = readResource(details, tokenURL, httpMethod, requestToken, additionalParameters, requestHeaders);
    String tokenInfo;
    try {
      ByteArrayOutputStream out = new ByteArrayOutputStream();
      byte[] buffer = new byte[1024];
      int len = inputStream.read(buffer);
      while (len >= 0) {
        out.write(buffer, 0, len);
        len = inputStream.read(buffer);
      }

      tokenInfo = new String(out.toByteArray(), "UTF-8");
    }
    catch (IOException e) {
      throw new OAuthRequestFailedException("Unable to read the token.", e);
    }

    StringTokenizer tokenProperties = new StringTokenizer(tokenInfo, "&");
    Map<String, String> tokenPropertyValues = new TreeMap<String, String>();
    while (tokenProperties.hasMoreElements()) {
      try {
        String tokenProperty = (String) tokenProperties.nextElement();
        int equalsIndex = tokenProperty.indexOf('=');
        if (equalsIndex > 0) {
          String propertyName = OAuthCodec.oauthDecode(tokenProperty.substring(0, equalsIndex));
          String propertyValue = OAuthCodec.oauthDecode(tokenProperty.substring(equalsIndex + 1));
          tokenPropertyValues.put(propertyName, propertyValue);
        }
        else {
          tokenProperty = OAuthCodec.oauthDecode(tokenProperty);
          tokenPropertyValues.put(tokenProperty, null);
        }
      }
      catch (DecoderException e) {
        throw new OAuthRequestFailedException("Unable to decode token parameters.");
      }
    }

    String tokenValue = tokenPropertyValues.remove(OAuthProviderParameter.oauth_token.toString());
    if (tokenValue == null) {
      throw new OAuthRequestFailedException("OAuth provider failed to return a token.");
    }

    String tokenSecret = tokenPropertyValues.remove(OAuthProviderParameter.oauth_token_secret.toString());
    if (tokenSecret == null) {
      throw new OAuthRequestFailedException("OAuth provider failed to return a token secret.");
    }

    OAuthConsumerToken consumerToken = new OAuthConsumerToken();
    consumerToken.setValue(tokenValue);
    consumerToken.setSecret(tokenSecret);
    consumerToken.setResourceId(details.getId());
    consumerToken.setAccessToken(isAccessToken);
    if (!tokenPropertyValues.isEmpty()) {
      consumerToken.setAdditionalParameters(tokenPropertyValues);
    }
    return consumerToken;
  }

I recently got aware of this
CR 6961084 - prevents setting of some headers like Content-Length manually, citing security reasons. If we do end up setting them JDK strips them and causes the response to be again 411 from the OAuth provider.
We could enable setting this header by enabling
-Dsun.net.http.allowRestrictedHeaders=true
refer https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6997628 but this would lead to opening us to vulnerabilities.
But the OAuthProvider in our case was lenient on headers and we were able to pass in
"Content-Length " v/s "Content-Length" and hence we ended up with the above fix.
With the above piece of information I believe the ideal fix is to may be to pass an empty body and that will take care of setting the Content-Length to zero and there by we would not have to tamper with setting of headers manually. So the proposed ideal fix would be something like
      if (sendOAuthParamsInRequestBody) {
        connection.setDoOutput(sendOAuthParamsInRequestBody);
        connection.connect();
        String queryString = getOAuthQueryString(details, token, url, httpMethod, additionalParameters);
        OutputStream out = connection.getOutputStream();
        out.write(queryString.getBytes("UTF-8"));
        out.flush();
        out.close();
      }else if(details.isAcceptsAuthorizationHeader() && (("POST".equalsIgnoreCase(httpMethod) || "PUT".equalsIgnoreCase(httpMethod)))) {
        connection.setDoOutput(true);
        connection.connect();
        OutputStream out = connection.getOutputStream();
        out.write("".getBytes());
        out.flush();
        out.close();
      }

I.e we would be overriding the method readResource instead of getTokenFromProvider and the method would look like below.
 /**
   * Read a resource.
   *
   * @param details The details of the resource.
   * @param url The URL of the resource.
   * @param httpMethod The http method.
   * @param token The token.
   * @param additionalParameters Any additional request parameters.
   * @param additionalRequestHeaders Any additional request parameters.
   * @return The resource.
   */
  protected InputStream readResource(ProtectedResourceDetails details, URL url, String httpMethod, OAuthConsumerToken token, Map<String, String> additionalParameters, Map<String, String> additionalRequestHeaders) {
    url = configureURLForProtectedAccess(url, token, details, httpMethod, additionalParameters);
    String realm = details.getAuthorizationHeaderRealm();
    boolean sendOAuthParamsInRequestBody = !details.isAcceptsAuthorizationHeader() && (("POST".equalsIgnoreCase(httpMethod) || "PUT".equalsIgnoreCase(httpMethod)));
    HttpURLConnection connection = openConnection(url);

    try {
      connection.setRequestMethod(httpMethod);
    }
    catch (ProtocolException e) {
      throw new IllegalStateException(e);
    }

    Map<String, String> reqHeaders = details.getAdditionalRequestHeaders();
    if (reqHeaders != null) {
      for (Map.Entry<String, String> requestHeader : reqHeaders.entrySet()) {
        connection.setRequestProperty(requestHeader.getKey(), requestHeader.getValue());
      }
    }

    if (additionalRequestHeaders != null) {
      for (Map.Entry<String, String> requestHeader : additionalRequestHeaders.entrySet()) {
        connection.setRequestProperty(requestHeader.getKey(), requestHeader.getValue());
      }
    }

    int responseCode;
    String responseMessage;
    try {
      if (sendOAuthParamsInRequestBody) {
        connection.setDoOutput(sendOAuthParamsInRequestBody);
        connection.connect();
        String queryString = getOAuthQueryString(details, token, url, httpMethod, additionalParameters);
        OutputStream out = connection.getOutputStream();
        out.write(queryString.getBytes("UTF-8"));
        out.flush();
        out.close();
      }else if(details.isAcceptsAuthorizationHeader() && (("POST".equalsIgnoreCase(httpMethod) || "PUT".equalsIgnoreCase(httpMethod)))) {
        connection.setDoOutput(true);
        connection.connect();
        OutputStream out = connection.getOutputStream();
        out.write("".getBytes());
        out.flush();
        out.close();
      }

      responseCode = connection.getResponseCode();
      responseMessage = connection.getResponseMessage();
      if (responseMessage == null) {
        responseMessage = "Unknown Error";
      }
    }
    catch (IOException e) {
      throw new OAuthRequestFailedException("OAuth connection failed.", e);
    }

    if (responseCode >= 200 && responseCode < 300) {
      try {
        return connection.getInputStream();
      }
      catch (IOException e) {
        throw new OAuthRequestFailedException("Unable to get the input stream from a successful response.", e);
      }
    }
    else if (responseCode == 400) {
      throw new OAuthRequestFailedException("OAuth authentication failed: " + responseMessage);
    }
    else if (responseCode == 401) {
      String authHeaderValue = connection.getHeaderField("WWW-Authenticate");
      if (authHeaderValue != null) {
        Map<String, String> headerEntries = StringSplitUtils.splitEachArrayElementAndCreateMap(StringSplitUtils.splitIgnoringQuotes(authHeaderValue, ','), "=", "\"");
        String requiredRealm = headerEntries.get("realm");
        if ((requiredRealm != null) && (!requiredRealm.equals(realm))) {
          throw new InvalidOAuthRealmException(String.format("Invalid OAuth realm. Provider expects \"%s\", when the resource details specify \"%s\".", requiredRealm, realm), requiredRealm);
        }
      }

      throw new OAuthRequestFailedException("OAuth authentication failed: " + responseMessage);
    }
    else {
      throw new OAuthRequestFailedException(String.format("Invalid response code %s (%s).", responseCode, responseMessage));
    }
  }


Fixed some bugs in NupkgWriter

nuspec file
if the attribute "version" is empty it will not be written.
coreProp file
fixed creator element format
fixed version element value (removed "Some()")
removed whitespaces

wow. thanks for taking care of this.


Serialize/deserialize font cache to/from memory.

Hello, Jonathan! Thank You for a useful library!
On mobiles it takes a few seconds to generate each font cache. So, it would be nice to have a way to save and load it in memory to be flexible. One can add these memory blocks to the whole application's cache and store it to disk.
Best regards,
Alexander

You're welcome!  So your suggestion is a sort of format specification so that we can save and load the internal font cache?  I like that idea and it would certainly come in handy.
SDL_FontCache uses a set of textures (the font cache levels) to store the glyph graphics and it stores a map of position rects for each loaded glyph.  We would need some text format saver/loader and an image saver/loader or else delegate to the application by providing access to these data objects.  I definitely prefer the second approach to keep the dependencies clean.

Text saver/loader is too big for such little library.
Can I iterate and get/set internal data by FC_GetGlyphCacheLevel/FC_SetGlyphCacheLevel and FC_GetGlyphData/FC_SetGlyphData?
What is cache level?
What range has codepoint?

Text saver/loader is too big for such little library.
Can I iterate and get/set internal data by FC_GetGlyphCacheLevel/FC_SetGlyphCacheLevel and FC_GetGlyphData/FC_SetGlyphData?
What is cache level?
What range has codepoint?

Text saver/loader is too big for such little library.
Can I iterate and get/set internal data by FC_GetGlyphCacheLevel/FC_SetGlyphCacheLevel and FC_GetGlyphData/FC_SetGlyphData?
What is cache level?
What range has codepoint?

FC_GetNumCacheLevels() will tell you how many textures the font is holding.  Then use FC_GetGlyphCacheLevel() to get each of them.
FC_SetGlyphCacheLevel() can be used when loading to tell the font to use a particular texture you've loaded.
There is not currently a way to get all of the glyph data, so we should add that.  Right now, you'd have to know which codepoints have been loaded already in order to use FC_GetGlyphData().  The range for codepoints can be any 4-byte UTF-8 sequence (endianness might matter).  Once you have all of that data, you would use FC_MakeGlyphData() and FC_SetGlyphData() for each codepoint.

Alright, I just pushed 51f588e3157913db773c6a7caa9fa73bf4626a79.  You should be able to use FC_GetNumCodepoints() to size an array, then FC_GetCodepoints() to fill the array with all of the loaded codepoints.  I also exposed FC_UploadGlyphCache() so you can pass in SDL_Surfaces instead of textures and the library will do the conversion.  This will make it possible to save/load from memory (or other, via SDL_rwops).

Thank You for quick reply, Jonathan!
There's no way to get SDL_Surface from SDL_Texture.
I catch surfaces from the call back just before SDL_FreeSurface. It works, but new symbols isn't rendered, may be due to some internal FC_Font's states was not saved.
I found compromise solution for now - empty loading string.
SDL_GetHint return 0 when no hint is set, so we need to check:
old_filter_mode[256];  // Save it so we can change the hint value in the meantime
char* mode = SDL_GetHint(SDL_HINT_RENDER_SCALE_QUALITY);
(old_filter_mode, 255, "%s", mode ? mode : "");
...
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, strlen(old_filter_mode) ? old_filter_mode : 0);
I increase buffer size because there are may be such a hint like "linear" etc.

Oh yeah, you can use SDL_LockTexture() to get pixels into a surface, but it's not guaranteed to be the latest texture data.  You could use a temporary render target and do SDL_RenderReadPixels() from it, which should assure the latest data.  I think that's how most people would save an SDL_Texture to file?

That sounded like a challenge, so I wrote up this function.  It mostly does what I expected, though reuploading displays some sort of precision drift.  Something is off a little bit.
SDL_Surface* copy_texture_to_surface(SDL_Renderer* renderer, SDL_Texture* texture)
{
    if(renderer == NULL || texture == NULL)
        return NULL;

    // Ensure texture is ready for copying
    SDL_SetTextureColorMod(texture, 255, 255, 255);
    SDL_SetTextureAlphaMod(texture, 255);

    // Figure out texture pixel format
    Uint32 format;
    int w, h;
    if(SDL_QueryTexture(texture, &format, NULL, &w, &h) < 0)
        return NULL;

    // Prepare surface pixel format
    int bpp;
    Uint32 Rmask, Gmask, Bmask, Amask;
    if(!SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, &Amask))
        return NULL;

    // Create temp render target
    SDL_Texture* temp = SDL_CreateTexture(renderer, format, SDL_TEXTUREACCESS_TARGET, w, h);
    if(temp == NULL)
        return NULL;

    // Copy the texture
    SDL_SetTextureBlendMode(temp, SDL_BLENDMODE_NONE);
    SDL_SetRenderTarget(renderer, temp);
    SDL_RenderCopy(renderer, texture, NULL, NULL);

    SDL_Surface* surface = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, bpp, Rmask, Gmask, Bmask, Amask);
    if(surface == NULL)
        return NULL;

    // Read the temp pixels
    if(SDL_RenderReadPixels(renderer, NULL, format, surface->pixels, surface->pitch) < 0)
    {
        SDL_FreeSurface(surface);
        SDL_SetRenderTarget(renderer, NULL);
        return NULL;
    }

    SDL_SetRenderTarget(renderer, NULL);
    return surface;
}

It looks impressive!
It needs to clear render target:
SDL_SetRenderTarget(renderer, temp);
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texture, NULL, &rect);
And resulting surface is flipped by y. How I can flip it back?

You could use SDL_RenderCopyEx() with a vertical flip of the texture render step.  Otherwise, you can do it by hand by swapping scanlines in the SDL_Surface.  I have to do this in SDL_gpu:
https://github.com/grimfang4/sdl-gpu/blob/master/src/renderer_GL_common.inl#L2428

Thank You, Jonathan!
Now, cache saving is working!
Although I added FC_Get/SetLastGlyph to save current position in texture.
But one problem with copy_texture_to_surface: it slightly blur the image. After a few times small fonts degenerate.
SDL_FontCache creates textures with SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "0");
At the begin of copy_texture_to_surface:I set it too, but it doesn't help.
How can I fix it?

I'm not really sure why this is.  It could be a subpixel offset issue?  I don't have the time right now to tinker with it.


Update management-groups-overview.md

Fix typos.

#sign-off

@arob98: Only the author, @rthorn17, can sign off on this pull request.


Migration has made the service inaccessible

I got a popup about migrating network setup. It asked ports 80,443. I didnt change anything. Now I cant seem to access the cosmos server as well docker images created using cosmos earlier.
Docker logs seems fine. I am assuming reverse proxy is broken.

Wrong product


Use Component ChangeStatus, and NewEdge updates to determine if a socket-to-socket connection is new

If either if the Components that an edge is connecting the Output & Input sockets of is new, then the edge itself must be new as well.
If neither of the Components is new, then we check to see if it's a new AttributePrototypeArgument (as determined by a NewEdge update where the destination is an AttributePrototypeArgument).

bors merge


[#noissue] Cleanup

Codecov Report

Merging #6883 into master will decrease coverage by 0.03%.
The diff coverage is 11.11%.

@@            Coverage Diff             @@
##           master    #6883      +/-   ##
==========================================
- Coverage   39.20%   39.17%   -0.04%
==========================================
  Files        3221     3221
  Lines       95347    95346       -1
  Branches    11886    11886
==========================================
- Hits        37384    37352      -32
- Misses      54973    55001      +28
- Partials     2990     2993       +3

Impacted Files
Coverage Δ

.../hbase/rowmapper/RequestAwareDynamicRowMapper.java
0.00% <ø> (ø)

...n/server/bo/serializer/trace/v2/SpanDecoderV0.java
86.77% <ø> (-0.06%)
:arrow_down:

...oint/common/server/trace/ApiDescriptionParser.java
73.46% <ø> (ø)

...pinpoint/common/server/util/CidrAddressFilter.java
54.54% <0.00%> (ø)

...nt/hbase/schema/reader/core/CreateTableChange.java
30.98% <ø> (ø)

.../interceptor/client/ChannelNewCallInterceptor.java
0.00% <0.00%> (ø)

...pc/interceptor/server/GrpcServerStreamRequest.java
0.00% <0.00%> (ø)

...or/AbstractHttpClientExecuteMethodInterceptor.java
0.00% <0.00%> (ø)

...inpoint/plugin/redis/lettuce/LettuceConstants.java
0.00% <ø> (ø)

...nstrument/lambda/DefaultLambdaBytecodeHandler.java
0.00% <ø> (ø)

... and 16 more

Continue to review full report at Codecov.

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


Allow users to sort the entire list of faculty or search results by "Most recent" or "Alphabetical"

This has been deployed but somehow reverse alphabetical is the default, when what we want is date updated. Looking into it.

Fixed!


Help wanted

loading the poru

_loadPlayer() {
    this.poru = new Poru(this,nodes,PoruOptions)

    return this.poru;
  };
    -------------------------------------------------------------------------------------------------------------------------

  nodes and prouoptions are

  const nodes = [
  {
    name: "node",
    host: "hostid",
    port: 2020,,
    password: "hostpass",
    secure: false
  }
]
const PoruOptions = {
  reconnectTime: 0,
  resumeKey: 'MyPlayers',
  resumeTimeout: 60,
  defaultPlatform: "ytsearch"
}
    -------------------------------------------------------------------------------------------------------------------------
 load the poru main events

 _loadNodeEvents() {
    readdirSync("./src/events/Node").forEach(file => {
      const event = require(`../events/Node/${file}`);
      this.poru.on(event.name, (...args) => event.run(this, ...args));
    });
    console.log(`Loading Events Lavalink`);
    -------------------------------------------------------------------------------------------------------------------------

    node connect event

module.exports = {
    name: "nodeConnect",
    run: async (client, node) => {

       console.log(`Node ${node.name} is ready!`)
    }
};

why is this not working its load the event but node is not readying

and when i got to play some thing its says no available nodes

This may be because of your handler
You can see our example here
https://github.com/parasop/poru-example

but the log say it loaded but its not working

const PoruOptions = {
    reconnectTime: 0,
    resumeKey: 'MyPlayers',
    resumeTimeout: 60,
    defaultPlatform: "ytsearch"
}
class LaraMain extends Poru {
constructor(client) {
    super({
        nodes: config.nodes,
        options: PoruOptions
    })

why this say no lavalink node provided ?

eevnt loader

const { readdirSync } = require('fs');

module.exports = (client) => {
    let count = 0;
    readdirSync("./src/events/Players/").forEach(file => {
        const event = require(`../events/Players/${file}`);
        let eventName = file.split(".")[0];
        client.on(eventName, event.run.bind(null, client));
    count++;
    });
    console.log(`Loading Events Lavalink ${count}`, "event");

}
node connect event are
module.exports.run = (client, node) => {
	console.log(`Node ${node.name} is ready.`);
  };
  why this still say `Error: No nodes are available.`

I'm really confused rn i did all right but the node are not readying

@pasindu20 look at my lavalink handler
https://github.com/Yukkuri-Studio/yukkuri-lava
im using poru too there, and you can use my poru handler if you want

Is this package work with djs 13 right?

ofc, this package work with djs 13-14

I'm really confused rn i did all right but the node are not readying

this.poru.on("nodeConnect", node => console

I'm really confused rn i did all right but the node are not readying

this.poru.on("nodeConnect", node => console.log(node.name));
This is working for me

I try that note event folder jast in main file and its not working ether

I'm really confused rn i did all right but the node are not readying

this.poru.on("nodeConnect", node => console.log(node.name));
This is working for me

I try that note event folder jast in main file and its not working ether

try to remove the poru option

Sorry for all this trouble i foget to add client.poru.init(client); to ready event
Issue has been fixed


Move the deployment check into common code and add tests.

Proposed Changes
As per title, this is the first function to be pulled out into common code. It makes the DeploymentCheck available from either Serving and Eventing and adds unit tests to the formerly untested code.
Release Note

NONE

/assign @jcrossley3 @aliok @houshengbo

/retest
Overall this looks good :) +1 to Jim's comment. Will lgtm once the tests pass.

/lgtm


HP LaserJet m605: printer malfunction after connecting to the system with ipp-usb installed

OS: ALT Workstation K 10.4
Printer: HP LaserJet Enterprise M605
Version: ipp-usb-0.9.27

Steps to reproduce:

# apt-get install -y ipp-usb (preinstalled);
Connect the printer via USB to the system with ipp-usb installed.
Add a printer using WEB Cups (http://localhost:631) or KDE tools ("Settings - Printers"), using the suggested USB driver from the list. Connection string must be something like this: usb://HP/LaserJet%20M605?serial=CNDVJCY16N
Start printing the test page;
Try to print the printer configuration using the panel on the printer itself ("Main Menu - Administration - Reports");
Try to perform any other action using the panel on the printer itself.

The actual result:

After sending a test print job, either nothing happens, or the printer goes into some kind of "waiting mode";
Printing the printer configuration using the panel on the printer itself ("Main Menu - Administration - Reports") does not work - instead, the panel interface stops responding to user actions until it is restarted;
The printer does not respond to print jobs until it is restarted;

Expected result:

The test page is being printed successfully;
The printer configuration is being printed successfully by using the panel on the printer itself, the panel interface does not freeze;
The printer responds to print jobs without having to restart.

/etc/ipp-usb.conf is default:
  [network]
     http-min-port = 60000
  http-max-port = 65535
  [auth uid]
    all = *
  [logging]
    device-log    = all
    main-log      = debug
    console-log   = debug
    max-file-size    = 256K
    max-backup-files = 5

/var/log/ipp-usb/main.log:
06-11-2024 17:33:28:   ===============================
06-11-2024 17:33:28:   ipp-usb started in "udev" mode, pid=12569
06-11-2024 17:33:28:   ctrlsock: listening at "/var/ipp-usb/ctrl"
06-11-2024 17:33:28: + PNP Bus 002 Device 002: added
06-11-2024 17:33:29: ! Can't load existing ports allocation
06-11-2024 17:33:29: ! open /var/ipp-usb/dev: no such file or directory
06-11-2024 17:33:35: ! PNP Bus 002 Device 002: Device initialization timed out
06-11-2024 17:33:37: + PNP Bus 002 Device 002: retry
06-11-2024 17:33:44: ! PNP Bus 002 Device 002: Device initialization timed out
06-11-2024 17:33:46: + PNP Bus 002 Device 002: retry
06-11-2024 17:33:53: ! PNP Bus 002 Device 002: Device initialization timed out
06-11-2024 17:33:53:   terminated signal received, exiting
06-11-2024 17:33:53:   ctrlsock: shutdown
06-11-2024 17:33:53:   ipp-usb finished

/var/log/ipp-usb/03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log:
06-11-2024 17:33:28:
06-11-2024 17:33:28:   ===============================
06-11-2024 17:33:28: + Bus 002 Device 002: added HP LaserJet M605
06-11-2024 17:33:28:   Device info:
06-11-2024 17:33:28:     USB Port:      4
06-11-2024 17:33:28:     Ident:         03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605
06-11-2024 17:33:28:     Manufacturer:  Hewlett-Packard
06-11-2024 17:33:28:     Product:       HP LaserJet M605
06-11-2024 17:33:28:     SerialNumber:  CNDVJCY16N
06-11-2024 17:33:28:     MfgAndProduct: Hewlett-Packard HP LaserJet M605
06-11-2024 17:33:28:     BasicCaps:     print
06-11-2024 17:33:28:
06-11-2024 17:33:28:   Device quirks:
06-11-2024 17:33:28:     from [*] (/usr/share/ipp-usb/quirks/default.conf:3):
06-11-2024 17:33:28:       http-connection = ""
06-11-2024 17:33:28:
06-11-2024 17:33:28:   USB stack parameters
06-11-2024 17:33:28:     authorized_default:          -1
06-11-2024 17:33:28:     autosuspend:                 2
06-11-2024 17:33:28:     blinkenlights:               N
06-11-2024 17:33:28:     initial_descriptor_timeout:  5000
06-11-2024 17:33:28:     nousb:                       N
06-11-2024 17:33:28:     old_scheme_first:            N
06-11-2024 17:33:28:     quirks:
06-11-2024 17:33:28:     usbfs_memory_mb:             16
06-11-2024 17:33:28:     usbfs_snoop:                 N
06-11-2024 17:33:28:     usbfs_snoop_max:             65536
06-11-2024 17:33:28:     use_both_schemes:            Y
06-11-2024 17:33:28:
06-11-2024 17:33:28:   USB interfaces:
06-11-2024 17:33:28:     Config Interface Alt Class SubClass Proto
06-11-2024 17:33:28:        1       0      0   7      1       2
06-11-2024 17:33:28: *      1       0      1   7      1       4
06-11-2024 17:33:28:        1       1      0   255    5       1
06-11-2024 17:33:28: *      1       1      1   7      1       4
06-11-2024 17:33:28:        1       2      0   255    5       1
06-11-2024 17:33:28: *      1       2      1   7      1       4
06-11-2024 17:33:28:        1       3      0   255    5       1
06-11-2024 17:33:28: *      1       3      1   7      1       4
06-11-2024 17:33:28:
06-11-2024 17:33:29:   USB[0]: open: Bus 002 Device 002 Interface 0 Alt 1
06-11-2024 17:33:29:   USB[1]: open: Bus 002 Device 002 Interface 1 Alt 1
06-11-2024 17:33:29:   USB[2]: open: Bus 002 Device 002 Interface 2 Alt 1
06-11-2024 17:33:29:   USB[3]: open: Bus 002 Device 002 Interface 3 Alt 1
06-11-2024 17:33:29: > IPP request:
06-11-2024 17:33:29: > {
06-11-2024 17:33:29: >     VERSION 2.0
06-11-2024 17:33:29: >     OPERATION Get-Printer-Attributes
06-11-2024 17:33:29: >
06-11-2024 17:33:29: >     GROUP operation-attributes-tag
06-11-2024 17:33:29: >     ATTR "attributes-charset" charset: utf-8
06-11-2024 17:33:29: >     ATTR "attributes-natural-language" naturalLanguage: en-US
06-11-2024 17:33:29: >     ATTR "printer-uri" uri: http://localhost:60000/ipp/print
06-11-2024 17:33:29: >     ATTR "requested-attributes" keyword: color-supported document-format-supported media-size-supported mopria-certified printer-device-id printer-dns-sd-name printer-icons printer-info printer-kind printer-location printer-make-and-model printer-more-info printer-uuid sides-supported urf-supported
06-11-2024 17:33:29: > }
06-11-2024 17:33:29:
06-11-2024 17:33:29: > HTTP[000]: POST http://localhost:60000/ipp/print
06-11-2024 17:33:29: > HTTP[000]: request body: got 462 bytes; closed
06-11-2024 17:33:29: > HTTP[000]: body is small (462 bytes), prefetched before sending
06-11-2024 17:33:29: > HTTP[000]: HTTP request header:
06-11-2024 17:33:29: >   POST /ipp/print HTTP/1.1
06-11-2024 17:33:29: >   Host: localhost:60000
06-11-2024 17:33:29: >   User-Agent: ipp-usb
06-11-2024 17:33:29: >   Content-Length: 462
06-11-2024 17:33:29: >   Content-Type: application/ipp
06-11-2024 17:33:29: >
06-11-2024 17:33:29:   USB[0]: connection allocated, 1 in use: a-- --- --- ---
06-11-2024 17:33:29:   HTTP[000]: connection 0 allocated
06-11-2024 17:33:29: > USB[0]: write: wanted 586 sent 586 total 586
06-11-2024 17:33:29: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:29: ! USB[0]: zero-size read
06-11-2024 17:33:29: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:29: ! USB[0]: zero-size read
06-11-2024 17:33:29: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:29: ! USB[0]: zero-size read
06-11-2024 17:33:30: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:30: ! USB[0]: zero-size read
06-11-2024 17:33:30: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:30: ! USB[0]: zero-size read
06-11-2024 17:33:31: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:31: ! USB[0]: zero-size read
06-11-2024 17:33:32: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:32: ! USB[0]: zero-size read
06-11-2024 17:33:33: < USB[0]: read: wanted 4096 got 0 total 0
06-11-2024 17:33:33: ! USB[0]: zero-size read
06-11-2024 17:33:34: ! HTTP[000]: Device initialization timed out
06-11-2024 17:33:34:   USB[0]: connection released, 0 in use: --- --- --- ---
06-11-2024 17:33:34: ! IPP: HTTP: Post "http://localhost:60000/ipp/print": Device initialization timed out
06-11-2024 17:33:34: - Bus 002 Device 002: resetting HP LaserJet M605
06-11-2024 17:33:35:   USB[0]: closed
06-11-2024 17:33:35:   USB[1]: closed
06-11-2024 17:33:35:   USB[2]: closed
06-11-2024 17:33:35:   USB[3]: closed
06-11-2024 17:33:35: - Bus 002 Device 002: removed HP LaserJet M605
06-11-2024 17:33:37:

Attached:

main.log
03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log

Found ways to solve the problem:

Removing the ipp-usb package from the OS before connecting the printer: # apt-get remove ipp-usb;
Masking ipp-usb unit before connecting the printer: # systemctl mask ipp-usb.

Hi Ivan,

Masking ipp-usb unit before connecting the printer: # systemctl mask ipp-usb

Do you mean the following:

You temporary disable ipp-usb either by removing or by masking it
You connect the printer
Then you enable back the ipp-usb and things begin to work?

You you disable the ipp-usb permanently and use the proprietary driver?

May I ask you to temporary add the following parameter into the /usr/share/ipp-usb/quirks/default.conf file:
[*]
  init-delay = 5000

And if it will not help, please play with its value in the 5000 ... 20000 range

May I ask you to temporary add the following parameter into the /usr/share/ipp-usb/quirks/default.conf file:
[*]
  init-delay = 5000

And if it will not help, please play with its value in the 5000 ... 20000 range

I tried several values (5000, 10000, 15000 and 20000), but it doesn't fix the problem.  USB[0]: zero-size read
07-11-2024 17:50:20: < USB[0]: read: wanted 4096 got 82 total 82
07-11-2024 17:50:20: < HTTP[000]: POST http://localhost:60000/ipp/print - 503 Service Unavailable
07-11-2024 17:50:20: < HTTP[000]: HTTP response header:
07-11-2024 17:50:20: <   HTTP/1.1 503 Service Unavailable
07-11-2024 17:50:20: <   Retry-After: 10
07-11-2024 17:50:20: <   Server: Virata-EmWeb/R6_2_1
07-11-2024 17:50:20: <
07-11-2024 17:50:20: < HTTP[000]: client has gone; draining response from USB
07-11-2024 17:50:20: ! IPP: HTTP: 503 Service Unavailable
07-11-2024 17:50:20: > HTTP[001]: GET http://localhost:60000/eSCL/ScannerCapabilities
07-11-2024 17:50:20: > HTTP[001]: body is empty, sending as is
07-11-2024 17:50:20: > HTTP[001]: HTTP request header:
07-11-2024 17:50:20: >   GET /eSCL/ScannerCapabilities HTTP/1.1
07-11-2024 17:50:20: >   Host: localhost:60000
07-11-2024 17:50:20: >   User-Agent: ipp-usb
07-11-2024 17:50:20: >
07-11-2024 17:50:20:   USB[1]: connection allocated, 2 in use: ar- a-- --- ---
07-11-2024 17:50:20:   HTTP[001]: connection 1 allocated
07-11-2024 17:50:20: > USB[1]: write: wanted 86 sent 86 total 86
07-11-2024 17:50:20: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:20: ! USB[0]: zero-size read
07-11-2024 17:50:20: < USB[1]: read: wanted 4096 got 0 total 0
07-11-2024 17:50:20: ! USB[1]: zero-size read
07-11-2024 17:50:20: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:20: !  ESCL: eSCL: HTTP status: 503 Service Unavailable
07-11-2024 17:50:20: - Bus 002 Device 003: resetting HP LaserJet M605
07-11-2024 17:50:21: < USB[1]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:21: ! USB[1]: recv: libusb_bulk_transfer: No such device (it may have been disconnected)
07-11-2024 17:50:21:   USB[1]: connection released, 1 in use: ar- --- --- ---
07-11-2024 17:50:21: - Bus 002 Device 003: shutdown: 1 connections still in use
07-11-2024 17:50:21: - Bus 002 Device 003: shutdown: 1 connections still in use
07-11-2024 17:50:21: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:21: ! USB[0]: zero-size read
07-11-2024 17:50:22: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:22: ! USB[0]: zero-size read
07-11-2024 17:50:23: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:23: ! USB[0]: zero-size read
07-11-2024 17:50:24: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:24: ! USB[0]: zero-size read
07-11-2024 17:50:25: < USB[0]: read: wanted 8192 got 0 total 82
07-11-2024 17:50:25: ! USB[0]: zero-size read
07-11-2024 17:50:26:   USB[0]: connection released, 0 in use: --- --- --- ---
07-11-2024 17:50:26:   USB[0]: closed
07-11-2024 17:50:26:   USB[1]: closed
07-11-2024 17:50:26:   USB[2]: closed
07-11-2024 17:50:26:   USB[3]: closed
07-11-2024 17:50:26: - Bus 002 Device 003: removed HP LaserJet M605

03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log
main.log

With the 20-second delay it doesn't hung at least. Looks like device needs a plenty of time for self-initialization.
Could you please play a bit with a large delays. Say, 1-2-3 minutes (60000-120000-180000 milliseconds in the configuration).

With the 20-second delay it doesn't hung at least. Looks like device needs a plenty of time for self-initialization.
Could you please play a bit with a large delays. Say, 1-2-3 minutes (60000-120000-180000 milliseconds in the configuration).

Tried with increased delay times (60000, 120000, 180000, 360000 and also 720000), but still no luck:
03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log

08-11-2024 18:37:37: > HTTP[000]: HTTP request header:
08-11-2024 18:37:37: >   POST /ipp/print HTTP/1.1
08-11-2024 18:37:37: >   Host: localhost:60000
08-11-2024 18:37:37: >   User-Agent: ipp-usb
08-11-2024 18:37:37: >   Content-Length: 462
08-11-2024 18:37:37: >   Content-Type: application/ipp
08-11-2024 18:37:37: >
08-11-2024 18:37:37:   USB[0]: connection allocated, 1 in use: a-- --- --- ---
08-11-2024 18:37:37:   HTTP[000]: connection 0 allocated
08-11-2024 18:37:37:   HTTP[000]: Pausing for 2m59.452174932s
08-11-2024 18:40:37: > USB[0]: write: wanted 586 sent 586 total 586
08-11-2024 18:40:37: < USB[0]: read: wanted 4096 got 82 total 82
08-11-2024 18:40:37: < HTTP[000]: POST http://localhost:60000/ipp/print - 503 Service Unavailable
08-11-2024 18:40:37: < HTTP[000]: HTTP response header:
08-11-2024 18:40:37: <   HTTP/1.1 503 Service Unavailable
08-11-2024 18:40:37: <   Retry-After: 10
08-11-2024 18:40:37: <   Server: Virata-EmWeb/R6_2_1
08-11-2024 18:40:37: <
08-11-2024 18:40:37: < HTTP[000]: client has gone; draining response from USB
08-11-2024 18:40:37: ! IPP: HTTP: 503 Service Unavailable
08-11-2024 18:40:37: > HTTP[001]: GET http://localhost:60000/eSCL/ScannerCapabilities
08-11-2024 18:40:37: > HTTP[001]: body is empty, sending as is
08-11-2024 18:40:37: > HTTP[001]: HTTP request header:
08-11-2024 18:40:37: >   GET /eSCL/ScannerCapabilities HTTP/1.1
08-11-2024 18:40:37: >   Host: localhost:60000
08-11-2024 18:40:37: >   User-Agent: ipp-usb
08-11-2024 18:40:37: >
08-11-2024 18:40:37:   USB[1]: connection allocated, 2 in use: ar- a-- --- ---
08-11-2024 18:40:37:   HTTP[001]: connection 1 allocated
08-11-2024 18:40:37: > USB[1]: write: wanted 86 sent 86 total 86
08-11-2024 18:40:37: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:37: !  ESCL: eSCL: HTTP status: 503 Service Unavailable
08-11-2024 18:40:37: - Bus 002 Device 006: resetting HP LaserJet M605
08-11-2024 18:40:38: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:38: ! USB[0]: zero-size read
08-11-2024 18:40:38: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:38: ! USB[1]: zero-size read
08-11-2024 18:40:38: - Bus 002 Device 006: shutdown: 2 connections still in use
08-11-2024 18:40:38: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:38: ! USB[1]: zero-size read
08-11-2024 18:40:39: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:39: ! USB[0]: zero-size read
08-11-2024 18:40:39: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:39: ! USB[1]: zero-size read
08-11-2024 18:40:39: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:39: ! USB[0]: zero-size read
08-11-2024 18:40:39: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:39: ! USB[1]: zero-size read
08-11-2024 18:40:40: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:40: ! USB[0]: zero-size read
08-11-2024 18:40:40: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:40: ! USB[1]: zero-size read
08-11-2024 18:40:41: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:41: ! USB[0]: zero-size read
08-11-2024 18:40:41: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:41: ! USB[1]: zero-size read
08-11-2024 18:40:42: < USB[0]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:42: ! USB[0]: zero-size read
08-11-2024 18:40:42: < USB[1]: read: wanted 8192 got 0 total 82
08-11-2024 18:40:42: ! USB[1]: zero-size read
08-11-2024 18:40:43:   USB[0]: connection released, 1 in use: --- ar- --- ---
08-11-2024 18:40:43: - Bus 002 Device 006: shutdown: 1 connections still in use
08-11-2024 18:40:43:   USB[1]: connection released, 0 in use: --- --- --- ---
08-11-2024 18:40:43:   USB[0]: closed
08-11-2024 18:40:43:   USB[1]: closed
08-11-2024 18:40:43:   USB[2]: closed
08-11-2024 18:40:43:   USB[3]: closed
08-11-2024 18:40:43: - Bus 002 Device 006: removed HP LaserJet M605

main.log
03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log

Hi!
I want to ask you to play a bit with the init-reset = soft | hard parameter. init-delay should be 20000 while you playing with the init-reset.

Hi!
I want to ask you to play a bit with the init-reset = soft | hard parameter. init-delay should be 20000 while you playing with the init-reset.

Hello :)
Thanks for the suggestions that could fix the error. Unfortunately, this did not happen.
The printer behavior has not changed after adding the init-reset = soft or init-reset = hard parameter with a delay time of 20000ms. I am attaching logs taken when using different values of the init-reset parameter.
soft-main.log
soft-03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log
hard-main.log
hard-03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log

BTW, I've heard about the printer (probably from HP, but I'm not sure) which has non-working IPP over USB interface, if the network interface of the printer is not enabled.
Is your printer connected to the network? If not, can you try to connect?

BTW, I've heard about the printer (probably from HP, but I'm not sure) which has non-working IPP over USB interface, if the network interface of the printer is not enabled.
Is your printer connected to the network? If not, can you try to connect?

The printer was not connected to the network, but is now connected and has received an IP.
But again, when trying to print via USB, the printer's behavior has not changed.

Is your printer connected to the network? If not, can you try to connect?

The printer was not connected to the network, but is now connected and has received an IP. But again, when trying to print via USB, the printer's behavior has not changed.

Logs:
soft-with-network-main.log
soft-with-network-03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log
hard-with-network-main.log
hard-with-network-03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log

After adding the printer to the blacklist (/usr/share/ipp-usb/quirks/blacklist.conf), it starts working correctly, as when we mask the ipp-usb.service:
...
[Hewlett-Packard HP LaserJet M605]
  blacklist = true
blacklist_main.log
blacklist_03f0-3e2a-CNDVJCY16N-Hewlett-Packard-HP-LaserJet-M605.log


bash outside vm script not running

hi, i m trying to use your script to make my vm detection hard. So far it generates the required scripts as follows, but when i try to execute outside script, it gives me error "too many arguments on line 72". when i sudo run the script, it gives me error of "win7x642 vm not found" while in the list list it clearly detects the said vm. Can you please help me resolve this error?
mxn@mxn-Latitude-E6510:~/antivmdetection$ sudo python antivmdetect.py
--- Generate VirtualBox templates to help thwart VM detection and more .. - Mikael, @nsmfoo ---
[] Creating VirtualBox modifications ..
[] Creating a DSDT file...
[] Finished: A template shell script has been created named: LatitudeE6510.sh
[] Finished: A DSDT dump has been created named: DSDT_LatitudeE6510.bin
[] Creating guest based modification file (to be run inside the guest)...
[Info] Could not find a user supplied file called: clipboard_buffer, a random string will be generated instead
[] Finished: A Powershell file has been created, named: LatitudeE6510.ps1
mxn@mxn-Latitude-E6510:~/antivmdetection$ bash ./LatitudeE6510.sh
[] Please add vm name!
[] Available vms:
win7x64-VB
win7x642
mxn@mxn-Latitude-E6510:~/antivmdetection$ bash ./LatitudeE6510.sh win7x642
./LatitudeE6510.sh: line 72: [: too many arguments
mxn@mxn-Latitude-E6510:~/antivmdetection$ sudo bash ./LatitudeE6510.sh win7x642
VBoxManage: error: Could not find a registered machine named 'win7x642'
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports

Hi me0ne0, just a plain user like yourself here offering an opinion. Have you tried running the LatitudeE6510.sh script without sudo? Sounds to me like it may be that you're getting that error because the virtual machine is registered to a different user than root...

hello vladbrinzea, well as i mentioned earlier, i tried running both commands. with and without sudo. with sudo it gives error "VBoxManage: error: Could not find a registered machine named 'win7x642'" and without sudo it gives error "./LatitudeE6510.sh: line 72: [: too many arguments"
when i try to run without bash, it gives me following error
mxn@mxn-Latitude-E6510:~/antivmdetection$ ./LatitudeE6510.sh win7x642
bash: ./LatitudeE6510.sh: Permission denied
I tried googling the error but its of no help.

Hi sorry for the delay, I can set aside some time on Wednesday to hopefully resolve this issue =)

@nsmfoo No problem for late replying (i was actually looking for your twitter to ping you but could not find it) and thank you mikael for taking time to look at it, looking forward to your positive response.

@nsmfoo hello, did u get chance to look at the error ?

Hi sorry, spare time started now =)
In general you should not need to run the script with sudo, run the script using the user who have access to VirtualBox. Try running: VBoxManage list vms, the user who has vm is the correct user.
Regarding the script error, which OS are you using? (possible also shell version)
Are you only seeing the error or do you get other output as well?
Are you able to share the row 72? I'm seeing some other error on another row which confuses me a bit
and you should be able to find me on twitter @nsmfoo =)

my issue was with the "audio" row, if that matches your issue, change the corresponding row to look like this:
"audio=$(VBoxManage showvminfo --machinereadable "$1" | grep audio | cut -d "=" -f2 | sed 's/"//g' | head -1)"
Apparently things have changed ...
I will push this fix in a few days, if it's not your issue please let me know =)

Hi, i am using ubuntu 16.04.4 LTS and bash shell version is 4.3.48(1)-release
as far as i can check.. the line in the script is
if [ $hostint_ip == '<IP_ADDRESS>' ]; then echo "[WARNING] You are using the default IP/IP-range. Consider changing the IP and the range used!"; fi

let me check the audio issue as pointed out by you

i am just seeing the error... ./LatitudeE6510.sh: line 72: [: too many arguments

@me0ne0 Hi, can you give me the output of the following command?
VBoxManage list hostonlyifs | grep IPAddress: | awk {' print $2 '}

hi mikael, sorry for replying so late. i was out of town. heres the output.. I am using <IP_ADDRESS> as vboxnet0 and <IP_ADDRESS> as vboxnet1
(cuckoo) mxn@mxn-Latitude-E6510:~$ VBoxManage list hostonlyifs | grep IPAddres | awk {' print $2 '}
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS>

Damn its a long list. Can i disable any of the subnets that i dont intend to use? :/

@me0ne0 try the latest version, I "might" have added a workaround for your issue. Let me know if it works or not

hello mikael. I pulled the new commit and gave it a try. I am now continuously getting the following error.
mxn@mxn-Latitude-E6510:~/antivmdetection$ bash ./LatitudeE6510.sh win7x643
[WARNING] You are using the default IP/IP-range. Consider changing the IP and the range used!
I just created a new empty guest vm. did not install ISO yet. Network Adapter has been changed to "vboxnet1" with ip <IP_ADDRESS>.. I tried to run it on different VM's the error is same.
vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00
inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
vboxnet1  Link encap:Ethernet  HWaddr 0a:00:27:00:00:01
inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
inet6 addr: fe80::800:27ff:fe00:1/64 Scope:Link
UP BROADCAST MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:17657 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B)  TX bytes:3450074 (3.4 MB)
Is this issue being caused as voboxnet0 is active along with vboxnet1? Should i disable vboxnet0 and check?

as i configured 2 vboxnets i was under the impression the script would check for the one mentioned in the network settings of the guest VM. Anyways, it checks for default ip <IP_ADDRESS> and if found in any vboxnet it will generate a warning.
Now i have changed the ip scheme and warning is gone. Outside script runs successfully. Next to check inside VM script. Hopefully it will work too :-) i shall update later

alright :-) script works like a charm. Thankyou @nsmfoo for your time to write the changes and updating the antivmdetection.py
However, Just out of context question, do you know a way to fix these errors as generated by pafish. I know you have mentioned that your script works otherthan pafish but i thought you might shed some light on it.
CPU VM traced by checking the difference between CPU timstamp counters (rdtsc)
CPU VM traced by checking the difference between CPU timstamp counters (rdtsc) forcing
Sandbox traced using mouse activity
Sandbox traced by checking operating system uptime using GetTickCount()
VirtualBox traced using reg key HKLM\HARDWARE\Description\System "VideoBiosVersion"
VirtualBox traced using reg key HKLM\HARDWARE\ACPI\DSDT\VBOX__
VirtualBox traced using reg key HKLM\HARDWARE\Description\System "SystemBiosVersion"
VirtualBox device identifiers traced using WMI

i got 2 errors of ACPI while running in the Guest VM script via power shell

@me0ne0 I was a good idea, I will improve the check to match it agains the target VM. Sometimes during next week or so ..
Regarding the pafish alerts:

CPU VM traced by checking the difference between CPU timstamp counters (rdtsc)
CPU VM traced by checking the difference between CPU timstamp counters (rdtsc) forcing

These two are not mitigated by my script, as I have not get figured out a way to do so. That being said it's not the best sandbox check so it can give FP's on none VM's as well.

Sandbox traced using mouse activity
This check looks for mouse movements during the pafish run. For example if you move the mouse during the time the check is running you will have "evaded it". If you plan to use your vm for manual infection, this is most likely not an issue. If you plan to use Cuckoo for example, there is a built in function to perform the same movement.

Sandbox traced by checking operating system uptime using GetTickCount()
This check, looks at the uptime of the VM. So either let your VM run for a while and re-run, this is also a smart move to make snapshop of a VM that is been running for a while.

-VirtualBox traced using reg key HKLM\HARDWARE\Description\System "VideoBiosVersion"
-VirtualBox traced using reg key HKLM\HARDWARE\ACPI\DSDT\VBOX__
-VirtualBox traced using reg key HKLM\HARDWARE\Description\System "SystemBiosVersion"
These should have been removed, after the reboot. Did you re-run the script again?

VirtualBox device identifiers traced using WMI
This indicates that the usage of  DevManView.exe might not have worked as expected, can you verify that you are using the correct the 64-bit version?  Also this might be linked to the above

Regarding the other error, let's see if we can resolve the first things, the second error might very well depend on the first issues

i will give it a try again.

@me0ne0 did you have any time to try the above?

@me0ne0 I have added the feature that you suggested. Will be pushed soon. As I assume that you have everything working I will close this case, feel free to re-open if needed


CiliumNetworkPolicy drop action notify pod that traffic has been dropped

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
We have a CiliumClusterwideNetworkPolicy prohibiting certain pods from accessing outside the cluster (only pods with label my.label/cluster-outside-access can negotitate with entities outside the cluster)
apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
  name: egress-world
spec:
  egress:
  - toEntities:
    - world
  endpointSelector:
    matchLabels:
      my.label/cluster-outside-access: "true"

Actual behavior: the pod connection is closed by a timeout corresponding to the kernel settings.
The question is: is it possible to achieve behavior similar to a typical firewall - a RESET is sent to the client if sending traffic is not provided for by the policy?
Cilium Version
1.13.2
Kernel Version
5.14.0-168.el9.x86_64
Kubernetes Version
kubectl version --short
Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.27.1
Kustomize Version: v5.0.1
Server Version: v1.27.1
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Code of Conduct

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

I believe this is a duplicate of https://github.com/cilium/cilium/issues/17944


style: formatted the code base running prettier config

Description

style: formatted the code base running prettier config

Motivation and Context

updated prettier configuration and refactored the codebase running npm run format script.

Testing

npm run test success.

Types of changes

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

Checklist

[x] My code follows the code style of this project
[ ] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[x] I have read the README document
[ ] I have added tests to cover my changes
[x] All new and existing tests passed
[x] My commit message follows Conventional Commit Guideline

License

[x] By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi Shreyas, could you please try to generate the vsix and install to your local and test some basic functionalities such as local debug, create skill , deploy skill and use the simulator ?
This PR only do the code style change, but since we are lacking unit tests, would be great if we can manually test it in order to make sure we don't release something not working

Hi Shreyas, could you please try to generate the vsix and install to your local and test some basic functionalities such as local debug, create skill , deploy skill and use the simulator ?
This PR only do the code style change, but since we are lacking unit tests, would be great if we can manually test it in order to make sure we don't release something not working

That's a great suggestion Shen, although this PR is just code formatting due to updated prettier configurations, can we check this PR in and I will generate vsix and test all functionalities you have highlighted before releasing and if any bug fixes are required I will raise new PRs ? Is that alright?

Sounds good. I will approve then


Add support for ES6 symbol types

Code along this lines causes an error:
Class List {
  $$typeof: symbol;
  constructor() {
     this.$$typeof = Symbol.for('mylib/symbol')
  }
}

I did not quite figured out how to add a primitive type support and at this point I don't have enough time to digg into to do it. So I have created this libdef for my use:
// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol
type symbol = Symbol;
declare class Symbol {
  static (value?:any): symbol;
  static for(key:string): symbol;
  static keyFor(symbol:symbol): string;
  toString(): string;
  valueOf(): symbol;
  // Well-known symbols
  static iterator: symbol;
  static match: symbol;
  static replace: symbol;
  static search: symbol;
  static split: symbol;
  static hasInstance: symbol;
  static isConcatSpreadable: symbol;
  static unscopables: symbol;
  static species: symbol;
  static toPrimitive: symbol;
  static toStringTag: symbol;
}

I'm happy to send a pull to include it into core.js until proper support is built.

Has Symbol.iterator support been implemented?

This would be really good to have because it is a common use-case with React Redux to use symbols for action namespacing (and slightly better performance, too).

yo

https://github.com/facebook/flow/blob/master/lib/core.js#L84 ?

Is there any plan to support Symbols?
https://flow.org/try/#0MYewdgzgLgBAYiEBlAngWwEYgDYwLwyqY4AUA5HAPKVkCUA3AFCiSwBCAhgE5Fa4G9SZNgEEASnSaMoKAA4BTGJwBeAFTmKCAbwA+jAJABqGQoBcME-JAAzeIkHYANIxiuYhgG4dsAV3kBGc2guAEswAHNGHQBfGB0YXQNjDXNLGyVuB2c3dy9feQAmczAfTHkuKOipFmgYDG58GBJ65XMVdQVafAA+BKrGRnquEi0DS3MEZHQ+bJh9PL8imH9GaIYgA
Currently typeof construct is useless, and symbol cannot be used as a literal value.

Symbols support to be supported


why Redisson.java Declare the class as final?

redisson 3.17.6  , i write a aspect to monitor api operation,it is work well
example:
 @Pointcut("execution(* org.redisson.api.*.*(..))")
upgrade to 3.27.2 , An error was reported when the application was started：
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class org.redisson.Redisson: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class org.redisson.Redisson 	at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:208) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE] 	at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE] 	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:471) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE] 	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:350) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]

To avoid bugs with improperly extended classes.

Is there an interface that can be used as a monitoring item?

Redisson object implements RedissonClient interface. You can use it.

It doesn't work with aop because Redison.java declares the class final

try to use Delegation pattern


Validation function for string declaration options

Search Terms
plugin string declaration option
Problem
If a plugin has a string parameter it is pretty common that the provided value of this parameter has to be of a specific form. For example in this plugin there are several options to define a color value in this form <transparent|#RGBHEX>.
It would be nice if the plugin didn't have to validate the option values itself. Instead it could define a validation logic when declaring the option and typedoc would do the validation. After all we already have min and max values for number declaration options.
Suggested Solution
Two solutions spring to my mind for this:

Define an optional regular expression with the string declaration option which is used in the convert function to validate the provided value.
Define a validation function with the string declaration option which is called by typedoc. The function could return just a boolean or a possible error message.

Define an optional regular expression with the string declaration option which is used in the convert function to validate the provided value.

This won't work very well for users, creating error messages from regular expressions can only really be done for extremely simple cases.

Define a validation function with the string declaration option which is called by typedoc. The function could return just a boolean or a possible error message.

Returning a boolean isn't very user friendly since we're again stuck with trying to generate an error message "the option {name} doesn't pass validation" isn't useful to users. Returning string | undefined would work, but I think it might be better to have the validation function throw an error, following the pattern established by convert.
This seems like something that it would be reasonable to want to extend to other option types. Only even numbers, arrays which contain only unique elements...

Didn't think about the Error throwing solution. Sound like a good idea to me. I can do this as soon as I find some time for it.


[Wrangler] 🔬  Improve Deployments tests

Add tests for additional scenarios including failed requests:
"errors": [
    {
      "code": 100146,
      "message": "workers.api.error.deployment_not_found"
    }
  ],
  "messages": []

"errors": [
    {
      "code": 100147,
      "message": "workers.api.error.deployment_too_old"
    }
  ],
  "messages": []

"errors": [
    {
      "code": 100140,
      "message": "Failed to rollback due to external resources being modified (durable-object:<tag>,r2:<name>)"
    }
  ],
  "messages": []

Originally posted by @JacobMGEvans in https://github.com/cloudflare/workers-sdk/pull/2607#discussion_r1110035357

@jspspike Did you already cover this in the view/rollback PR?

@JacobMGEvans No I haven't but I could include this in the PR

@JacobMGEvans No I haven't but I could include this in the PR

Either way, I was just wanting to make sure the issue was closed if it was handled in that PR.

@jspspike @JacobMGEvans can this be closed?


Lightning Web Component Missing from View

Hello,
I converted a DX project with web components and an apex class into msapi format so that I could use this button, This is my package:
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
  <types>
    <name>ApexClass</name>
    <members>RelatedQuotesController</members>
    <members>RelatedQuotesControllerTest</members>
  </types>
  <types>
    <name>LightningComponentBundle</name>
    <members>relatedQuote</members>
    <members>relatedQuotes</members>
  </types>
  <version>45.0</version>
</Package>

When I use the button, it pulls the data from github, but nothing from the web components folder shows

When I click deploy it works, so this is not a show stopper, just something I wanted to note in case it is an easy fix!

I also have this issue too!

@dmgerow can you confirm the repo your using? Also i have now added support for SFDX formatted repos.

@afawcett  it is in a private repository, but I tried again and it looks fixed now:


Add an error message when there is no kuzzle instance

fixes #64

Codecov Report

Merging #75 into rc.x will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             rc.x      #75      +/-   ##
==========================================
+ Coverage   98.13%   98.13%   +<.01%
==========================================
  Files          17       17
  Lines         643      645       +2
==========================================
+ Hits          631      633       +2
  Misses         12       12

Impacted Files
Coverage Δ

var/app/lib/service/Broker.js
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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