Some AuthorizationPolicy configurations do not work as expected.

Bug Description
In my environment, an egress gateway is defined and two ports, 80 and 443, are bound, corresponding to the http and tls protocols respectively。
It also defines that VirtualSerices forwards http requests for external services to port 80 and https requests to port 443 of this egress gateway.
As above these are only background introduction, not the focus。
The point is, I'm encountering a strange problem with AuthorizationPolicy on the egress gateway。
My requirement: block httpbin requests using http post。 So I defined the yaml as follows:
kind: AuthorizationPolicy
apiVersion: security.istio.io/v1beta1
metadata:
  name: sleep-a-egress-www-httpbin-org
  namespace: istio-system
spec:
  action: DENY
  rules:
    - to:
        - operation:
            hosts:
            - www.httpbin.org
            - httpbin.org
            methods:
              - POST
      from:
        - source:
            namespaces: ["mytest"]
  selector:
    matchLabels:
      istio: egressgateway-a

Then I used the following command to verify the effect。
kubectl -n mytest exec deployment/sleep-a -- curl -s -w"%{http_code}\n" -o /dev/null  http://www.httpbin.org
200

kubectl -n mytest exec deployment/sleep-a -- curl -s -w"%{http_code}\n" -o /dev/null  http://www.httpbin.org -X POST
403

Meets expectations. but  when I tried to request https://www.httpbin.org,  a strange problem has occurred:
kubectl -n mytest exec deployment/sleep-a -- curl -s -w"%{http_code}\n" -o /dev/null  https://www.httpbin.org
000
command terminated with exit code 35

The log corresponding to the gateway is as follows:
2023-04-12T06:54:52.549540Z     debug   envoy filter    [C77357] new tcp proxy session
2023-04-12T06:54:52.549574Z     debug   envoy filter    [C77357] Creating connection to cluster outbound|443||www.httpbin.org
2023-04-12T06:54:52.549617Z     debug   envoy misc      Allocating TCP conn pool
2023-04-12T06:54:52.549638Z     debug   envoy pool      trying to create new connection
2023-04-12T06:54:52.549645Z     debug   envoy pool      creating a new connection (connecting=0)
2023-04-12T06:54:52.549681Z     debug   envoy connection        [C77358] connecting to <IP_ADDRESS>:443
2023-04-12T06:54:52.549742Z     debug   envoy connection        [C77358] connection in progress
2023-04-12T06:54:52.549759Z     debug   envoy conn_handler      [C77357] new connection from <IP_ADDRESS>:44846
2023-04-12T06:54:52.762637Z     debug   envoy connection        [C77358] connected
2023-04-12T06:54:52.762683Z     debug   envoy pool      [C77358] attaching to next stream
2023-04-12T06:54:52.762686Z     debug   envoy pool      [C77358] creating stream
2023-04-12T06:54:52.762711Z     debug   envoy filter    [C77357] TCP:onUpstreamEvent(), requestedServerName: outbound_.444_._.istio-egressgateway-a.istio-system.svc.cluster.local
2023-04-12T06:54:52.763058Z     debug   envoy rbac      checking connection: requestedServerName: outbound_.444_._.istio-egressgateway-a.istio-system.svc.cluster.local, sourceIP:<IP_ADDRESS>:44846, directRemoteIP: <IP_ADDRESS>:44846,remoteIP: <IP_ADDRESS>:44846, localAddress: <IP_ADDRESS>:444, ssl: uriSanPeerCertificate: spiffe://cluster.local/ns/mytest/sa/default, dnsSanPeerCertificate: , subjectPeerCertificate: , dynamicMetadata:
2023-04-12T06:54:52.763084Z     debug   envoy rbac      enforced denied, matched policy ns[istio-system]-policy[sleep-a-egress-www-httpbin-org]-rule[0]

This Authorizationpolicy blocks outbound tls requests. This does not match the expected。https requests are treated as tcp requests and should not be affected by the configuration as above.
I checked the configDump for the egress gateway and found that the configuration has an amplification effect。

This should be a bug.
A workaround solution is to use the semantics of "ALLOW"
kind: AuthorizationPolicy
apiVersion: security.istio.io/v1beta1
metadata:
  name: sleep-a-egress-www-httpbin-org
  namespace: istio-system
spec:
  action: ALLOW
  rules:
    - to:
        - operation:
            hosts:
            - www.httpbin.org
            - httpbin.org
            notMethods:
              - POST
      from:
        - source:
            namespaces: ["mytest"]
  selector:
    matchLabels:
      istio: egressgateway-a

Version
client version: 1.16.3
control plane version: 1.16.3
data plane version: 1.16.3 (9 proxies)

Additional Information
No response
Affected product area

[ ] Ambient
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

Is this the right place to submit this?

[X] This is not a security vulnerability
[X] This is not a question about how to use Istio

This is working as intended IIUC and is documented: https://istio.io/latest/docs/reference/config/security/authorization-policy/
'When this rule is applied to TCP traffic, the method field (as will all HTTP based attributes) cannot be processed. For a DENY rule, missing attributes are treated as matches. This means all TCP traffic on port 8080 would be denied in the example above. If we were to remove the ports match, all TCP traffic would be denied. As a result, it is recommended to always scope DENY policies to a specific port, especially when using HTTP attributes Authorization Policy for TCP Ports.'

This is working as intended IIUC and is documented: https://istio.io/latest/docs/reference/config/security/authorization-policy/
'When this rule is applied to TCP traffic, the method field (as will all HTTP based attributes) cannot be processed. For a DENY rule, missing attributes are treated as matches. This means all TCP traffic on port 8080 would be denied in the example above. If we were to remove the ports match, all TCP traffic would be denied. As a result, it is recommended to always scope DENY policies to a specific port, especially when using HTTP attributes Authorization Policy for TCP Ports.'

The current implementation does correspond to the documentation.
As described in the documentation above, when the rule is applied to TCP traffic, the configuration containing HTTP attributes is implicitly removed, thus widening the scope of impact。This does not meet the expectations of users。
Because multiple matches under a single RULE are “AND” relationships, and the user is also known that the HTTP attribute will fail under Tcp, it might be better to make the whole rule (including HTTP attributes) not valid for TCP traffic。

The current implementation does correspond to the documentation.

What part is inconsistent? You are describing "HTTP rule means all traffic is denied", which is what the document is intending to say.


Spawning and bundles

This is a purely ergonomic issue, but unlike spawn spawn_instance does not work on Bundles, requiring manual inserts, which then returns Commands instead of InstanceCommands, turning code like
let actor_a: Entity = commands.spawn(ActorBundle::named("Alice")).id();

commands.spawn(Place::new([actor_a]));

into
let mut actor_a = commands.spawn_instance(Actor::default());
actor_a.insert(Name::new("Alice"));
let actor_a: Instance<Actor> = actor_a.instance();

commands.spawn(Place::new([actor_a]));

Changing fn spawn_instance<T: Kind + Component> to fn spawn_instance<T: Kind + Bundle> goes a long way, leaving some awkwardness around Instance<ActorBundle> not fitting into an Instance<Actor> slot and casts not being static:
impl Kind for ActorBundle {
    type Filter = (With<Actor>, With<Name>);
    fn is_convertible_to<U: Kind>() -> bool {
        TypeId::of::<U>() == TypeId::of::<Self>()
            || TypeId::of::<U>() == TypeId::of::<Any>()
            || TypeId::of::<U>() == TypeId::of::<Actor>()
            || TypeId::of::<U>() == TypeId::of::<Name>()
    }
}

let actor_a = commands
    .spawn_instance(ActorBundle::named("Alice"))
    .instance()
    .cast_into::<Actor>()
    .unwrap();

Which of course can also be worked around by using Instance<ActorBundle> instead of Instance<Actor> in Place which is quite sensible in this and many (if not the majority of) cases but for generality's sake it would be nice to have automatic casts from Bundles to all their component Components (and maybe use into()). My type level black belt is in Haskell, not Rust, so I'm officially out of ideas.
The InstanceCommands vs. Commands thing is probably best solved by upstreaming into bevy.

I've ran into the issue you're presenting in my personal project too. But I'm hesitant in allowing spawn_instance to accept Kind + Bundle to allow this pattern of usage. Mainly because it gives the user a footgun to break "kind-safety".
For example:
#[derive(Bundle)]
struct ActorBundle {
  //actor: Actor, /* <--- !!! */
  name: Name,
}
...

let actor: Instance<Actor> = commands
    .spawn_instance(ActorBundle::named("Alice"))
    .instance()
    .cast_into::<Actor>()
    .unwrap();

This code would compile ok and even be ok at call site (since cast doesn't actually do a query check). So I'm concerned that such usage would lead to subtle bugs way later than the source of it.
This would be less of a concern if this crate was upstreamed into Bevy proper. Because then the implementation of is_convertible_to would be derived by macro, and so removal of a component would make the cast fail.
I'm keeping the issue open because I think it's a legitimate issue. But I don't think allowing Kind + Bundle is the best option.

You're certainly right about that footgun. Personally I don't like unsafe in places where they multiply, with something like
pub unsafe trait Subkind<Super: Kind>: Kind {}

impl<T: Kind> Instance<T> {
    pub fn cast<Other>(&self) -> Instance<Other>
    where
        Other: Subkind<T>,
    {
        unsafe { Instance::<Other>::from_entity_unchecked(self.entity()) }
    }
}

they could be placed right next to the struct definition
unsafe impl Subkind<ActorBundle> for Actor

, you'd only need one unsafe for an arbitrary number of casts, and they can also be derived via macro with only the definition of ActorBundle. (modulo Bundles not being Kind because Kind and thus Instance kinda implies WorldQuery which Bundles aren't).

This issue should be resolved with KindBundle


[R] DuckDB test is failing (again) with new duckdb release

It looks like the fix that I thought would work in DuckDB did not, in fact fix the error! The previous ticket, ARROW-17643, just skipped the test until the new release of duckdb (which just happened).
Reporter: Dewey Dunnington / @paleolimbot
Assignee: Dewey Dunnington / @paleolimbot
PRs and other links:

GitHub Pull Request #14195
GitHub Pull Request #14209

Note: This issue was originally created as ARROW-17809. Please see the migration documentation for further details.

I'm gonna assume this was fixed a while ago in that linked PR; feel free to close if this is not correct


Add support for application/x-pem-file MIME type

This patch adds support for serializing and deserializing data with the application/x-pem-file MIME type as plain text.
Fixes: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator/issues/244
Minimal example:
openapi: 3.0.0
info:
  title: Sample API
  version: 0.1.0
servers:
  - url: http://api.example.com/v1
paths:
  /:
    get:
      summary: dummy
      requestBody:
        content:
          application/x-pem-file:
            schema:
              type: string
      responses:
        '200':
          description: dummy
          content:
            application/x-pem-file:
              schema:
                type: string

Real world example: https://github.com/Nitrokey/nethsm-sdk-py/pull/65

PR checklist

[x] Read the contribution guidelines.
[x] Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
[x] Run the following to build the project and update samples:mvn clean package
./bin/generate-samples.sh
./bin/utils/export_docs_generators.sh

Commit all changed files.
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/python*.
For Windows users, please run the script in Git BASH.

Not sure why the CI fails.  I’ve ran the scripts mentioned in the PR template to update the samples but it looks like it did not work.

Thank you for the PR. Can you please run these steps and then commit the changes?
mvn clean package
./bin/generate-samples.sh

CI is failing because the repo samples have changes when they are regenerated with your fixes.

Oh, I ran the script, added the files but forgot to amend the commit. :facepalm: Should be fixed now.

… and rebased onto master.

… and finally fixed the CI.

Thank you for making those changes. The PR as-is has no tests verifying that it works. If we leave it as-is a future PR could break this functionality without generating a test error signal.
How about

adding a route in the petstore spec which sends and receives your needed content type
a test in this directory verifying that sending and receiving via  that route works? Similar-to test here

@spacether Thank you!  I started working on the test but got stuck figuring out the details of the test setup, so I very much appreciate you adding the test.


Why not return a Trailers-only response other than gRPC-Web?

Describe the bug
Connect's gRPC Protocol returns a Trailers-only response only when gRPC-Web.
https://github.com/connectrpc/connect-go/blob/59f77e784908ddab78a262ed44bdd0515733d487/protocol_grpc.go#L534-L535
However, according to the specification, Trailers-only reponse would work for gRPC as well as gRPC-Web.
https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#responses
For example, grpc-go also returns Trailers-only reponse.
I posted this question because some libraries that rely on Trailers-only behaved differently in Connect-Go.
Thanks!
To Reproduce
For example, gRPC retries by grpc-dotnet do not work well with Connect.
https://learn.microsoft.com/en-us/aspnet/core/grpc/retries?view=aspnetcore-8.0
Environment (please complete the following information):

connect-go version or commit: v0.16.0
go version: go1.22.0 darwin/arm64

@castaneai, this library is built on top of net/http, which does not provide enough control over the HTTP/2 response stream to emit a correct "trailers-only" response for gRPC.
In particular, a "trailers-only" response in HTTP/2 must emit the response headers and set the "end stream" flag on the header frame. However, with net/http, this isn't possible. It emits the response headers but does not set the "end stream" flag on the frames. And then, upon realizing there is no response body, it sends an empty data frame with the "end stream" flag set. This is an invalid "trailers-only" response and will be interpreted as an erroneous response by some gRPC implementations.
It may be worth filing a bug to net/http to have some affordance for this: like if the handler returns without ever calling Write or WriteHeader on the http.ResponseWriter, then it has yet to write the header frames and also knows there will be no data, so it could set the "end stream" flag when it sends the headers. But that is definitely not implemented today, and it's questionable if the Go team would be okay with something that HTTP/2-specific being added to the spec for http.ResponseWriter.

@jhump Thank you! Is it correct that the client library side should handle both responses?

Is it correct that the client library side should handle both responses?
@castaneai, yes. Other servers do use trailers-only responses in various scenarios, so clients must handle them, in addition to normal responses (with separate headers and trailers, and possibly non-empty body).

Again due to limitations in net/http, the client implementation in this module is lenient with regards to "trailers-only" responses in gRPC. Since it cannot tell if the response was a single headers HTTP/2 frame with the "end stream" bit set (net/http doesn't provide this level of information about the on-the-wire form of the request), it allows any response that has an empty body and no trailers to be interpreted as a trailers-only response.

@jhump  Thank you! I will try to fix the client library side.


How to find accounted dilute users With supergroupMembersFilterSearch

Using the supergroupMembersFilterSearch class How to find accounted dilute users?
How to write query?

Do you mean deleted users? Deleted users aren't returned by getSupergroupMembers at all. There is no way to get them from server. They should be automatically removed from the chat after two weeks after deletion.

Yes, exactly
There are some unofficial telegram versions for Android!

This is not possible for supergroups with more than 5000 members, because they aren't returned by the server. For smaller groups you can try to receive them using supergroupMembersFilterRecent.


Simplify WDAC AppId setup by skipping PolicyName & PolicyId

I'm unable to see any added value in configuring additional PolicyName & PolicyId parameters for WDAC AppId policies.
Arguments

The existing AppIdTaggingKey & AppIdTaggingValue parameters already show up in WinDBG for tagged processes, so debugging is still possible.
WDAC AppId tagging seem to work just as well also without PolicyName & PolicyId.
I'm unable to figure out where the PolicyName & PolicyId parameters end up, so I'm only seeing added complexity and no value in defining them.

The PolicyName and PolicyId values appear in the event logs. They are worthwhile to keep in the command

The PolicyName and PolicyId values appear in the event logs. They are worthwhile to keep in the command

Thanks for making me aware of this! I just checked, but was unable to find any associated entries in the Applications and Services Logs\Microsoft\Windows\CodeIntegrity\Operational event log when starting an AppId-tagged application. I tested on an updated Win11 VM.
Do I need to enable some kind "verbose" mode to enable  PolicyName/PolicyId
logging?
Also, where is logging of PolicyName/PolicyId documented?

They are found in many event IDs, for instance, https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/operations/event-tag-explanations#policy-activation-event-options

@aczechowski please reject/close the PR

Closing at Jordan's request


Creating 2d rendertarget throwing exceptions sometimes.

I have this code ..
            // create the 2d render target --------------------------------------------------------             using (var surface = backBuffer.QueryInterface<Surface>())             {                 renderTarget2dDefault = new RenderTarget(                     graphics.factory2d,                      surface,                      new RenderTargetProperties(                         new PixelFormat(                             SwapChainFormat,                              SharpDX.Direct2D1.AlphaMode.Premultiplied)))                 {                     AntialiasMode = AntialiasMode.PerPrimitive                 };             }
Sometimes it throws exceptions ..
SwapChain.Ctor()
Exception thrown: 'System.Runtime.InteropServices.SEHException' in SharpDX.Direct2D1.dll
An exception of type 'System.Runtime.InteropServices.SEHException' occurred in SharpDX.Direct2D1.dll but was not handled in user code
External component has thrown an exception.
What could be causing this, is it a timing issue in my own code or perhaps something wrong with SharpDX.
Edit:
argument states:
Surface
◢ | surface | {SharpDX.DXGI.Surface} | SharpDX.DXGI.Surface
  | DebugName | "BackBuffer" | string
  | ◢ Description | {SharpDX.DXGI.SurfaceDescription} | SharpDX.DXGI.SurfaceDescription
  | Format | R8G8B8A8_UNorm | SharpDX.DXGI.Format
  | Height | 900 | int
  | ▶ SampleDescription | {{1, 0}} | SharpDX.DXGI.SampleDescription
  | Width | 1600 | int
  | IsDisposed | false | bool
  | ▶ NativePointer | {201916268} | System.IntPtr
  | Tag | null | object
  | _nativePointer | 0x0c08ff6c | void*
** Factory2d**
◢ | graphics.factory2d | {SharpDX.Direct2D1.Factory2} | SharpDX.Direct2D1.Factory2
  | ▶ DesktopDpi | {(96,96)} | SharpDX.Size2F
  | IsDisposed | false | bool
  | ▶ NativePointer | {22082648} | System.IntPtr
  | ▶ RegisteredEffects | {System.Guid[64]} | System.Guid[]
  | Tag | null | object
  | _nativePointer | 0x0150f458 | void*
SwapChainFormat
  | SwapChainFormat | R8G8B8A8_UNorm | SharpDX.DXGI.Format
Other device states:
Device
◢ | graphics.Device3d | {SharpDX.Direct3D11.Device5} | SharpDX.Direct3D11.Device5
  | CreationFlags | Debug | BgraSupport | SharpDX.Direct3D11.DeviceCreationFlags
  | DebugName | "device3d" | string
  | ▶ DeviceRemovedReason | {HRESULT = 0x0} | SharpDX.Result
  | ExceptionMode | 0 | int
  | FeatureLevel | Level_11_1 | SharpDX.Direct3D.FeatureLevel
  | ▶ ImmediateContext | {SharpDX.Direct3D11.DeviceContext} | SharpDX.Direct3D11.DeviceContext
  | ▶ ImmediateContext1 | {SharpDX.Direct3D11.DeviceContext1} | SharpDX.Direct3D11.DeviceContext1
  | ▶ ImmediateContext1__ | {SharpDX.Direct3D11.DeviceContext1} | SharpDX.Direct3D11.DeviceContext1
  | ▶ ImmediateContext2 | {SharpDX.Direct3D11.DeviceContext2} | SharpDX.Direct3D11.DeviceContext2
  | ▶ ImmediateContext2__ | {SharpDX.Direct3D11.DeviceContext2} | SharpDX.Direct3D11.DeviceContext2
  | ▶ ImmediateContext3 | {SharpDX.Direct3D11.DeviceContext3} | SharpDX.Direct3D11.DeviceContext3
  | ▶ ImmediateContext3__ | {SharpDX.Direct3D11.DeviceContext3} | SharpDX.Direct3D11.DeviceContext3
  | ▶ ImmediateContext__ | {SharpDX.Direct3D11.DeviceContext} | SharpDX.Direct3D11.DeviceContext
  | IsDisposed | false | bool
  | ▶ NativePointer | {33341524} | System.IntPtr
  | Tag | null | object
  | _nativePointer | 0x01fcc054 | void*
BackBuffer
◢ | backBuffer | {SharpDX.Direct3D11.Texture2D} | SharpDX.Direct3D11.Texture2D
  | DebugName | "BackBuffer" | string
  | ◢ Description | {SharpDX.Direct3D11.Texture2DDescription} | SharpDX.Direct3D11.Texture2DDescription
  | ArraySize | 1 | int
  | BindFlags | RenderTarget | SharpDX.Direct3D11.BindFlags
  | CpuAccessFlags | None | SharpDX.Direct3D11.CpuAccessFlags
  | Format | R8G8B8A8_UNorm | SharpDX.DXGI.Format
  | Height | 900 | int
  | MipLevels | 1 | int
  | OptionFlags | None | SharpDX.Direct3D11.ResourceOptionFlags
  | ▶ SampleDescription | {{1, 0}} | SharpDX.DXGI.SampleDescription
  | Usage | Default | SharpDX.Direct3D11.ResourceUsage
  | Width | 1600 | int
  | ▶ Device | {SharpDX.Direct3D11.Device} | SharpDX.Direct3D11.Device
  | ▶ Device__ | {SharpDX.Direct3D11.Device} | SharpDX.Direct3D11.Device
  | Dimension | Texture2D | SharpDX.Direct3D11.ResourceDimension
  | EvictionPriority |<PHONE_NUMBER> | int
  | IsDisposed | false | bool
  | ▶ NativePointer | {201915988} | System.IntPtr
  | Tag | null | object
  | _nativePointer | 0x0c08fe54 | void*
ImmediateContext
◢ | ImmediateContext | {SharpDX.Direct3D11.DeviceContext} | SharpDX.Direct3D11.DeviceContext
  | ▶ ComputeShader | {SharpDX.Direct3D11.ComputeShaderStage} | SharpDX.Direct3D11.ComputeShaderStage
  | ▶ ContextFlags | 'graphics.Device3d.ImmediateContext.ContextFlags' threw an exception of type 'System.Runtime.InteropServices.SEHException' | int {System.Runtime.InteropServices.SEHException}
  | DebugName | "context3d" | string
  | ▶ Device | {SharpDX.Direct3D11.Device} | SharpDX.Direct3D11.Device
  | ▶ Device__ | {SharpDX.Direct3D11.Device} | SharpDX.Direct3D11.Device
  | ▶ DomainShader | {SharpDX.Direct3D11.DomainShaderStage} | SharpDX.Direct3D11.DomainShaderStage
  | ▶ GeometryShader | {SharpDX.Direct3D11.GeometryShaderStage} | SharpDX.Direct3D11.GeometryShaderStage
  | ▶ HullShader | {SharpDX.Direct3D11.HullShaderStage} | SharpDX.Direct3D11.HullShaderStage
  | ▶ InputAssembler | {SharpDX.Direct3D11.InputAssemblerStage} | SharpDX.Direct3D11.InputAssemblerStage
  | IsDisposed | false | bool
  | ▶ NativePointer | {33263688} | System.IntPtr
  | ▶ OutputMerger | {SharpDX.Direct3D11.OutputMergerStage} | SharpDX.Direct3D11.OutputMergerStage
  | ▶ PixelShader | {SharpDX.Direct3D11.PixelShaderStage} | SharpDX.Direct3D11.PixelShaderStage
  | ▶ Rasterizer | {SharpDX.Direct3D11.RasterizerStage} | SharpDX.Direct3D11.RasterizerStage
  | ▶ StreamOutput | {SharpDX.Direct3D11.StreamOutputStage} | SharpDX.Direct3D11.StreamOutputStage
  | Tag | null | object
  | ▶ TypeInfo | 'graphics.Device3d.ImmediateContext.TypeInfo' threw an exception of type 'System.Runtime.InteropServices.SEHException' | SharpDX.Direct3D11.DeviceContextType {System.Runtime.InteropServices.SEHException}
  | ▶ VertexShader | {SharpDX.Direct3D11.VertexShaderStage} | SharpDX.Direct3D11.VertexShaderStage
  | _nativePointer | 0x01fb9048 | void*
ImmediateContext.ContextFlags
◢ | ContextFlags | 'graphics.Device3d.ImmediateContext.ContextFlags' threw an exception of type 'System.Runtime.InteropServices.SEHException' | int {System.Runtime.InteropServices.SEHException}
  | ▶ Data | {System.Collections.ListDictionaryInternal} | System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
  | ErrorCode | -2147467259 | int
  | HResult | -2147467259 | int
  | HelpLink | null | string
  | ◢ InnerException | null | System.Exception
  | ▶ Static members |   |
  | Message | "External component has thrown an exception." | string
  | Source | "SharpDX.Direct3D11" | string
  | StackTrace | "   at SharpDX.Direct3D11.DeviceContext.GetContextFlags()\r\n   at SharpDX.Direct3D11.DeviceContext.get_ContextFlags()" | string
  | ◢ Static members |   |
  | ◢ Non-Public members |   |
  | _COMPlusExceptionCode | -532462766 | int
  | s_EDILock | {object} | object
  | ◢ Non-Public members |   |
  | ▶ IPForWatsonBuckets | {123588342} | System.UIntPtr
  | IsTransient | false | bool
  | RemoteStackTrace | null | string
  | WatsonBuckets | null | object
  | _HResult | -2147467259 | int
  | _className | null | string
  | ▶ _data | {System.Collections.ListDictionaryInternal} | System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
  | _dynamicMethods | null | object
  | _exceptionMethod | null | System.Reflection.MethodBase
  | _exceptionMethodString | null | string
  | _helpURL | null | string
  | ▶ _innerException | null | System.Exception
  | ▶ _ipForWatsonBuckets | {123588342} | System.UIntPtr
  | _message | "External component has thrown an exception." | string
  | _remoteStackIndex | 0 | int
  | _remoteStackTraceString | null | string
  | _source | "SharpDX.Direct3D11" | string
  | ▶ _stackTrace | {sbyte[48]} | object {sbyte[]}
  | _stackTraceString | null | string
  | _watsonBuckets | null | object
  | _xcode | 2173 | int
  | ▶ _xptrs | {213813264} | System.IntPtr
Exception
◢ | $exception | {System.Runtime.InteropServices.SEHException: External component has thrown an exception.    at SharpDX.Direct2D1.Factory.CreateDxgiSurfaceRenderTarget(Surface dxgiSurface, RenderTargetProperties& renderTargetProperties, RenderTarget renderTarget)    at SharpDX.Direct2D1.RenderTarget..ctor(Factory factory, Surface dxgiSurface, RenderTargetProperties properties)    at Nucleus.Graphics.Direct3d11.GpuSwapChain..ctor(Dx11Graphics gfx, CoreWindow coreWindow, Int32 width, Int32 height)    at Nucleus.Graphics.Direct3d11.Dx11Graphics.SynchronizeSwapChainToCoreWindow(Int32 key, CoreWindow coreWindow, Int32 w, Int32 h)    at Nucleus.Core.EngineCore.Render(FrameDescriptor frame)    at Nucleus.Core.EngineCore.b__36_0(IAsyncAction action)} | System.Runtime.InteropServices.SEHException
  | ▶ Data | {System.Collections.ListDictionaryInternal} | System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
  | ErrorCode | 0x80004005 | int
  | HResult | 0x80004005 | int
  | HelpLink | null | string
  | ▶ InnerException | null | System.Exception
  | Message | "External component has thrown an exception." | string
  | Source | "SharpDX.Direct2D1" | string
  | StackTrace | "   at SharpDX.Direct2D1.Factory.CreateDxgiSurfaceRenderTarget(Surface dxgiSurface, RenderTargetProperties& renderTargetProperties, RenderTarget renderTarget)\r\n   at SharpDX.Direct2D1.RenderTarget..ctor(Factory factory, Surface dxgiSurface, RenderTargetProperties properties)\r\n   at Nucleus.Graphics.Direct3d11.GpuSwapChain..ctor(Dx11Graphics gfx, CoreWindow coreWindow, Int32 width, Int32 height)\r\n   at Nucleus.Graphics.Direct3d11.Dx11Graphics.SynchronizeSwapChainToCoreWindow(Int32 key, CoreWindow coreWindow, Int32 w, Int32 h)\r\n   at Nucleus.Core.EngineCore.Render(FrameDescriptor frame)\r\n   at Nucleus.Core.EngineCore.b__36_0(IAsyncAction action)" | string

After enabling mixed mode debugging I got this extra info ..
D3D11 CORRUPTION: ID3D11DeviceContext::ClearRenderTargetView: Two threads were found to be executing functions associated with the same Device[Context] at the same time. This will cause corruption of memory. Appropriate thread synchronization needs to occur external to the Direct3D API (or through the ID3D10Multithread interface). 18800 and 17524 are the implicated thread ids. [ MISCELLANEOUS CORRUPTION #28: CORRUPTED_MULTITHREADING]
Exception thrown at 0x7702DDC2 (KernelBase.dll) in AppCore.exe: 0x0000087D (parameters: 0x00000000, 0x0F97DEB0, 0x0F97D2E8).
So I guess I've got my answer.


Try set GOGC for golint

Signed-off-by: Michael Crosby<EMAIL_ADDRESS>

Codecov Report

Merging #3657 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3657   +/-   ##
=======================================
  Coverage   42.39%   42.39%
=======================================
  Files         127      127
  Lines       14048    14048
=======================================
  Hits         5955     5955
  Misses       7193     7193
  Partials      900      900

Flag
Coverage Δ

#linux
45.9% <ø> (ø)
:arrow_up:

#windows
37.27% <ø> (ø)
: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 86442df...3bc9975. Read the comment docs.


In the module Network Plot, Can we label the node as gene_name instead of gene_id ?

Hello,
I was learning WGCNA with the PyWGCNA program.  It was easy to run.  Thank you for developing this program.  I have just an issue with a module Network Plot. In the network fig, It labeled  gene_id in the node, but I want to label it as gene_name. On clicking on the node, it shows the gene_name but I want to label the node with gene_name, not with gene_id. Would you please instruct me on how to do that?  I appreciate your help.
Thanks,

Hi,
Thank you for your kind comments.
If you initiate the PyWGCNA object with gene expression data in a way that indexes are gene names rather than gene IDs then it should show each node with the corresponding gene name (index).
Best,
Narges

Thank you for the reply. I will try and let you know.
binod
On Mon, Apr 8, 2024 at 5:14 PM Narges Rezaie @.***>
wrote:

Hi,
Thank you for your kind comments.
If you initiate the PyWGCNA object with gene expression data in a way that
indexes are gene names rather than gene IDs then it should show each node
with the corresponding gene name (index).
Best,
Narges
—
Reply to this email directly, view it on GitHub
https://github.com/mortazavilab/PyWGCNA/issues/96#issuecomment-2043653204,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXPKO7PTWFR7TDKCOCLR6YTY4MCEHAVCNFSM6AAAAABF2UO7LOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBTGY2TGMRQGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Order is created when no payment method is selected and Place Order button is clicked

Describe the bug
At the Magento checkout's payment section if you don't select any specific payment method and click Place Order button, it creates an order with Pending Payment state and therefore reduces stock qty. You can create multiple orders in this way when you are at checkout page.
To Reproduce
Add a product to cart and continue to payment page of checkout and do not select any specific payment method of OP Payment Service's. Then click Place order button once or multiple times.
Expected behavior
It should not create an order at this point. It should only show info text that tells customer to choose a specific payment method.
Additional context
Magento 2.4.1. I did not try Vanilla.

@kunzi Thanks for reporting, we will look in to this.

Hello @kunzi!
We couldn't reproduce this bug with vanilla Magento 2.3.X or 2.4.X installations. Could you please provide information about any checkout related customizations or 3rd party modules in your store, as this will help in our investigations?
If you can also provide your store url, it will make reproducing the issue much faster.
Thank you,
Roope Salminen

Hello @kunzi!
We couldn't reproduce this bug with vanilla Magento 2.3.X or 2.4.X installations. Could you please provide information about any checkout related customizations or 3rd party modules in your store, as this will help in our investigations?
If you can also provide your store url, it will make reproducing the issue much faster.
Thank you,
Roope Salminen

Hello @roopesalminen
Indeed I also tried it in another installation and there was no such problem. Then I disabled all checkout related extensions and changed the theme to Luma, but these changes had no effect and the problem still persisted. I have no idea why that happens. I can send you our test installation's url and also credentials if you want to test yourself (how do I send them to you?). The same problem is in the test installation.
However I noticed that there is a possibility to set this:  Skip payment method selection -> Yes
I think we might be able to bypass this problem.
But that brings another small problem as this text does not seem to be translatable:
You will be redirected to OP Payment Service.
How I can translate that?
Thanks!

Hello @roopesalminen
Indeed I also tried it in another installation and there was no such problem. Then I disabled all checkout related extensions and changed the theme to Luma, but these changes had no effect and the problem still persisted. I have no idea why that happens. I can send you our test installation's url and also credentials if you want to test yourself (how do I send them to you?). The same problem is in the test installation.
However I noticed that there is a possibility to set this:  Skip payment method selection -> Yes
I think we might be able to bypass this problem.
But that brings another small problem as this text does not seem to be translatable:
You will be redirected to OP Payment Service.
How I can translate that?
Thanks!

Hello @kunzi!
Regarding the translation issue. Our apologies, we have completely missed the need for translation there and will get right on it. I assume you need Finnish translation for this?
If the bypass option works for you and the translation is sufficient, then there might be no need to investigate the problem further, but if you want us to continue working on the payment issue you can send the credentials and info to<EMAIL_ADDRESS>email.
Thank you,
Roope Salminen

Hello @kunzi!
Regarding the translation issue. Our apologies, we have completely missed the need for translation there and will get right on it. I assume you need Finnish translation for this?
If the bypass option works for you and the translation is sufficient, then there might be no need to investigate the problem further, but if you want us to continue working on the payment issue you can send the credentials and info to<EMAIL_ADDRESS>email.
Thank you,
Roope Salminen

@roopesalminen Yes Finnish translation is needed.
I will send you the test installation credentials so you can check the problem. It would be nice to have the selection on the shop's checkout.

@roopesalminen Yes Finnish translation is needed.
I will send you the test installation credentials so you can check the problem. It would be nice to have the selection on the shop's checkout.

Hello @kunzi!
Did you send the credentials to<EMAIL_ADDRESS>yet?
-Roope

@roopesalminen Sorry for delay. I just sent the credentials!

@kunzi Sorry for late reply!
I was unable to reproduce the error in your environment. When trying to pay without choosing payment method, an error message shows up on the page similarly to vanilla Magento.
Could you perhaps send a screencast to display how the error reproduces for you?

@roopesalminen That is strange. Last time I checked in January I was able to reproduce the problem many times and it resulted many orders with pending payment status. Now the problem does not appear in test installation nor the production installation. Could it be that turning off and on the payment selection at checkout could have solved the issue? I hope it does not appear again.

Hello! @kunzi
Thanks for the information and good to hear that your checkout is now working well. Maybe turning off and on again helped :) I will close the issue for now, but if the problem persist you can open a new one.
Best regards,
Roope Salminen


Mobile usage

I've read an discussion about this subject last year. But that post wasn't supported massively and so you decided to not realise it.
I'm currently trading like 80% on my phone so I would love to see an addon for Android.

At the time I didn't look in depth at it, but without official Tampermonkey support for mobile, this is not something I can add. See https://openuserjs.org/about/Tampermonkey-for-Android, it states the following:

WARNING!
This is a pilot study and the version of Chrome that has this embedded Tampermonkey is out of date. Use at your own risk!

The reasons I mentioned back then still apply (see #87).


Is tf.matrix_inverse() supported for TF v.1.2?

I notice that the Tensorlfow computation op tf.matrix_inverse() was not supported running on GPU in the previous versions, and I wonder if it's supported for Tensorflow v.1.2 now. If it's still not, can we make a feature request for it? Thanks!

@RuofanKong it's supported in head, benchmark numbers are in https://github.com/tensorflow/tensorflow/pull/12116/commits/e57e11b74b983d663f612d40facd97b83189bbac


add merged product

In this PR I added the merged product, consisting of the following:

shape files of the intersects of individual glaciers
shape files of merged outlines
json file to link individual glacier ids with merged glacier ids

Some thoughts/questions:

should intersect lines be densified (e.g. define a maximum-line-length between points along a line using https://shapely.readthedocs.io/en/latest/reference/shapely.segmentize.html)
currently, no minimum total length for intersects used
attributes of merged product: currently I only added area, are there other attributes I should add?
the naming of resulting files: I decided to use I for intersects, C for merged glacier complex, C-to-G for the conversion list

cenlon and cenlat I should definitely add to the complex product. But what about the attributes which require a DEM (zmin_m, slope_deg ...)?

Ok, just added cenlon and cenlat.


Replication with SQLite and litestream

Can we get the same approach for SQLite with litestream read-only replicas and Phoenix? That would be a gamechanger!

Hi @SebastianSzturo!
That sounds like an interesting idea and possibly something we might look into. I know there's currently interest in SQLite and multi-region. However, that isn't an issue for this repo. :slightly_smiling_face:


Drop leading dot for renderFullname when namespace is null

After this change:
*Data.Avro> renderFullname $ TN "Hi" []
"Hi"
*Data.Avro> renderFullname $ TN "Hi" ["foo"]
"foo.Hi"
*Data.Avro> renderFullname $ TN "Hi" ["foo", "org"]
"foo.org.Hi"

The python bindings fail to parse ".Hi", so we should produce compatible avro json, while we continue parsing both styles (leading-dot and no-leading-dot).
Well, I'm not sure that we should, but it is a lot more convenient if we do :)

@AlexeyRaga I've finally added some unit tests! They do pass, but There's an error from circle unfamiliar to me, about changing dependencies. Do you know what that's about?

Thanks! I have updated CCI, it wasn't complaining about your code in any way :)


ReadMe have a complex explanation on the usage, bad for newcomers.

At ReadMe:

select all:  start muticursor and directly select all matches

I searched for an hour and did not found what <A-n> combination actually means, can you edit the text in a way that is friendly to new users of vim? I do know what  is but some people might not and this is bad for the project in general.

@marcospb19 , sorry but <A-n> is standard way to note Alt + n in vim.
You try typing the following in vim to get more info:
:help <A-n

Thanks,
Antoine

This should not be closed, there's no explanation to newcomers of what <C and <A means and we did not discussed it properly, this is not only about me (i expect lots of sublime users to use your software because it's explicitly associated with it).
Seems like urxvt don't support Alt + N combination, so i spent most of my time confused, i tried Alt + N several times and i only understood the real problem after your explanation, thank you anyways.

Hi, could you please elaborate on the line:
df[$r,0f,v<C-n>…<C-n>c<CR><Up><Del><Right><Right><Right><Del>
I am unclear what <Up> means? I know what it does from the animated gif, I just don't understand which keybinding it is.
All the commands work, just don't understand how you got the cursor to shift upwards one line and then move to the right as a block (prior to the delete backwards part).
Apologies in advance if I missed the obvious.

Doh, all working. Deleted question ;(
You help suggestion was spot on.


Error while reading the pages !  TypeError: "canvas is null"

HI @ansu5555 @ansuman5555
This error is happening inconsistently:
Error while reading the pages !
TypeError: "canvas is null"
I'm loading from a URL. If I copy paste that URL in the browser then it opens the pdf properly.
What could the possible reasons be for this ?

@ansu5555 @ansuman5555
The question is really why would the canvas be null ?

@ansu5555 @ansuman5555
Funnily enough when I remove the error handling here (see below), the PDF renders properly.

With error handling:

Error message:
Error while reading the pages !
TypeError: "canvas is null"

Without error handling:

Error message:
 Error occured while rendering !
 Error: "Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed."

Any update on it? I am also facing same issue.
pdf-viewer-reactjs.js:1 Error occured while rendering !
Error: Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.
at InternalRenderTask.initializeGraphics (api.js:2775)
at api.js:1136

wrapping the pdf component in PureComponent fixed my problem.....

Fixed in version 2.1.1, it was happening due to multiple times pdf fetch.
If you face the same issue again feel free to open a new issue with error details, steps to reproduce & the pdf file for which its happening.


Identity-Mapping endpoint: Wrong path and missing request parameter validation

Using image docker.sunet.se/dc4eu/apigw:apiv28
There is a mismatch between the implementation and the spec regarding the path of the Identity-Mapping endpoint.
According to the spec the path is /identity/mapping.
In the current implementation it is /id/mapping.
Also there seems to be no validation of the request parameter as you can leave out both authentic_source and identity without getting a validation error.

Validation is fixed with, https://github.com/dc4eu/vc/commit/e1ea46f3d3bd5e1393e1686af6d9c465efd1d4ca

Can't find id/mapping in the code, but https://github.com/dc4eu/vc/blob/masv_api-2.8/internal/apigw/httpserver/service.go#L93


perf: add direct dataset upload from user

Currently, when user uploads a dataset, it goes via radix (the api). Sepes should instead initiate a direct upload from the user to the study in Azure

Implemented in #541


Make it possible to browse the full list of cards in-game

There is a current way to view the full list of possible cards via Isotropic, but there is no way to view the full artifact card list.
Some cards (like Holy Lance) needs to know where other cards exist.  It also might be helpful for people to read through the cards that exist.

I've had a few people ask for this due to some of the interconnectivity of the cards.  My one friend takes screen shots every time a new card comes up.
It might not be too hard to render an HTML page with each of the cards since we do that dynamically during the game.  I don't know if we can link such a page to the wiki, but it might be a good mechanism for sharing this info.

I don't know how we'd handle translations.  I imagine we wouldn't as this was never done previously.  They use to reference the old isotropic site which had a printout of the old cards.

It would have to be some sort of dynamic window (like the score window) that has a button on the table somewhere.  It could be a button per expansion to make it easier to dynamically include it as needed.  Whatever it is needs to run through the translator.

This will be more important once Echoes goes out and there are 105 new cards.  Having the cities cards seems less important but might be relevant when checking for when symbols fade out by age since that is different in Cities (e.g. there is a city with castles and a clock in it in age 5).

Cards like "saxophone" have references to other specific cards and it would be nice for users to know in what ages they would appear.

Okay, adding it as release-blocking seems reasonable, but we will definitely get this out to alpha first.
It will take a bit of work to get this working, but I know it will be well-received.

I'm imagining a popup which has buttons to select which set you want to view and another set of buttons for selecting the age you want to view. And then we would render those 10-15 cards in the popup.

A workaround might be to add something to the ID calculation so that the reference cards have completely different IDs.

Work in progress screenshot:


Generate haddock

create a command to generate Haddock documentation.
Make sure that multiline comments + doctests are supported

The Nix build builds Haddock documentation by default. When the command nix build is issued, it creates two directories: result and result-doc. The structure of result-doc looks like this:
$ nix build
$ exa --tree result-doc/
result-doc
└── share
   └── doc
      └── crm-<IP_ADDRESS>
         └── html
            ├── CRM-BaseMachine.html
            ├── CRM-Graph.html
            ├── CRM-Render.html
            ├── CRM-StateMachine.html
            ├── CRM-Topology.html
            ├── crm.haddock
            ├── crm.txt
            ├── doc-index.html
            ├── doc-index.json
            ├── haddock-bundle.min.js
            ├── index.html
            ├── linuwial.css
            ├── meta.json
            ├── quick-jump.css
            ├── quick-jump.min.js
            ├── src
            │  ├── CRM.BaseMachine.html
            │  ├── CRM.Graph.html
            │  ├── CRM.Render.html
            │  ├── CRM.StateMachine.html
            │  ├── CRM.Topology.html
            │  ├── highlight.js
            │  ├── Paths_crm.html
            │  └── style.css
            └── synopsis.png

We can write a helper to make this generated doc easier to use for the developer, or we can expose it as a CI artefact. What do you think, @marcosh?

If I run nix-build locally, I'm not seeing the result-doc folder, actually.
For the moment, for me it would be enough to document in the README.md where the documentation is created.
Next step (which could be addressed later) would be a command which opens the documentation in a browser
Last step exposing it as a CI artefact (anyway, it would be published on hackage it we decide to put the package there)


List component

Add list component

Empty box
Header
Expansion
States (hover, active, expanded, collapsed)

Note: it should accommodate for infinite amount of expansions

Lists + Specs
Lists.zip

I have updated the title and requirements of this component per 5/29 meeting with @kybaker @matthewcarleton @mceledonia and @andresgalante

@mceledonia One additional requirement that occurs to me is that it should be possible to select one or more items in a list. Had you given any though to how selection would be represented? I don't necessarily think we need to include checkboxes for the simple list. Perhaps just toggle selection when clicking on a row? Let me know your thoughts.


Night CI 2023-08-25: Failed

action url: https://github.com/spidernet-io/egressgateway/actions/runs/5979932348

same with #707


make NMDC data object a ga4gh DRS object?

The ga4gh data repository service (DRS) API spec defines an object type, DrsObject, that has properties useful for workflow automation, for example url+headers for authorized access, or tokens for deferring url generation. I have sketched out a pydantic model for it in the nmdc-runtime repo. Also, #49 suggests a checksum field, which DRS addresses as an array (e.g. [{checksum: ..., type: 'crc32c'}, {checksum: ..., type: 'md5', ...]).
My suggestion here is to make NMDC's data object a DRS object, i.e. align its LinkML definition with DRS's DrsObject spec.

DRS does not include a compression-format field (e.g. "zip", "bz2") like NMDC does. I suggest we wither underscore-prefix such fields (e.g. _compresion_format) so as to clarify that they are not part of the DRS spec, or else document that these fields may clash with future versions (if any) of DRS.

I think we make use of some of the properties w/o necessarily making DrsObject per se.
Some of the properties we already have; e.g.:

drs:aliases -> nmdc:alternative identifier
drs:created_time -> nmdc:add_date
drs:updated_time -> nmdc:mod_date
drs:name -> nmdc:name
drs:description -> nmdc:description
drs:id -> nmdc:id
drs:size -> nmdc:file_size_bytes

Other DRS properties need to be evaluated, such as drs:ContentObject. We may already be representing the pertinent information using the data_object_type (see #20).
Possible additions to the schema (IMHO):

checksums
mime_type
access_methods, although we have some of this covered using nmdc:url

@dwinston should we revisit this issue after GSP, or just close it?

@cmungall @dwinston I feel like we have implemented @wdduncan's suggestions for reflecting DRS-like attributes in the schema directly. (I don't have a sense of the extend to which those attributes are enabling workflows.)
Is DRS an enabling componenet of our ecosystem now?
Can we close this issue?
https://github.com/search?q=org%3Amicrobiomedata+drs+repo%3Amicrobiomedata%2Fnmdc-runtime&type=code


Release 1.6.3

[x] Test it with Samples.app
[x] Write the release note
[ ] Update pod repo

Now I consider adding the e4f4d3a commit for #242. But this version will be released in July.

Now I'm considering adding the e4f4d3a commit. But this version will be released in July.

I took and fixed the commit.


slide_puzzle is broken under Flutter 2.10

Description
slide_puzzle doesn't compile.
Steps To Reproduce
$ flutter run -d chrome
Launching lib/main.dart on Chrome in debug mode...
../../../flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_web-2.0.7/lib/url_launcher_web.dart:50:61: Error: No named parameter with the name 'isVisible'.
        .registerViewFactory(linkViewType, linkViewFactory, isVisible: false);

I got this message in the console:
C:/Development/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.2/lib/src/interface/local_platform.dart:46:19: Error: Member not found: 'packageRoot'.
      io.Platform.packageRoot; // ignore: deprecated_member_use
                  ^^^^^^^^^^^
Failed to compile application.

@samueladekunle
Try these steps:
1.flutter pub upgrade
2. flutter clean
3. flutter pub get


Visuals as components

Sprite being an entity is limiting.
I can't attach or detach the behavior of a sprite to existing entity or extend its functionality to a custom component.
The some goes for all visual classes.
We can't freely use more than one visual feature to the same entity, loop through its components to fetch them or create a new visual taking advantage of the system.
A base VisualComponent class with an "onDraw" method to be overridden would make the render system easier to customize and extend.

You can make a component which has var sprite:Sprite and make use of onadded and onremoved to attach or detach that sprite from parent entity.
I'm not an expert in Luxe philosophy but that's how I would go about solving this problem.

Well, it's a workaround but is counterintuitive that's why I'm suggesting it.
This also will lead to memory waste as each Visual wrapped in a component has its own entity data instead of pointing to the data of the actual entity.

iirc I read in the luxe docs that using an inheritance based programming approach or a component based one should be both valid options. Making sprite a component would make the first approach more difficult.

Can't see how this will make it more difficult.
You can still use inheritance for entities and components as well.
The engine physics system uses components, meshes are components, sprite animations too...

hey,
Let's tackle this one bit a time,

Things are not finished yet, in general. There are still things to be desired around the Entity/Scene/Component stuff - so keep that in mind.

Marc was close in part - but what they were getting at is that, if Sprite was a component, you would have no choice but to use it as one, where now you have the choice to make a component with a sprite as Zielak suggested.

But all that is tertiary, the real logic behind all this follows.

To word this plainly, Sprite is an entity-quad-geometry-with-sprite-powers.
This is the most important point - Sprite is a specialization. That means when trying to shoehorn it into a generalization (or another specialization) - will be uncomfortable.
When looking at it, we don't want to be conflating "entity with geometry" to "is a sprite" - that is not the case here, and won't be (that's a better specialization to be had on it's own).
To be even more precise:
Sprite is a specialized entity.
It has a specialized geometry attached.
It then makes assumptions about itself, because it can.
It then gives you specialized usage patterns (.uv, .rotation_z).
For your point about SpriteAnimation being a component, that was where it landed right now - it is a Sprite specific specialization, it leans on the assumptions made by Sprite, knowing that it will be a quad geometry, and will be on a Sprite entity.
It is not a generic entity (that would be Entity)
It is not a generic quad geometry (that would be QuadGeometry or above it),
It is not even a general purpose geometry entity, that would be Visual*, one above it.
*(and visual has some work to go as its currently harbouring old quad identity).

So stepping back where does that leave us?
It means that Rendering-as-a-component is not the real concern here for me, it's the inverse, using a specialization in another paradigm. If you want to render stuff you create a geometry or use the onrender hooks that are there already (including their associated costs - I'd use geometry because it's more efficient that way).

How do we get to the paradigm you're after?

Specialize a component - specifically to what you want it to be.
Make a class SpriteComponent, store a QuadGeometry in it and give it sprite powers if you want them (.uv, .rotation_z, etc) and you're sorted. If you wanted non-quad geometry or inheritance there (not ideal in this placement) you could have VisualComponent too.
Along the way,
I did intend to add a set of components in this paradigm too.
It would require that the existing one be finished ideally, and that there isn't an overloaded sense of how to do the same basic task for tutorials and guides to remain helpful, and quick to jump in and get things moving.
Short term, the simpler imperative approach is preferred, because it doesn't require an existing set of knowledge to get something on the screen ("what is a component?") - it's just a class instance.
Hope that clarifies things a bit for everyone :)
And of course, I'm always open to contributions and discussion.
Thanks for the feedback.

minor notes:

The mesh, physics and other components are optional. They all have examples not using them as components - Only sprite animation which is specialized currently has that :)

Hi, thanks for the explanation.
Transformation data like rotation_z is more of a entity property rather than a sprite property to me.
My suggestion comes from the concept that sprites (or any visual) has nothing to do with any of the entity properties as a texture file has nothing to do in which position will be rendered in the screen so I can't see why make it a specialized entity.
Also because I was used to think of entity as generic objects and the components are the ones to make features.
For example the  RenderSystem loop through all the VisualComponents rendering then, my custom EnemySystem loop through all the EnemyComponent updating IA, the PhysicsSystem loop through all RigidBoydComponents updating its entity transform and so on.
The Game update method loop through all systems update methods making everything very modular and extensible while still full supported by the engine itself just by inheriting from a base component and system class.

The way I understand it, you would like to use multiple visual elements to display one single Entity. Correct me if I'm wrong.
If it happens to be the case, Luxe.draw might be your solution, from what I know of. Luxe.draw allows independently drawing of simple geometry or texture, whose data can be referred to Entity's data.
For example:
class DrawBox extends Component {

	override public function update(dt: Float) {
		Luxe.draw.ngon({
			r: 32,
			sides: 3,
			solid: true,
			color: new luxe.Color(1, 0.5, 1, 1),
			x: entity.pos.x,
			y: entity.pos.y
		});
	}

}

This component will draw a red triangle with a radius of 32 pixels using entity.pos (or the position of the entity it was attached to, in human's terms). Using this method, it is possible represent an Entity with as many visual elements as you need to, without resorting to luxe.Sprite or complicated extension.
However, as of this moment, Luxe.draw is very limited in its capability compared to its counterpart in other game engines (i.e. HaxePunk or Love2d), which is why I opened issue#275 (probably not a big problem for you, if you're using solely textures). The other problem is a slightly delay in more complicated draw, which I believe is the performance issue mentioned on devlog5, and I hope it will eventually be fixed.
A very detailed example using Luxe.draw can be found in \git\tests\features\draw.

@JunoNgx Not really.
There are some cases where I could use a visual definition without rely specifically in the base entity.
I could use it for a UI widget for example which maybe could work great as a child class of entity.
Set position relative to the object holding it instead of it having it own position seems more flexible to me.
I don't have problems at all coding a custom component. It's just a suggestion of a design decision to be explored by the engine.
Btw, I think you are creating a ngon each frame instead of batch it.
Usually do a lot of debug draw so was coding a draw system around the concept of "building blocks" like Love2D and HTML5 canvas.

Instead of Sprite extends Visual extends Entity:
class Sprite extends Visual (extends Entity)
{
  // lots of sprite specific codes....
}

could it become Sprite is simply an Entity with a visual/sprite Component by default?
class Sprite extends Entity
{
  var visual:VisualComponent; // all the sprite specific codes moved into the component
  public var rotation_z(get, set); // forward the properties to the component
}

So at the end, new users can get things to display on screen with the same minimal effort as now. But that would also enable advanced users to compose their own class with the visual/sprite component?

You're not unable to compose your own, as it is.
As mentioned above - you're not prevented from this pattern.
Make a SpriteComponent, compose it of a QuadGeometry.

I am just trying to give some suggestions that makes Luxe easy to use for both new users and advanced users.


Cleanup released package

I think we have two options of exporting dist to NPM

Using npm script. Firstly, remove dist from repo and dist will be built during npm installing time
Using npm files in packages.json. Only released dist path except other sources

What's your think?

:one: :+1:

:1234: :game_die:

:cry: We can't use option 1 cause that there are so many devDependencies. we wouldn't force developers to install webpack

See the changes of dist:
node_modules
└── react-photonkit
    ├── dist
    ├── license
    ├── node_modules
    ├── package.json
    └── readme.md

Anything has been missing?

https://github.com/react-photonkit/react-photonkit/issues/2#issuecomment-152544434: oh, misunderstood. you are right.

https://github.com/react-photonkit/react-photonkit/issues/2#issuecomment-152547038:
what is node_modules/node_modules?

node_modules for react-photonkit
"classnames": "^2.1.5",
    "photon": "connors/photon#v0.1.2-alpha",
    "react": "^0.14.1",
    "react-dom": "^0.14.1"

Really need all?
I know that the packages are included in dist/photon.js. (Actually react and react-dom will not be included..)
Anyway, I agree with you if my opinion is wrong.

:) I'm not sure. those of packages already was in there. I think all of packages should be in devDependencies

then, go ahead as your idea :)
:train: =3=33

Closed as https://github.com/react-photonkit/react-photonkit/commit/56b5e325c70759628eb9dc6b942a2e3cb3a6698a

:tulip:


[Firmware] Fix CI not providing correct paths for clippy warnings

Example: https://github.com/SlimeVR/SlimeVR-Rust/security/code-scanning/1

psastras/sarif-rs#370

Fixed by #143


[Dialog] Providing onKeyDown breaks closing via Escape

Steps to reproduce
Link to live example: codesandbox
Steps:

Validate that pressing escape does not close the <Dialog />.
Comment out the onKeyDown line.
Validate that pressing escape does now close the <Dialog />.

Current behavior
When an onKeyDown handler is passed to the <Dialog /> component,
the Escape key does not work to close the <Dialog /> anymore.
Expected behavior
Just like it used to in v5, the <Dialog /> should close when pressing Escape
even when an onKeyDown is supplied in v6.
Context
No response
Your environment
Check the codesandbox.
Search keywords: dialog, onKeyDown, escape

I guess it's simply that the Modal doesn't follow the template, it should be:
diff --git a/packages/mui-material/src/Modal/Modal.js b/packages/mui-material/src/Modal/Modal.js
index 60d29549ff..bbb7839368 100644
--- a/packages/mui-material/src/Modal/Modal.js
+++ b/packages/mui-material/src/Modal/Modal.js
@@ -156,6 +156,7 @@ const Modal = React.forwardRef(function Modal(inProps, ref) {
   }

   const externalForwardedProps = {
+    ...other,
     slots: {
       root: components.Root,
       backdrop: components.Backdrop,
@@ -218,7 +219,7 @@ const Modal = React.forwardRef(function Modal(inProps, ref) {
        * is not meant for humans to interact with directly.
        * https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md
        */}
-      <RootSlot {...rootProps} {...other}>
+      <RootSlot {...rootProps}>
         {!hideBackdrop && BackdropComponent ? (
           <BackdropSlot {...backdropProps} ref={backdropRef} />
         ) : null}

@oliviertassinari I would like to work on it.


Issue 1967: Non-persistent topic drop too many messages

Motivation
Fixes #1967.
in 2.0 there is an optimization change on grouping acknowledgements.
The optimization change
avoided delivering messages that are already "delivered". However in non-persistent topic, pulsar doesn't store entries to bookkeeper, so no ledger id and entry id
are assigned for those messages. Pulsar uses 0 for both ledger id and entry. So the optimization change treats messages as already "delivered". so pulsar client
doesn't dispatch those messages even it already received them from broker.
Changes

Make AcknowledgementsGroupingTracker an interface
Introduce a no-op implementation for non-persistent topics

Signed-off-by: Sijie Guo<EMAIL_ADDRESS>

those unit test failures seem to be unrelated. they are passing locally. I rebased this PR to latest master, let's see.


MINOR: Tweak IBM i platform support in "stop" scripts

IBM i support to the "stop" scripts was added in a previous PR (https://github.com/apache/kafka/pull/9023), but it misses cases where certain service managers dispatch the zookeeper/kafka jobs with "nohup" or system batch job capabilities. We need a tweak to the ps invocation for this to work properly in those scenarios.
Due to the minor nature of the problem and the trivial nature of the fix, I did not create a JIRA issue, but I will happily do so if that's the recommended best route.
Committer Checklist (excluded from commit message)

[x] Verify design and implementation
[x] Verify test coverage and CI build status (self tested)
[x] Verify documentation (including upgrade notes) n/a

cc @earleye2018 for awareness only

cc @earleye2018 for awareness only


Kernel dies when using GPU_hist

Thanks for participating in the XGBoost community! We use https://discuss.xgboost.ai for any general usage questions and discussions. The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking.  You are always welcomed to post on the forum first :)
Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.
For bug reports, to help the developer act on the issues, please include a description of your environment, preferably a minimum script to reproduce the problem.
For feature proposals, list clear, small actionable items so we can track the progress of the change.

When I tried to use the GPU using the tree_method parameter, the Kernel always dies. I was able to run the code using the updater='grow_gpu'. However, I cannot use the Gamma parameter when I use the updater parameter

Could you provide your xgboost version and a reproducible example?  Also gamma is not supported by GPU.

I have attached the code for your reference. The train samples, I just used 200 rows of data and even then it failed.
I see the following error in the terminal as well
terminate called after throwing an instance of 'thrust::system::system_error'
what():  parallel_for failed: out of memory
`### Copying the best values from the XGBOOST_without_timesplit hyperopt run of 100
params={'colsample_bytree': 0.7340260740827114,
'gamma': 0.05313631310894701,
'learning_rate': 0.125,
'max_depth': 3.0,
'min_child_weight': 30.0,
'n_estimators': 800.0,
'subsample': 1.0}
params={'n_estimators': int(params['n_estimators']), 'max_depth': int(params['max_depth']),
'learning_rate':(params['learning_rate']),
'min_child_weight':(params['min_child_weight'])
        }

XGboost=MultiOutputRegressor(xgb.XGBRegressor(**params,tree_method='gpu_hist',objective='reg:squarederror'))
XGboost.get_params
model_xgb=XGboost.fit(X_train.iloc[:200,],Y_train.iloc[:200,])

I currently don't have a convenient machine by my side, but here is a guess, 800 estimators means you are boosting forests with each iteration adding 800 trees...

Try removing that parameter.

The number of estimators does not change for the whole training, When I remove that  tree_method parameter, then I dont use the GPU. I was able to run it without that parameter. But, I also want to use my GPU to speed up the learning

Yes.  Please try removing n_estimator parameter, so that it can use it's default value, which is 1.

It still shows the same error that the kernel died.
When I use the tree_method='gpu_exact', the model runs without any issues

Will look into it.  How many columns does your input have?  What's your GPU model?

@Thiyagu07 How many output columns do you have?  If it's too many, you can train one output at a time.

Closing as this is memory limitation.


feat: create a Socialite user provider example

This is how I solved problem for Social Login. You have to add provider column in User Table which is required to identify login type

Declare Social Grants in grants in passportgrant.php
like 'social' => 'App\PassportGrants\SocialVerificationUserProvider',
In validate method
I am using provider(like google, Facebook), email, provider_token(Google access token or Facebook access token that you receive from social login)

$this->validateRequest($request, [
            'provider' => ['required', Rule::in(['facebook', 'google'])],
            'email' => ['required', 'string', 'email', 'min:1', 'max:255'],
            'provider_token' => ['required', 'string', 'min:1']
        ]);

In retrive method

$user = User::where([
           ['provider', '=', $provider],
           ['email', '=', $email],
       ])->first();

I hope it works for you

This is how I solved problem for Social Login. You have to add provider column in User Table which is required to identify login type

Declare Social Grants in grants in passportgrant.php
like 'social' => 'App\PassportGrants\SocialVerificationUserProvider',
In validate method
I am using provider(like google, Facebook), email, provider_token(Google access token or Facebook access token that you receive from social login)

$this->validateRequest($request, [
            'provider' => ['required', Rule::in(['facebook', 'google'])],
            'email' => ['required', 'string', 'email', 'min:1', 'max:255'],
            'provider_token' => ['required', 'string', 'min:1']
        ]);

In retrive method

$user = User::where([
           ['provider', '=', $provider],
           ['email', '=', $email],
       ])->first();

I hope it works for you


add Docker Delegate setup topic per DOC-2268

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[x] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Preview environment: https://ci.pr.harness.io/pr-128


⚠ AlphaRatio has degraded performance

In 26193dd, AlphaRatio ($AR) experienced degraded performance:

HTTP code: 200
Response time: 2087 ms

Resolved: AlphaRatio performance has improved in f4be254.


Descheduler | LowNodeUtilization Strategy - all nodes over utilized, no obvious message stating pods cannot be evicted

Is your feature request related to a problem? Please describe.
It's not obvious from looking at the log data from the container that there are no nodes available to evict pods to
We have the example log data where a number of nodes show "is over utilized with usage" but because all nodes are over utilized NO pods are evicted
I0217 12:00:13.698734       1 lownodeutilization.go:200] Node "ip-??-??-??-??.eu-west-1.compute.internal" is over utilized with usage: api.ResourceThresholds{"cpu":91.42857142857143, "memory":41.426692748347975, "pods":86.20689655172414}
I0217 12:00:13.698915       1 lownodeutilization.go:200] Node "ip-??-??-??-??.eu-west-1.compute.internal" is over utilized with usage: api.ResourceThresholds{"cpu":99.14285714285714, "memory":36.14741291652306, "pods":37.93103448275862}
I0217 12:00:13.699248       1 lownodeutilization.go:200] Node "ip-??-??-??-??.eu-west-1.compute.internal" is over utilized with usage: api.ResourceThresholds{"cpu":83.42857142857143, "memory":63.22589876113411, "pods":37.142857142857146}

No pods being evicted is fine - looking at the cluster it makes sense, but initially it was NOT so clear.
Would it be wise to add some log data to the logging that this is what is happening here?
Describe the solution you'd like
As suggest by @damemi (discussed on kubernetes slack channel #sig-scheduling) we could add the example text "All nodes overutilized, no evictions possible".
We might even be able to optimize the strategy for unnecessary work with that check too
Describe alternatives you've considered
N/A
What version of descheduler are you using?
descheduler version: 0.19.0
Additional context
As discussed here on slack - https://kubernetes.slack.com/archives/C09TP78DV/p1613593842089500

@martinwoods  It's supposed to log No node is underutilized, nothing to do here......, can you check your logs again to make sure that there's no more message? FYI, we do a few check here to avoid some unnecessary work.

@lixiang233 thanks for the reply
Yes you're right the message No node is underutilized, nothing to do here is logged e.g.
I0219 09:45:08.502255       1 lownodeutilization.go:105] No node is underutilized, nothing to do here, you might tune your thresholds further

And I have seen this message before raising this issue and I'll explain why I raised this even though this message does exist
Lets take my example yaml:
    LowNodeUtilization:
      enabled: true
      params:
        nodeResourceUtilizationThresholds:
          thresholds:
            cpu: 20
            memory: 20
            pods: 20
          targetThresholds:
            cpu: 70
            memory: 70
            pods: 75

As per the functionality there are two types of thresholds, the first is thresholds and the second targetThresholds
From looking at the log the message No node is underutilized, nothing to do here would refer to the first threshold thresholds as in Underutilized
As you can see from the below log the message is preceeded by the settings for underutilization:
    I0219 09:45:08.502197       1 lownodeutilization.go:101] Criteria for a node under utilization: CPU: 20, Mem: 20, Pods: 20
    I0219 09:45:08.502255       1 lownodeutilization.go:105] No node is underutilized, nothing to do here, you might tune your thresholds further

And the second threshold targetThresholds should have a different message as it's related to Overutilization as in the settings below
    targetThresholds:
        cpu: 70
        memory: 70
        pods: 75

As per the github documentation here:
"There is another configurable threshold, targetThresholds, that is used to compute those potential nodes from where pods could be evicted.
If a node's usage is above targetThreshold for any (cpu, memory, or number of pods), the node is considered over utilized"
Is my understanding correct?
If it is, again I don't think it's clear from the log data that the nodes which are overutilized don't have the cabability to evict pods to elsewhere
Look forward to your reply
Many thanks

Perhaps the documentation could be more explicit about the fact that overutilized nodes only evict toward underutilized nodes. If that distinction is clear, I think the logs tell you everything you need to know

@martinwoods  In this strategy, nodes are devided into 3 types: underutilized, overutilized and appropriately utilized. As @damemi said, pods can only be evicted from overutilized nodes to underutilized nodes, thus we should make  sure that both number of underutilized nodes and  overutilized nodes are non-zero before evicting any pod, number of underutilized nodes is checked first, so in your case, you only got messages related to underutilization.
@damemi  +1 for mention this in logs and I noticed that current logs can be optimized, I'll help to fix this.


When I use amundsenFrontend service, I have configured SEARCH_PORT, METADATA_PORT and LOCAL_HOST in LocalConfig in amundsen_application/config.py. At the same time, I make sure that my metadata and search services have been connected to my neo4j and es, and have data. But I can't see my data on the interface of amundsenFrontend, and the request still reports an error.

Expected Behavior or Use Case

Service or Ingestion ETL

Possible Implementation

Example Screenshots (if appropriate):
Context

It is worth noting that my data is obtained through the databuilder module sample_data_loader.py

@zqw961025 can you please attach the traceback of the error you are having for frontend and metadata services, both?


Callbacks, Custom IDs

This PR adds two features:
Callbacks.  User may pass an optional callback function to create, save, update, or destroy. Post-action hooks (e.g. after_save) will be called in callback-fashion after the Meteor method has completed (assuming error is undefined).  The passed callback will then be called after Minimongoid has completed its work (regardless of what error is). When using callbacks, the return value will be null, not the record. If a callback is not provided, the original behavior has been maintained.
Custom IDs.  Minimongoid determined the "new-ness" of a record based upon the value (or lack-thereof) of _id. However, Meteor's insert method allows for setting _id, so I revised Minimongoid to utilize a __is_new flag (along with an isNew() member function) in order to restore Meteor's functionality.
Note: Despite the commit message, the underscore.string dependency has not changed, as I couldn't get the official underscore.string library to work.

Sorry hadn't seen this PR! It's merged now into 0.9.6.

No worries — thanks for merging!

On Aug 14, 2015, at 4:55 PM, Dave Kaplan<EMAIL_ADDRESS>wrote:
Sorry hadn't seen this PR! It's merged now into 0.9.6.
—
Reply to this email directly or view it on GitHub https://github.com/Exygy/minimongoid/pull/33#issuecomment-131237060.

Awesome - thanks :)
On Fri, Aug 14, 2015 at 10:55 PM, Dave Kaplan<EMAIL_ADDRESS>wrote:

Sorry hadn't seen this PR! It's merged now into 0.9.6.
—
Reply to this email directly or view it on GitHub
https://github.com/Exygy/minimongoid/pull/33#issuecomment-131237060.

--
Enrico Foschi


Additional -1

Apart from all the topic that are covered were fundamental topics.
Create a branch with this issue and document about,

Miscellaneous Topics.
Tips & Tricks.
Alternate Methods.
Resource to learn in self-paced learning method.

Topic added here to be provisioned later

Multi variable declaration


Cluster controller master moratorium

@vekterli The first attempt at separating out a state, before the first broadcast is allowed, that is as-if the fleet controller is not a master in some ways, but is a master in other ways.
This causes at least 22 unit test failures in MasterElectionTest and StateChangeTest...  The one I looked at in default_space_nodes_not_marked_as_maintenance_when_cluster_has_no_global_document_types hangs in waitForStableSystem(), waiting for what appears to be acks from distributors on the current version, and I'm not entirely certain where/how that's supposed to work.

Superseded by #17163


Consolidate Root serialization code

Attempt to disambiguate the term "metadata" by renaming Root Tablet serialization classes
Remove static state from Root Tablet serialization classes. RootTabletMetadata
was storing data set by static methods
Rename RootGcCandidates to RootGcCandidatesJson and simplify
Split RootTabletMetadata into RootTabletSerializer to hold the static helper code
and RootTabletJson to hold the serialization code
Dropped from() methods in RootTabletJson in favor of a single constructor
Allowed dropping of gson dependency from server.base
Added comment to AccumuloDataVersion javadoc

@keith-turner @dlmarion @EdColeman @ctubbsii I think this change is good to go, if anyone would like to take a look. I made some updates to the Root Tablet code that @keith-turner did way at the beginning of the development cycle for 2.1.

Allowed dropping of gson dependency from server.base

@milleruntime I didn't see a pom change related to this comment in the description

I spoke with @milleruntime in person (well, virtually) while working through my code review, and part of my feedback was that the class shouldn't be relocated to a different jar (which was the reason the pom changed). I put it back in a subsequent commit that I appended to the PR, after discussing it with him.
When this is squash-merged, I can clean up the log message for the commit. If not me, whoever merges it should clean up the commit message.


Fake TCP Legacy Do Not Match Tcping Legacy

Client to server tcping legacy: Average 40-60ms

Client to server ICMP: Average 30-50ms

Server Commands:
command=/root/speed/udp2raw -s -l<IP_ADDRESS>:13720 -r<IP_ADDRESS>:10 --raw-mode faketcp --cipher-mode aes128cbc --auth-mode md5 --seq-mode 3 --log-level 4 -k "01010011" --dev eth0 --sock-buf 10240 --force-sock-buf
command=/usr/local/bin/tinyvpn -s -l <IP_ADDRESS>:10 --sub-net <IP_ADDRESS> --tun-dev tun4 --report 10 --sock-buf 10240 --mode 0 --mtu 1250 -f10:6 --timeout 3 --disable-obscure --log-level 0
-A INPUT -p tcp -m multiport --dports 13720 -j DROP
Client Commands:
command=/usr/local/bin/udp2raw -c -l<IP_ADDRESS>:10 -r<IP_ADDRESS>:13720 --raw-mode faketcp --cipher-mode aes128cbc --auth-mode md5 --seq-mode 3 --log-level 4 -k "01010011" --sock-buf 10240 --force-sock-buf
command=/usr/local/bin/tinyvpn -c -r <IP_ADDRESS>:10 --sub-net <IP_ADDRESS> --tun-dev vpn1 --report 10 --sock-buf 10240 --mode 0 --mtu 1250 -f10:6 --timeout 3 --disable-obscure --log-level 0
-A INPUT -s <IP_ADDRESS>/32 -p tcp -m multiport --sports 13720 -j DROP
But if I ping <IP_ADDRESS> from the vpn1 interface,I got about 70-100ms legacy.I have try to change my local public IP or just restart udp2raw,tcping legacy and ICMP no change,but ping from vpn1 interface legacy can be lower or higher.I don't know why.I think if this is ISP route balance's problem,but TCPing legacy always no change.I have try to use real TCP tunnel to test,the legacy is 45ms with some package loss and no legacy change

Client Logs below:

Server logs below

I assume you mean latency by saying legacy.

but ping from vpn1 interface legacy can be lower or higher.I don't know why.I think if this is ISP route balance's problem

This is as expected, I had similar experiences, I believe it's caused by route balance.

but TCPing legacy always no change

I am not sure. But TCPing measures the latency by SYN  and SYN-ACK packets, it doesn't send TCP payloads. Possibly the ISP is giving the TCP handshaking message higher priority.

But if I ping <IP_ADDRESS> from the vpn1 interface,I got about 70-100ms legacy.

You are using timeout 3 on boths sides of tinyfecVPN, it adds 6ms latency, although it doesn't explain everything.

I have try to use real TCP tunnel to test,the legacy is 45ms with some package loss and no legacy change

I am not sure how you tested it. If the tunnel is real TCP, it should be reliable. For my understanding packet loss shouldn't be observed.

I assume you mean latency by saying legacy.

but ping from vpn1 interface legacy can be lower or higher.I don't know why.I think if this is ISP route balance's problem

This is as expected, I had similar experiences, I believe it's caused by route balance.

but TCPing legacy always no change

I am not sure. But TCPing measures the latency by SYN  and SYN-ACK packets, it doesn't send TCP payloads. Possibly the ISP is giving the TCP handshaking message higher priority.

But if I ping <IP_ADDRESS> from the vpn1 interface,I got about 70-100ms legacy.

You are using timeout 3 on boths sides of tinyfecVPN, it adds 6ms latency, although it doesn't explain everything.

I have try to use real TCP tunnel to test,the legacy is 45ms with some package loss and no legacy change

I am not sure how you tested it. If the tunnel is real TCP, it should be reliable. For my understanding packet loss shouldn't be observed.

I am testing use TCP VPN, just ping the vpn gateway.The real TCP latency is stable,the value between 40 to 50ms and with some packages lost.Otherway,I test use Udp2raw ICMP mode,but can't match the real ICMP latency value (Just Ping).So what is the issue?