Need functions access: Codeunit 980 - Payment Registration Mgt. / ConfirmPost - ConfirmPostLumpPayment

Hi,
We are using these methods in our Dynamics Nav solution from Codeunit 980 - Payment Registration Mgt.:
ConfirmPost(var PaymentRegistrationBuffer: Record "Payment Registration Buffer")
ConfirmPostLumpPayment(var PaymentRegistrationBuffer: Record "Payment Registration Buffer")

After a conversion to use it in our own solution for Dynamics D365 BC, we get the following message at the call: "[AL] The type or method 'ConfirmPost' cannot be used for 'Extension' development."
In Codeunit interface, we can see that the scope is Internal, so we can't use it anymore :
[Scope('''Internal''')]
Do you know if you plan to change it to 'Personalization'? It may be long since they are a lot of functions below called in cascade (Cu980 - Post, Cu13 - Preview, etc...)
If these functions will remain inaccessible, do you know alternate ways to use it?
Thank you!

Hi,
I will mark these functions as external.
br/Gert

Hi grobyns,
Do you know when will there be the update?
Regards.


[BUG 🐞] User attributes are not loading

Description

Only CREATED tab is loading
CREATED, LIKED, PRIVATE, COMMENTS must start fetching once page loads

Screenshots

Additional information

Always use styled components instead of plain CSS and MUI components.

Make sure to read the CONTRIBUTING and SETUP docs before proceeding
Happy contributing. 💐
Star my other Repositories here

I can work on this @warmachine028


Update commons-demo dependency to 2.1.0-SNAPSHOT

https://github.com/FlowingCode/AddonsDemoV14/issues/31

Added also a fix for https://github.com/FlowingCode/AddonsDemoV14/issues/29


pycryptodome is not loadable at all thought it is without problems in PyCharm

pip install pycryptodome
from Crypto.Cipher import AES
from Crypto.Hash import MD5

Exception has occurred: ModuleNotFoundError No module named 'Crypto' File "...", line #, in <module> from Crypto.Cipher import AES

Language Server version: XXX
OS and version: Win7 x64
Python version (& distribution if applicable, e.g. Anaconda): 3.8.9

Please provide the log information requested in the issue template. Here are the instructions. Without logs, we won't be able to diagnose the problem. Thanks!

It was picking another python installation (from MinGW-W64) by default.


run tests with Go 1.14

Issue #, if available:
Go 1.14 is released https://groups.google.com/forum/#!msg/golang-announce/AYd4cXYG8qk/FPTwU0jPCQAJ
Description of changes:
Add Go 1.14 to the build matrix
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.


Default collapse behaviour

At first, thank you for the plugin.
Then question: could you suggest how I can change default collapse behaviour?
I want to collapse all rows without describing attributes in rendererOptions { collapseRowsAt: [] }.

Hi, Welcome :)
Just want to understand the reason behind not being able to mention one of the values of rows array as the value for collapseRowsAt so that I can think of a right solution for this.

I use PivotUI, and person, who use the report, can change the settings of pivot table, so collapseRowsAt settings will work only in default case.

 And you want an API to be called at runtime???

If you open your example and exchange "Party" and "Gender" (Drag "Party" to the rows and "Gender" to the columns) then all subtotals will expands and grid will become too big.
My idea is: subtotals blocks should be collapsed by default.
So, if you drag "Province", "Party" and "Gender" to rows, all of them will be collapsed and user will see only province list.
And the same behaviour is acceptable for columns too.
I don't need an API to change collapseRowsAt at runtime, configuration options like alwaysCollapseRows and alwaysCollapseCols should be enough.

How about mentioning the index/position instead of a row/column attribute name so that it works always at a level rather than by a specific attribute name?
collapseRowsAt: 0 will collapse all rows at first level irrespective of what the first element is in rows array.
Does that sound alright?

It looks like good idea.

@ilyaguy I have committed the changes to master branch. Added subtotal_pivotui_collapse_numeric.html to examples. Please check and let me know if everything is fine. We can make a release with this feature. Thanks for your participation and feedback.

@nagarajanchinnasamy It works fine! Thank you.


Allow multi-binding properties on the left side

Suggestion from @propjockey; managing multi-binding properties is a bit cumbersome in CSS and in Corset. In Corset we try to allow a selector to override only the bindings that it sets and not all of them. There are likely bugs here though.
What if we changed it so that the type (the first value) was part of the property instead of in the value. So for example:
.profile {
  class-toggle: admin var(--is-admin);
}

Becomes
.profile {
  class-toggle[admin]: var(--is-admin);
}

Another example for events:
.login-form {
  event[submit]: var(--handler);
}

One use-case we want to preserve from the current array form is to allow dynamic types. For example you can do:
#app {
  class-toggle: var(--mode) var(--mode-enabled);
}

The above will allow you to change the class name being toggled by setting --mode. An example where you might do this: if you have light/dark mode and toggle them by setting a class name either .dark-mode or .light-mode. Using --mode allows you to choose that class name dynamically rather than making either light or dark the default.
With the left-side approach we could still allow this dynamism like so:
#app {
  class-toggle[--mode]: var(--mode-enabled);
}

The presence of -- in the type would signal that it is a var; normal var lookup rules would apply.
Another use-case for using --prop is if the type is not a string. For class-toggle, attr, attr-toggle, data, and prop they are always strings. For events there's a chance that Symbols might eventually be allowed as event names. There wouldn't be a way to set the event name in the short syntax if only identifiers were allowed.
We might also allow for JS insertions here, I could see:
#app {
  event[${Symbol.for('some-event')}]: var(--handler);
}

Although I don't know how we would know when one overrides the other, so I would probably put off allowing this for now.

One exciting thing about potentially doing this, is it would possibly solve #52, as identifiers-as-strings are mostly necessary for the "type" of a multi-binding property. Moving to this method would take away that need. Freeing us up to implement special identifiers like initial.

I'm thinking that the name for the thing between the bracket could be called a property modifier, in that it modifies the meaning of the property and specifies what to bind to.

These should be called __property key__s, since that's what they are.

This is available in the prerelease: https://github.com/matthewp/corset/releases/tag/v0.5.0-next.0


Supply docker AppArmor profile

Please supply an AppArmor profile for Teku
You know your application best and what it requires from the OS. Being able to easily "lock it down" inside a container to those paths it needs would be a boon to security.
What is AppArmor?
See https://docs.docker.com/engine/security/apparmor/ . AppArmor security profiles define what can and cannot be done inside a container, specific to the application running within. The profile is loaded for the container by docker. AppArmor helps secure applications against threats.
For good
Containerization is more than a consistent build environment: Done right, it can be a security boon. Help me build secure-by-default containers by providing an AppArmor profile for your application.
Bonus credit
Do beacon, validator and slasher need different things from the OS? If so, custom AppArmor profiles for each one could even be a thing. But, start with one profile for all three.

Thanks for raising this, it looks helpful.
We'll have a look at where it fits in our priority list.


Fix warnings when DUK_NORETURN not defined, add DUK_WO_NORETURN()

Add an internal DUK_WO_NORETURN() macro which provides statements that are only included when a noreturn attribute (DUK_NORETURN) is unavailable. This allows the error throw in:
DUK_INTERNAL duk_bool_t duk_something(duk_hthread *thr) {
    /* ... */
    if (something) {
        DUK_ERROR_TYPE(thr, "aiee");
        DUK_WO_NORETURN(return 0;);
    }
}

to compile as the following with DUK_NORETURN defined:
    if (something) {
        DUK_ERROR_TYPE(thr, "aiee");
    }

and as the following when it isn't defined:
    if (something) {
        DUK_ERROR_TYPE(thr, "aiee");
        return 0;
    }

In the latter case the 'return 0;' is never actually reached, but without a noreturn attribute (not available in many compilers) the compiler won't know it. Without a return statement the compiler will then sometimes warn about using uninitialized variables, etc. On the other hand, including the return statement always may cause warnings about unreachable code with other compilers when the noreturn attribute is available.

That was a clever fix for this long-standing issue. :)
I do wonder if it could be simplified to look less awkward, e.g.
DUK_ERROR_TYPE(thr, "aiee");
DUK_WO_NORETURN(0);  // expands to return 0;

The dummy statement is not always a return right now so that wouldn't work directly. There's a theoretical issue that one can't use a plain return after a va_start(), a va_end() should be done before the return. But, one should avoid longjmp()'ing between a va_start() and a va_end() as that might in theory leak memory in some implementations. (This reminds me that there are a few such cases in the code base right now, and they should be fixed if possible.)


Corrupted pos file

Forced termination caused corruption of pos file. Mutations to pos file could be done atomically to increase reliability.
fluent-plugin-systemd version 1.0.1
From Logs
2018-07-05 07:02:41 +0000 [error]: [systemd.log] failed to read data from plugin storage file path="/var/log/systemd.log.pos" error_class=Yajl::ParseError error="lexical error: invalid char in json text.\n                                       s=97c17292555e41258bd6733e9836c\n                     (right here) ------^\n"
2018-07-05 07:02:41 +0000 [error]: config error file="/etc/fluent/fluent.conf" error_class=Fluent::ConfigError error="Unexpected error: failed to read data from plugin storage file: '/var/log/systemd.log.pos'"

Assuming you are using the standard local storage plugin it does indeed seem to do atomic writes, the implementation here seems to be correct on first reading...
https://github.com/fluent/fluentd/blob/master/lib/fluent/plugin/storage_local.rb#L130-L132
@serathius Could you explain a bit more about the environment where you saw this (esp the configuration for the position storage) and if you were able to reproduce the error? or is it a one off?

He might have switched his config from using the older pos_file param to the newer <storage> block and pointed at the same position file.  I ran into the exact same error message when I tested that transition myself.  Or he might be encountering something else...

Thanks for the info @bobziuchkovski ... we should add this to https://github.com/reevoo/fluent-plugin-systemd#common-issues

Hi I am seeing a similar error reading the pos file
2018-10-18 20:38:01 +0000 [error]: failed to read data from plugin storage file path="/fluentd/pos/fluentd-journald.pos/worker0/storage.json" error_class=Fluent::ConfigError error="Invalid contents (not object) in plugin storage file: '/fluentd/pos/fluentd-journald.pos/worker0/storage.json'"
2018-10-18 20:38:01 +0000 [error]: config error file="/fluentd/etc/fluent.conf" error_class=Fluent::ConfigError error="Unexpected error: failed to read data from plugin storage file: '/fluentd/pos/fluentd-journald.pos/worker0/storage.json'"

however in this case, the file itself exists on the host but it is empty. This is resulting in my fluentd containers crashlooping. Removing the storage.json and restarting seems to fix, will see if this issue crops up again.

Thanks @jekohk ... I will take a look at this again and see if there is something we can do here to fix this ...

I met the same issue when 'fluentd container crashlooping', any update?

Same issue here.
We've got the file in place but it is empty. fluentd is crashing because of this.
2018-12-06 10:48:34 +0000 [error]: [in_systemd_kubelet] failed to read data from plugin storage file path="/var/log/fluentd-journald-kubelet-cursor.json" error_class=Fluent::ConfigError error="Invalid contents (not object) in plugin storage file: '/var/log/fluentd-journald-kubelet-cursor.json'"
2018-12-06 10:48:34 +0000 [error]: config error file="/fluentd/etc/fluent.conf" error_class=Fluent::ConfigError error="Unexpected error: failed to read data from plugin storage file: '/var/log/fluentd-journald-kubelet-cursor.json'"

Hi any updates on this?

Following. We've seen this as well.

@jekohk @Arslanbekov @mojoTX @yuripastushenko @grjones Could you share the storage config you are using... As I mentioned before if you are using the standard local storage plugin writes should be atomic...

We are facing the same issue on centos 7 with k8s 1.12 using daemonset with fluent/fluentd-kubernetes-daemonset:v1.3.2-debian-elasticsearch: https://github.com/fluent/fluentd-kubernetes-daemonset/issues/245.

Seems this was an issue with fluentd that was patched upstream, updating to the latest fluentd should fix!

Hi, everyone!!! We have the same error.  fluent version is fluent/fluentd-kubernetes-daemonset:v1.7-debian-elasticsearch6-1. Have you any idea??

2019-10-26 18:45:41 +0000 [error]: #0 failed to save data for plugin storage to file path="/var/log/fluentd-systemdlog.pos/worker0/storage.json" tmp="/var/log/fluentd-systemdlog.pos/worker0/storage.json.tmp" error_class=Errno::ENOENT error="No such file or directory @ rb_file_s_rename - (/var/log/fluentd-systemdlog.pos/worker0/storage.json.tmp, /var/log/fluentd-systemdlog.pos/worker0/storage.json)"
Getting same Error
Using below:
fluent-plugin-kubernetes_metadata_filter:2.3.0
fluent-plugin-rewrite-tag-filter:2.2.0
fluent-plugin-systemd:1.0.2
fluent-plugin-vmware-loginsight:0.1.6


Add more test framework for compressors

We have the following tests:

[x] Tests which check if a data_block can be encoded losslessly
[x] Tests if a file can be encoded losslessly.

We however also need to check if the num_bits_consumed returned by the decoder is correct. This would likely involve appending the encoded_bitarray from encoder with some garbage and then checking if the decoder still works.

Add a test on just encoder: expected encoded codeword versus produced by the code


Enrich index metrics

Description
Fixes #142
Add more index metrics such as indexingColumns, level cube count, level cube size deviation, and cube size metrics for the leaf cubes.
Example index metrics output:
OTree Index Metrics:
dimensionCount: 2
elementCount:<PHONE_NUMBER>
depth: 8
cubeCount: 13141
desiredCubeSize: 500000
indexingColumns: ss_sold_date_sk,ss_item_sk
avgFanout: 4.0
depthOnBalance: 1.206019253488489
Cubes size stats:
Quartiles:
- min: 456367
- 1stQ: 498510
- 2ndQ: 499954
- 3rdQ: 501410
- max: 536430
Stats:
- count: 3285
- l1_dev: 0.00449603896499239
- l2_dev: 1.3487574366807247E-4
Level-wise stats:
level, avgCubeSize, stdCubeSize, cubeCount, avgWeight:
- 0:	497810,		4442,		1,	1.7361319627929786E-4
- 1:	494798,		6480,		4,	8.689350799817908E-4
- 2:	499781,		3871,		16,	0.003668841950401859
- 3:	500516,		3899,		64,	0.015534089088738918
- 4:	500289,		3876,		256,	0.06698862054431544
- 5:	499966,		3865,		1024,	0.287867372830027
- 6:	499962,		3865,		1792,	0.6729941083529944
- 7:	500142,		3867,		128,	0.7959112180321912

Access to leaf cube size metrics:
import io.qbeast.spark.QbeastTable

val metrics = QbeastTable.forPath(spark, path).getIndexMetrics()
val leafMetrics = metrics.leafCubeSizeMetrics

println(leafMetrics)

Type of change

Enhancement
Documentation change

Checklist:

[x] New feature / bug fix has been committed following the Contribution guide.
[x] Add comments to the code (make it easier for the community!).
[x] Change the documentation.
[x] Add tests.
[x] Your branch is updated to the main branch (dependent changes have been merged).

Looks good to me!
Thanks for updating the documentation as well 👍


The Pane of a DynamicMap scatter plot doesn't show the size correctly for the first time

Here is the code
import pandas as pd
import numpy as np
import hvplot.pandas

n = 200
df = pd.DataFrame(dict(
    x=np.random.randn(n),
    y=np.random.randn(n),
    s=np.random.uniform(5, 20, n),
    c=np.random.randint(0, 4, size=n)))
plot = df.hvplot.scatter(x="x", y="y", s="s", groupby="c")
pn.Pane(plot)

which shows

the points are the same size
drag the slider and move the back to 0

Can't reproduce this, whatever was causing this seems to have been fixed.


Includes bits of abseil - breaks bazel projects that already use abseil

The or-tools source tree includes some bits of abseil under the same absl namespace: https://github.com/google/or-tools/search?p=1&q="namespace+absl"&type=&utf8=✓
Since our bazel project already includes abseil, we are violating the one definition rule and getting segfaults.
I guess a solution would be to remove the checked-in sources and use bazel to download them instead. Do you want a PR for that?

We are actively working on that, but the integration with abseil is complex
if you live outside bazel.
I would love a PR that protects the offending code in ortools/base and
loads abseil instead.
Something like (ortools/base/string_view.h)
#ifndef OR_TOOLS_BASE_STRING_VIEW_H_
#define OR_TOOLS_BASE_STRING_VIEW_H_
// New code
#if defined(USE_ABSEIL)
#include <absl/strings/string_view.h>  // Not sure about the exact path
else
// Start of old code
#include <string.h>
#include
#include
#include
#include
namespace absl {
...
}
#endif
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le ven. 18 mai 2018 à 14:33, nicolov<EMAIL_ADDRESS>a écrit :

The or-tools source tree includes some bits of abseil under the same absl
namespace:
https://github.com/google/or-tools/search?p=1&q="namespace+absl"&type=&utf8=✓
https://github.com/google/or-tools/search?p=1&q="namespace+absl"&type=&utf8=✓
Since our bazel project already includes abseil, we are violating the one
definition rule and getting segfaults.
I guess a solution would be to remove the checked-in sources and use bazel
to download them instead. Do you want a PR for that?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/696, or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17U0c1jCq47ccWNJmqhmAVgKg4FZ4ks5tzr97gaJpZM4UEqAi
.

Thanks. I wasn't sure my version of abseil was compatible (since I was getting the segfaults in the first place), so I went ahead and ran:
for x in `grep -r 'absl_ortools' -l`; do sed -i '' -e 's/absl::/absl_ortools::/g' $x ; done
for x in `grep -r 'namespace absl' -l`; do sed -i '' -e 's/namespace absl/namespace absl_ortools/g' $x ; done

Good workaround :-)
Laurent Perron | Operations Research |<EMAIL_ADDRESS>| (33) 1 42 68 53
00
Le sam. 19 mai 2018 à 07:50, nicolov<EMAIL_ADDRESS>a écrit :

Thanks. I wasn't sure my version of abseil was compatible (since I was
getting the segfaults in the first place), so I went ahead and ran:
for x in grep -r 'absl_ortools' -l; do sed -i '' -e 's/absl::/absl_ortools::/g' $x ; done
for x in grep -r 'namespace absl' -l; do sed -i '' -e 's/namespace absl/namespace absl_ortools/g' $x ; done
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/issues/696#issuecomment-390381787,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKj17RzZWk6KpBSsZDAnVw6hwqbDhiGGks5tz7KQgaJpZM4UEqAi
.

We now build with abseil.
I will close this issue.


Re-scheduling of services onto the same host and ignoring FLEET_ENGINE_RECONCILE_INTERVAL

I'm running CoreOS 717.0.0 with the following fleet configuration:
# cat /run/systemd/system/fleet.service.d/20-cloudinit.conf
[Service]
Environment="FLEET_ENGINE_RECONCILE_INTERVAL=15"
Environment="FLEET_ETCD_REQUEST_TIMEOUT=15"

A mysql unit which is bound to a particular host with:
[X-Fleet]
MachineMetadata=type=mysql-master

keeps restarting all the time. It seems that etcd2 is randomly holding elections, and whenever that happens, the mysql container gets unscheduled and re-scheduled back on the same host, which means a service restart:
Jul 15 16:12:14 mysql-master.novalocal fleetd[697]: INFO engine.go:256: Unscheduled Job(mysql.service) from Machine(1a03ed81c046462c8f7fbab683db9222)
Jul 15 16:12:14 mysql-master.novalocal fleetd[697]: INFO reconciler.go:161: EngineReconciler completed task: {Type: UnscheduleUnit, JobName: mysql.service, MachineID: 1a03ed81c046462c8f7fbab683db9222, Reason: "target Machine(1a03ed81c046462c8f7fbab683db9222) went away"}
Jul 15 16:12:16 mysql-master.novalocal fleetd[697]: INFO engine.go:271: Scheduled Unit(mysql.service) to Machine(1a03ed81c046462c8f7fbab683db9222)
Jul 15 16:12:16 mysql-master.novalocal fleetd[697]: INFO reconciler.go:161: EngineReconciler completed task: {Type: AttemptScheduleUnit, JobName: mysql.service, MachineID: 1a03ed81c046462c8f7fbab683db9222, Reason: "target state launched and unit not scheduled"}

It seems that the machine 1a03ed81c046462c8f7fbab683db9222 disappeared briefly from etcd2, which caused fleet stop and then 2 seconds later start the service again on the same machine. I set FLEET_ENGINE_RECONCILE_INTERVAL to 15s however. Am I using FLEET_ENGINE_RECONCILE_INTERVAL correctly?
Here's the full log:
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 is starting a new election at term 436
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 became candidate at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 received vote from 3d42f5851f78f81 at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 [logterm: 436, index: 3927821] sent vote request to b65d132fd151e8dd at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 [logterm: 436, index: 3927821] sent vote request to ec776c08e0ba149e at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft.node: 3d42f5851f78f81 lost leader ec776c08e0ba149e at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 [term: 437] ignored a MsgHeartbeat message with lower term from ec776c08e0ba149e [term: 436]
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 rafthttp: encountered error reading the client log stream: read tcp <IP_ADDRESS>:2380: use of closed network connection
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 rafthttp: client streaming to ec776c08e0ba149e at term 436 has been stopped
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 received vote from b65d132fd151e8dd at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 [q:2] has received 2 votes and 0 vote rejections
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft: 3d42f5851f78f81 became leader at term 437
Jul 15 16:12:08 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:08 raft.node: 3d42f5851f78f81 elected leader 3d42f5851f78f81 at term 437
Jul 15 16:12:09 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:09 raft: 3d42f5851f78f81 [term: 437] ignored a MsgHeartbeat message with lower term from ec776c08e0ba149e [term: 436]
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:13 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:13 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:13 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:14 mysql-master.novalocal etcd2[696]: 2015/07/15 16:12:14 etcdhttp: unexpected error: etcdserver: request timed out
Jul 15 16:12:14 mysql-master.novalocal fleetd[697]: INFO client.go:298: Response 500 Internal Server Error from http://localhost:4001/ unusable
Jul 15 16:12:14 mysql-master.novalocal fleetd[697]: INFO engine.go:256: Unscheduled Job(mysql.service) from Machine(1a03ed81c046462c8f7fbab683db9222)
Jul 15 16:12:14 mysql-master.novalocal fleetd[697]: INFO reconciler.go:161: EngineReconciler completed task: {Type: UnscheduleUnit, JobName: mysql.service, MachineID: 1a03ed81c046462c8f7fbab683db9222, Reason: "target Machine(1a03ed81c046462c8f7fbab683db9222) went away"}
Jul 15 16:12:16 mysql-master.novalocal fleetd[697]: INFO engine.go:271: Scheduled Unit(mysql.service) to Machine(1a03ed81c046462c8f7fbab683db9222)
Jul 15 16:12:16 mysql-master.novalocal fleetd[697]: INFO reconciler.go:161: EngineReconciler completed task: {Type: AttemptScheduleUnit, JobName: mysql.service, MachineID: 1a03ed81c046462c8f7fbab683db9222, Reason: "target state launched and unit not scheduled"}
Jul 15 16:12:17 mysql-master.novalocal systemd[1]: Stopping mySQL...
Jul 15 16:12:17 mysql-master.novalocal fleetd[697]: INFO manager.go:138: Triggered systemd unit mysql.service stop: job=1564700
Jul 15 16:12:17 mysql-master.novalocal fleetd[697]: INFO manager.go:259: Removing systemd unit mysql.service
Jul 15 16:12:17 mysql-master.novalocal fleetd[697]: INFO manager.go:182: Instructing systemd to reload units
Jul 15 16:12:17 mysql-master.novalocal systemd[1]: Reloading.
Jul 15 16:12:18 mysql-master.novalocal dockerd[698]: time="2015-07-15T16:12:18+10:00" level=info msg="POST /v1.18/containers/mysql/stop?t=10"

I believe we are seeing the same issue. I can provide logs and such if that would help.


Linux support

Will we be able to run Linux on this code?

Hello,
Can this core be able to run Linux on it?


Push

Push: This was not added due to some known issues but i may consider adding them in the future if i find a workaround

What known issues?
What do you have to work around to get it working?
What can I do to help?
I think that having push would be very very useful.

Most issues are mainly due to credentials management but there are plans to add it and other features before a stable version (v1.0). I have been busy with other stuff but it still in development

All remote features have currently been removed until a better way of managing user credentials has being thought out


Continuation on PCSC_SCardGetAttrib

Hi,
I was following issue #6777 because it looked like there maybe could be a solution for my problem.
I have tested everything again with the 2.0.0rc4 build, because the Snejpro succeeded with that one.
I also tried the latest master of the nightly build and just now #6792 without any luck
The program still says smartcard inserted; false.
I've got the program here for you to test with. Maybe in that way you could assert why the program is not detecting the card?
https://we.tl/t-yLKRTS0SZr
I also created a new log with the #6792 version:
log_freerdp(3).txt
And the build config:

here you can find the log (dll's)
c:\temp\zorgidlog\

@ShiZNizZLe sorry, but I don´t  get what exactly your problem is, could you describe that in a bit more detail please?

In the closed issue #6756 we solved the getarrtibute problem.
The issue that remains is, if you click on card in reader, it still says card not inserted.
pcsc_scan works and sees the card, windows doesn't see it.
This is the log file i generated after the fix:
log_freerdpOLDISSUE.txt
Here we see the following, from our point of view, strange messages:
at [14:23:00:477] SCardGetAttrib for dwAttrId: SCARD_ATTR_ATR_STRING is requested which is handled correctly. We don't see any problem in the zorgid logs anymore.
but at [14:23:00:489] there is a SCardDisconnectS with dwDisposition: SCARD_LEAVE_CARD.
We did not remove the card...
at [14:23:00:570] there is message SCardGetStatusChangeA failed with error SCARD_E_TIMEOUT [-2146435062]
Through the dll's added in the zip i sent you, the program queries if the card is inserted.
You can test that with the button 'card in reader', in the test program we made.
The dll's that are called are from a third party so we don't fully know how this code is constructed.
If we connect the card to the win2008 r2 server through a windows client, it will say that the card is in fact inserted.
Now we still want to get it working on our raspberries with raspbian.

@ShiZNizZLe ok, that I understand :)
As for SCardDisconnect the dwDisposition value is sent from the server, so I´d check your test app. See https://docs.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scarddisconnect for details.
This can still be an issue with something else in the log, so I´ll have a look at it this week.

@ShiZNizZLe ok, I´ve also pushed f0317a5e0fdc31f7f5f014e90e2b349fc7824bf2 which always returns status data for all readers requested in SCardGetStatusChangeA and SCardGetStatusChangeW even on timeout.

@ShiZNizZLe ok, and there seems to be something wrong with your app, e.g. I do not get the required queries for the card state although it displays there is no card in the reader?
e.g. cardpeek works fine and waits properly until I enter a card (here a gemalto reader)

Okay i'll look into the SCardDisconnect function.
And i'll also try that new build.
You mean the required card queries you'd expect to get to check if a card is inserted? So it doesn't check if a card is inserted? because when i connect through a windows client it returns true. otherwise i don't fully understand you.
I think the problem could be in the included dll's then? Because those dll's are specifically made for the caregiver card for the Dutch Medical System called UZI. So i could assume that the dll's query the wrong data, when connected through a linux client.
I'm going to try cardpeak to then, maybe that will detect the card properly

I just tried to tell you that SCARD_LEAVE_CARD is the option to leave the status of the card just as is (you can issue eject, reset, ... there too and depending on your reader exactly that happens)
It may be these libraries are not working with every reader so I can´t really test? I only get a SCardConnectW call, thats it.

Okay, we made a build of commit #f0317a5
and generated two logs
We also noted a few timestamps:
At [08:20:22:459] in the log_freerdp_commit_f0317a5 we see a StatusA_Return and right after that a StatusW_Return
If we compare that to the old program we use, which succeedes.
We see that StatusW_Return and StatusA_Return is missing at [09:05:01:244] in the log_freerdp_safesign
Also at  [08:20:22:459] in the log_freerdp_commit_f0317a5 we see that the function returns cBytes of 26. And at [08:20:22:463] we see that the function returns cBytes of 52.
If we look up the function at microsoft it syas it should be 32, is that a correct assumption?
https://docs.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardstatusw
log_freerdp_commit_f0317a5.txt
log_freerdp_safesign.txt

another question,
at [08:20:24:342] in the log_freerdp_commit_f0317a5 there is a SCardTransmit function.
Is it possible to retreive the real value of pbSendBuffer? So that we can see what the card sends?
Or isn't that what pbSendBuffer is at all?

@ShiZNizZLe

For details check [MS-RDPESC]
what you see with the StatusA_Return are the lengths (in bytes) of the reader names ;)
That is the actual data of the buffer

It's possible that we found the thing what breakes the program.
At [08:21:07:911] in the log_freerdp_commit_f0317a5
it says that the dwCurrentState is SCARD_STATE_CHANGED | SCARD_STATE_PRESENT | SCARD_STATE_INUSE
The only problem is that for the property dwCurrentState  the value SCARD_STATE_CHANGED is not a valid value for the **SCARD_READERSTATEA structure ** which is used in the SCardGetStatusChangeA function
https://docs.microsoft.com/en-us/windows/win32/api/winscard/ns-winscard-scard_readerstatea
Is this assumption true? Can that be the reason that there's a timeout issued in the log? And thus blocks the card from being 'inserted'?

@ShiZNizZLe well, just mask out the bit in PCSC_SCardGetStatusChange_Internal and try it out...

@ShiZNizZLe did you find out if this was the cause? The strange thing is that said call reports that there is a card inserted while your app does tell something different.

Well i've tried to do that:
I've added an if statement in the function PCSC_SCardGetStatusChange_Internal in smartcard_pcsc.c

This if statement should exclude the SCARD_STATE_CHANGED flag from the dwCurrentState DWORD
I also added an error in there just to see if the program reaches that part of the code.
Although when SCardGetStatusChangeA is called, which uses the PCSC_SCardGetStatusChange_Internal function, it still shows the SCARD_STATE_CHANGED flag which i thought i excluded from the DWORD.
You can see this starting from [10:07:38:976]
log_freerdp_modded.txt
What i just now noticed is that the timestamps are not chronological in order.
How could this happen?
So to answer your question: no i did not find out because apparently it did not mask the SCARD_STATE_CHANGED flag.
And yeah i find that strange too.

@ShiZNizZLe you´re masking the flag in the INPUT data not the OUTPUT which is ~20 lines below ;)
As for order, that is caused by multithreading (you see that access happens from 2 different threads)

@ShiZNizZLe oh, and just to be sure, you tried this test app with mstsc too (e.g. windows RDP client -> windows RDP server) and it is working there?

yes, when connecting with a windows 10 machine with the card attached to the server, it says cardinreader = true.
Ah that clears things up, i thought it had something to do with threading indeed.

So it should be like this right?

Ok, this code looks good.
As for the test, no, you should not attach it to the server, but to the client (where you run mstsc)

whoops mistyped myself, i meant when the card is connected to the win10 client, and that client is connected to the server

I'm gonna test the code and will let you know what the log says

shit, building went wrong
what did i do wrong exactly? I used the exact synthaxis as last time.
Saw the error right here, should i change the & operator to + then or?
https://stackoverflow.com/questions/33375136/lvalue-required-as-left-operand-of-assignment-error-when-using-c

no idea as I don´t exactly know what you changed. Why don´ t you simply replace
rgReaderStates[i].dwCurrentState = (DWORD)states[j].dwCurrentState;
with
rgReaderStates[i].dwCurrentState = (DWORD)states[j].dwCurrentState & (~SCARD_STATE_CHANGED); ?

i changed what the screenshot i sent you earlier says. but what you are doing is wrong is it not? shouldnt it be:
(DWORD)states[j].dwCurrentState = (DWORD)states[j].dwCurrentState & (~SCARD_STATE_CHANGED); ?
because afterwards it says rgReaderStates[i].dwCurrentState = (DWORD)states[j].dwCurrentState;

i went 20 lines down like you said, to the OUTPUT
thats where i added that if statement

oh i see what you mean, i thought it would be better to use an if statement because you only want to exclude SCARD_STATE_CHANGED when its there wont you?

remove your old changes ;)
and for the if statement, it does not matter, the compiler removes that anyway

the old changes were not included, only this part. And that failes to build.
I'll try your method then

Well, the SCARD_STATE_CHANGED is still included apparently
so this isn't working:

do you have any idea?
log_freerdp_modded(1).txt

@ShiZNizZLe I´ve checked the output, the SCARD_STATE_CHANGED is set on the server side (see it included in the dump of GetStatusChangeA_Call but is no longer present in GetStatusChangeA_Return which the client is sending back.

@ShiZNizZLe The timeouts are not an error, see https://docs.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetstatuschangea (same is true for https://docs.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetstatuschangew )
It simply means nothing changed on the card reader (s)
If you could, would it be possible to test this with wfreerdp.exe on windows?
That way we could eliminate problems with pcsc-lite and the wrapper in winpr and directly call the windows equivalent.
If that one is successful it will eliminate quite a lot of possible source areas for our problem.

It doesn't seem to route the smartcard to the server, am i doing something wrong?
I thought maybe the card name was wrong, but changing it to the name from windows device manager didnt help either.
I also cant find any windows specific documentation so i assume the flags are the same
I used the .exe from the release folder, the nightly doesnt do anything at all
https://ci.freerdp.com/job/freerdp-nightly-windows/arch=win64,label=vs2013/ws/build/

@ShiZNizZLe sorry, did miss your comment, will check back later today

sure :)

Are you still there?

@ShiZNizZLe yes, had some issues with windows updates yesterday, needed a finger on the mouse so I couldn´t access the machines remotely.

@ShiZNizZLe ok, did download the latest windows nightly and ran wfreerdp.exe /v:<server> /u:<user> /p:<pwd> /smartcard /cert:ignore against my other winodws 10 test machine and it is working as expected.
Is your smartcard reader installed and detected on the machine running wfreerdp.exe?

now it shows up as operational in the old smartcard program (it works).
But the new program still says no.
It also doesn't show up in device manager of the server.

This is with the normal released version tho. Do i need the nightly build per se? If so, which one do i need? It isn't clear to me:

https://cloudbase.it/freerdp-for-windows-nightly-builds/
https://ci.freerdp.com/job/freerdp-nightly-windows/

for the second one, where do i need to look?

@ShiZNizZLe what do you mean with normal released version? 2.2.0?
The second one is already the link to the binaries as well, just choose the configuration (win32 or win64) for a 32bit or 64bit binary

yeah 2.2.0, so i need the nightly you say?

yes...

I used this .exe https://ci.freerdp.com/job/freerdp-nightly-windows/arch=win64,label=vs2013/

The card is read by safesign (the old program)
The card is not inserted according to the new program
It doesn't show up in device manager

Do you need a log?

@ShiZNizZLe ok, so this is basically the same situation as with xfreerdp?
Could you point out the main differences you observed between xfreerdp, wfreerdp.exe and mstsc?
e.g. where do you see:

smartcard in device manager
works which program

xfreerdp and wfreerdp.exe currently produce the exact same outcome:

not appearing in device manager
appearing as operational in safesign (the old program)
not appearing in zorgid: card in reader: false (the new program)

when using mstsc we get the following outcome:

not appearing in device manager
appearing as operational in safesign (the old program)
appearing in zorgid: card in reader: true (the new program)

ok, now is the point where it would be nice to know which call is actually failing for what reason. any chance you can get an answer from someone who has access to said program?

Well thats the problem. i don't know if you looked at the wetransfer files i sent you some time ago?
If not i can send them again. The files consist of the test program of zorgid, which is a simple windows form.
This form talks to the dll's. We can only request something from the dll's like: is the card present or what data is on the card.
The buttons in the form produce those responses as shown before in the screenshots i sent you.
We can't see what is going on in dll's and why a function might return something for some reason.
So do you perhaps have any skills to explore those dll's? They are made in c# but when decompiled with dotpeek for example, you can't see what requests what and what talks to what. It's all loose classes and functions.
This is also the reason why we're trying to solve this problem this way. The firm who distributes the dll's can't give us an answer because they are made by another company which asks us to pay them a large amount to find out the solution to this problem. So we're trying to understand what is going wrong and how to solve it on our own with your help.
Here is the program with the dll's:
https://we.tl/t-o32nKro2vZ
Furthermore we're currently trying some things with wfreerdp which generates an error in the zorgid program, which i sent you in the transfer. We can see this error in the log files from zorgid, which is also generated by the dll's. So in the meantime we're going to look in the wfreerdp logs if we can find the source of that error.

I just generated a log with the zorgid program on wserver 2019, same problem exists.
I tried to test the following:
Launch the program, then insert the card and possibly press the card in reader button.
At first i tested it with mstsc which starts at 2021-02-25T09:36:28.4323246Z and goes on till 021-02-25T09:36:43.8695470Z
As you can see it executes the SecureElementInsertedEventCommand which in my opinion is the action of inserting the card.
However when executing the exact same procedure while connected with wfreerdp which starts at 2021-02-25T09:39:39.4731148Z and ends at 2021-02-25T09:39:39.5668837Z The program crashes when inserting the card.
It never reaches the SecureElementInsertedEventCommand.
Then i tried to have the card already inserted when launching the program with wfreerdp, which starts at 2021-02-25T09:41:38.3861767Z and ends on '2021-02-25T09:41:44.8082833Z'.
This time it didn't crash, which enabled me to press the card in reader button.
It still doesn't reach SecureElementInsertedEventCommand and throws a null reference exception: Object Reference Not Set to an instance of an object
And afterwards card in reader returns false, because the function isn't reached i guess.
If i'm correct, can this be the same problem we solved in the nighlty build of xfreerdp?
This one: #6757
Test_program_log.log

@ShiZNizZLe can´t tell, none of the primitives in the log have anything to do with the RDP redirected commands. As for the program iteslf, it does not like the readers I have to test, so you´re on your own here, sorry.

so we can't determine which function calls for what reason like you said earlier, because it's baked into the dll's?

the question remains why wfreerdp cant hadle it and mstsc can, it's a bit frustrating

I've discussed the issue again with my team and boss and we came to a question for you.
Is it possible for you to explore the problem more if we send you a raspberry, with raspbian installed (what i used for all the testing) and a UZI pass? That way you have the correct card and device to test everything you want. Would like to know is this is possible.

@ShiZNizZLe the linux part is the easy one, finding out the difference is harder.
A coworker was nice enough to point me at https://github.com/crocs-muni/APDUPlay
with that installed on the server (where your application is running) you can log the smartcard api use and data transferred.
If you run a RDP session with both, mstsc and xfreerdp (doing the same in both sessions) and check the logs for differences we might have a hint what to look for.
It might not be a freerdp bug but some difference in the PCSC drivers used, so I´d prefer to rule out other stuff before agreeing to fix something I might not be able to ;)

ohw thats a good one, gonna look at that first :)
And yes i understand. I'm going to look if i find something

So here are the logs of all the possible test scenarios:

When you compare xfreerdp or 'wfreerdp' to 'mstsc' with the winscard_rules_log you'll see that mstsc begins to transmit after calling the getattrib
function. Neither  xfreerdp or 'wfreerdp' starts transmitting. They both get stuck on the getattrib function it seems.
Is it possible that from your fix this function can't complete?
I think this also has something to do with the nullreferenceexception mentioned in the log of zorgid mentioned earlier?

There also isn't any content in the winscard_log of  xfreerdp and 'wfreerdp'.

I've added the freerdp_log and pcsc_log for the XFREERDP connection

XFREERD_log_freerdp.txt
MSTSC_winscard_rules_log.txt_Fri-Feb-26-12_27_55-2021.txt
WFREERDP_winscard_log.txt_Fri-Feb-26-12_24_44-2021.txt
WFREERDP_winscard_rules_log.txt_Fri-Feb-26-12_24_44-2021.txt
XFREERDP_winscard_log.txt_Fri-Feb-26-12_10_16-2021.txt
XFREERDP_winscard_rules_log.txt_Fri-Feb-26-12_10_16-2021.txt
XFREERDP_log_pcsc.txt
MSTSC_winscard_log.txt_Fri-Feb-26-12_27_55-2021.txt

@ShiZNizZLe you´re using different readers in both cases? That might itself be an issue.
As for the rest, if the GetAttrib call makes the difference, it would definitely be good to dump the input/output parameters of that call.

yes in this case i did, but both produce the same error. So i thought it wouldn't matter. I can rerun the xfreerdp one with the same card as wfreerdp and mstsc, but i doubt that would make a difference.
for your second point how would one 'dump' the input/output parameters?

the pcsc_log also shows that after the SCardGetAttrib function, there aren't any new SCard functions being executed

@ShiZNizZLe well, then we know which function has a different result. as for dumps, check https://github.com/crocs-muni/APDUPlay/wiki/Examples-for-OS-MS-Windows they have examples for that.

i don't see any example there? Those are just the instructions how to use the program. I generated the logs i sent you with these instructions

tried to view the calls with another program but that doesn't show the getattr function at all

did you configure winscard_rules.txt properly? I don´t see any of the data that should be there from the call trace.

you don't mean the data thats in MSTSC_winscard_log.txt_Fri-Feb-26-12_27_55-2021.txt right?
because that data isnt generated for xfreerdp and wfreerdp
this is the config:
[WINSCARD]
LOG_EXCHANGED_APDU = 1
MODIFY_APDU_BY_RULES = 0
LOG_BASE_PATH = ./
FORCE_CONNECT_SHARED_MODE = 1
LOG_FUNCTIONS_CALLS = 1
AUTO_REQUEST_DATA = 1
[REMOTE]
REDIRECT = 0
IP = <IP_ADDRESS>
PORT = 4001

@ShiZNizZLe ok, sorry, thought they would dump every request, but it looks like they only dump some and SCardGetAttr is not one of them.
You´ll need to patch Winscard.cpp and add some logging code there.

We've found another thing.
In the latest ccid driver: ccid-1.4.34 there is a file called scardgetattrib.txt.
In that file there is this piece of example code:
`#include <reader.h>
{
[...]
unsigned char pbAtr[MAX_ATR_SIZE];
DWORD dwAtrLen;

/* use a NULL buffer to just get the needed length */
rv = SCardGetAttrib(hCard, SCARD_ATTR_ATR_STRING, NULL, &dwAtrLen);
if (rv == SCARD_S_SUCCESS)
    printf("ATR length: %ld\n", dwAtrLen);

dwAtrLen = sizeof(pbAtr);
rv = SCardGetAttrib(hCard, SCARD_ATTR_ATR_STRING, pbAtr, &dwAtrLen);
if (rv == SCARD_S_SUCCESS)
{
    for (i = 0; i < dwAtrLen; i++)
        printf("%02X ", pbAtr[i]);
    printf("\n");
}

}`
In the example you see that SCardGetAttrib gets called two times.
When we look at our log it gets only called once with xfreerdp and wfreerdp:
The first time it requests dwAttrId: SCARD_ATTR_ATR_STRING (0x00090303) fpbAttrIsNULL: 1 cbAttrLen: 0x00000000
and it returns cbAttrLen afterwards: dwAttrId: SCARD_ATTR_ATR_STRING (0x00090303) cbAttrLen: 0x00000017
With the mstsc version, the SCardGetAttrib gets called two times.
It seems to us that the returned value of xfreerdp and wfreerdp is not in line with what is expected and thus doesn't continue to the second SCardGetAttrib call.
Is it trying to return something in the NULL spot of the first call?
going to try to add the cpp logging today

We've added extra logging in winscard.cpp but we can't seem to build it, so we added an issie to the APDUPlay github.
There aren't any guides on how to build that project apparently.

@ShiZNizZLe I´ll have a look tomorrow, but for the sample from before, I´ve updated the scard-tester utility and the SCardGetAttrib calls all get redirected as expected.

@ShiZNizZLe I´ve had some issues resolved with smartcard (mac os specific) but the reason was a buggy smartcard driver, see https://github.com/FreeRDP/FreeRDP/issues/6821

alright, gonna check that out.
I've been busy with APDUPlay but that isn't working yet:
I built the solution without any changes:

copied the def files from the devel over to the master (to remove missing function referencesin the master branch)
opened the solution with vs2019
built the solution with win32 debug

After that:

copied the winscard.dll to application directory (needed for generating the logs)
started the program

Now the log looks like this, doesn't even detect the reader.
winscard_rules_log.txt_Thu-Mar-11-11_26_56-2021(1).txt
I also tried their premade dll which works:
MSTSC_winscard_rules_log.txt_Fri-Feb-26-12_27_55-2021(1).txt
So to add the logging which you suggested, i have to edit the winscard.cpp file and build it.
The problem is that even the vanilla master branch doesn't build.
Thats the current situation in a nutshell.
If you want to read the issues:
https://github.com/crocs-muni/APDUPlay/issues/32#event-4417354492
https://github.com/crocs-muni/APDUPlay/issues/33#issuecomment-799382317

Didn't work, got a xf_lock_x11 tho, is that something new?

@ShiZNizZLe just ignore, these are messages from a normal connection (we should make them more silent, yes)

ah okay thanks ;)

so, with the 2.1.2 build from APDUPlay we finally got the extra debugging to work:
As you can see in the logs (winscard_rules_log), you'll see that the MSTSC version calls SCardGetAttrib and returns the pbAttr in the second call. MSTSC is the only one which returns Card in reader: true in case you forgot.
When you look at the WFREERDP and XFREERDP logs you'll see that SCardGetAttrib gets called only once and doesn't return the pbAttr Which is a pointer to a byte as far i can see?
MSTSC_winscard_rules_log.txt_Tue-Mar-16-12_33_48-2021.txt
MSTSC_winscard_log.txt_Tue-Mar-16-12_33_48-2021.txt
XFREERDP_winscard_rules_log.txt_Tue-Mar-16-14_42_35-2021.txt
XFREERDP_winscard_log.txt_Tue-Mar-16-14_42_35-2021.txt
WFREERDP_winscard_rules_log.txt_Tue-Mar-16-12_41_07-2021.txt
WFREERDP_winscard_log.txt_Tue-Mar-16-12_41_07-2021.txt
We tried to log every parameter that gets returned with the SCardGetAttrib, although the status variable is missing and the pbAttr isn't logged correctly. I've converted the LPBYTE to LPTSTR and LPCSTR, which both make it look like you see in the logs. What can i do to display the status and pbAttr correctly? Did i use the wrong format specifiers?
Here is the code:

I hope this extra logging is nevertheless already helpfull :)

@ShiZNizZLe ok, good, some information I got now, but you have an issue in your code, pcbAttrLen  is a pointer type, we need the value of it, e.g. "pcbAttrLen:%u", *pcbAttrLen

yeah we were trying to figure out how to print a pointer, didnt know it was that simple. Gonna edit the code and recreate the logs for you

@ShiZNizZLe in this case even wiki is sufficient ;)
https://en.wikipedia.org/wiki/Printf_format_string explains the options quite nicely (for standard C)
Do you have your changes pushed somewhere? Then I could have a look too ;)

oh thanks! nice to learn new stuff :)
Uhm no i haven't, i'll upload the zip for you in a sec,
So pcbAttrLen is a unsigned decimal int according to the wiki page?
And pbAttr a void pointer?

Looks like we found it :)
The WFREERDP and XFREERDP versions don't seem to get the return value of pcbAttrLen, hence why SCardGetAttrib doesn't get called a second time to get the actual pbAttr pointer.
XFREERDP_winscard_rules_log.txt_Wed-Mar-17-10_09_37-2021.txt
XFREERDP_winscard_log.txt_Wed-Mar-17-10_09_37-2021.txt
WFREERDP_winscard_rules_log.txt_Wed-Mar-17-10_08_36-2021.txt
WFREERDP_winscard_log.txt_Wed-Mar-17-10_08_36-2021.txt
MSTSC_winscard_rules_log.txt_Wed-Mar-17-10_07_06-2021.txt
MSTSC_winscard_log.txt_Wed-Mar-17-10_07_06-2021.txt
I've uploaded our version of APDUPlay to my github,
invited you to the repo

@ShiZNizZLe ok, that is very strange now, as both call with the same arguments.
I´ve pushed a fix to your APDUPlay branch, now we should also get the return code.

you changed %l to %ld right?
Returnvalue seems to be 0 in both WFREERDP and MSTSC
Returnvalue (status) should be the product of this: (*Original_SCardGetAttrib)(hCard, dwAttrId, pbAttr, pcbAttrLen)
which we declared as a LONG
I see that AdwttrId is a DWORD
but they have the same format specifiers, is that right?
WFREERDP_winscard_rules_log.txt_Wed-Mar-17-11_18_06-2021.txt
MSTSC_winscard_rules_log.txt_Wed-Mar-17-11_15_41-2021.txt

@ShiZNizZLe yes. should be %u for unsigned.
anyway, does xfreerdp return the same? It would also be interesting to have a xfreerdp /log-level:debug log along with this.

@ShiZNizZLe I´ve also pushed a few changes to dump connect details, but currently I fail to see where we are doing something different.

should i make a fresh xfreerdp master build and sens you both the logs then?

i was referring to the %ld for both a LONG and DWORD tho

yes, please a new build and a log.
the format string is not (entirely) correct, but both are 32bit integer values (one signed, the other unsigned)

ah alright, coming up in a second

startline for xfreerdp

XFREERDP_winscard_rules_log.txt_Wed-Mar-17-14_22_34-2021.txt
XFREERDP_winscard_log.txt_Wed-Mar-17-14_22_34-2021.txt
MSTSC_winscard_rules_log.txt_Wed-Mar-17-14_20_52-2021.txt
MSTSC_winscard_log.txt_Wed-Mar-17-14_20_52-2021.txt
WFREERDP_winscard_rules_log.txt_Wed-Mar-17-14_33_06-2021.txt
WFREERDP_winscard_log.txt_Wed-Mar-17-14_33_06-2021.txt
XFREERDP_log_freerdp.txt
WFREERDP_log_freerdp.txt

@ShiZNizZLe you´re a naughty boy using sudo ^^
better run freerdp without that, there are issues when doing that. (pcsc might fail)
as for the wfreerdp log, they are contradictory. WFREERDP_log_freerdp.txt tells me that the proper length is returned, WFREERDP_winscard_rules_log.txt_Wed-Mar-17-14_33_06-2021.txt tells me it is 0
When I run scard-tester and check the return value for that exact call to SCardGetAttrib then I get a proper response with the correct length.
If I modify the return packing in any way the windows end will report an error.
Can you check what you get when running that?
(it is on line main.cpp:910)

well if i don't sudo, it doesn't want to write the log :')
yeah i see! thats odd...
What is scard tester exactly?
Is this main.cpp:910 in the WFREERDP source?
If yes, what do you want me to do exactly because i don't fully understand?
main.cpp is also in APDUPlay but that file only has 300 lines or something

Okay this is getting weirder once again.
I now modified the logging code so that i dont set the return value to a LONG, so it simply gets returned (how the original code was):

After that i generated one log for MSTSC and after that 2 for WFREERDP
The weird thing is that MSTSC now doesn't return the pcbAttrLen in the first call. It did before as you can see in the logs from yesterday.
The two APDUPlay logs from WFREERDP also look somehat different while keeping the same problem from yesterday.
The two FREERDP logs from WFREERDP are also different.
The first time, so after MSTSC, SCardGetAttr doesn't return at all.
The second time it returns and has indeed a length like yesterday.
Why does it the first time not return anything at all and the second time it does?
I've used the exact same scenario for all the tests
WFREERDP_freerdp_log.txt
WFREERDP_freerdp_log2.txt
WFREERDP_winscard_rules_log.txt_Thu-Mar-18-09_36_36-2021.txt
WFREERDP_winscard_log.txt_Thu-Mar-18-09_36_36-2021.txt
MSTSC_winscard_rules_log.txt_Thu-Mar-18-09_35_41-2021.txt
MSTSC_winscard_log.txt_Thu-Mar-18-09_35_41-2021.txt
WFREERDP_2_winscard_rules_log.txt_Thu-Mar-18-09_38_45-2021.txt
WFREERDP_2_winscard_log.txt_Thu-Mar-18-09_38_45-2021.txt

We think we found the reason why we see the logged ret->cbAttrLen, which has a hex value of 16, as 0 in APDUPlay:

First you call this function smartcard_trace_get_attrib_return
Which logs a ret->cbAttrLen which has a hex value of 16
After that you check if cbAttrCallLen is smaller than cbAttrLen
Which is the case because in the log you see that cbAttrLen is 0
So cbAttrLen becomes 0 and that is the value you send to APDUPlay.
We hope we made the correct assumptions.

@ShiZNizZLe wow, indeed I think you nailed it. Created a pull request, please confirm that works for you

Hey,
Everything works now.
When will this be added to an official release?
Because we would like to use it asap in all of our pharmacies.
Thank you so much for all your help :)

@ShiZNizZLe good to know. It is already merged to master. stable will take some time, but you can always deploy your custom patched build if it is urgent.

well the nightly build works, so i don't have to patch anything myself atm. That was only for logging capabillities.
How long would it take to get the stable build you think?
Then we can decide what we're going to do here.
The problem is that we have to make new sd card with the new raspbian image.
We can't update that remotely so we will have to drive to all the pharmacies to switch the sd cards of each raspberry workstation.
So we have to decide which build we're gonna use depending on the estimated release time of a stable release with this fix.

@ShiZNizZLe better stay with your custom build then.

well is it expected in a few months or more like years?

@ShiZNizZLe depends on a lot of things. our tag is most likely due in a few months at most, until the distro picks that up is another matter, so best stick with a custom build. dpkg is your friend on raspberry, so just create your custom package and install it in your images

yeah good idea,
well the image that i've been using is clean and only contains the nightly build so were just gonna make an image out of that for every raspberry

btw i still need to use this prefix:
LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libasan.so.5
is there some other way i can solve that?

works already:
add /usr/lib/arm-linux-gnueabihf/libasan.so.5 to /etc/ld.so.preload

@ShiZNizZLe I´d still create a custom package based on the debian default package with this patch added. the nightly is slower and eats really lots of ram (it is not intended as production build)

oh so just add the modified smartcard_pack.c file to the normal version you mean?

i've added this patch to the file of version 2.3.2.
I only hope that none of the previous patches are going to act up again now, from the previous issues

do i have to install that package with CMAKE perse? or is there a simpler installation method?

so, everything works now except one thing.
Previously, with RDesktop, we would connect to the server and the user would login via the login screen of windows server 2008.
Now i have to type in the password before i enter the windows environment, is there any way to switch this around?

yo my man @akallabeth is 3.0 coming soon? :) i see this issue is gonna be in that release?
cheers

@ShiZNizZLe not a bug, but called NLA. you need to enable TLS on your server to get that login screen or you may use /sec:tls client side to ignore NLA (but might fail if the server does not allow that)

yeah i know, i was talking about this fix: https://github.com/FreeRDP/FreeRDP/commit/bad20340cce41bbeb0c9b583d0c32af0f019d689


Set toolchain clang linker to gold (Linux)

BFD doesn't work with Swift symbols. We get nasty errors like this:
error: link command failed with exit code 1 (use -v to see invocation)
/usr/bin/ld: ...wift/CMakeFiles/swiftDispatch.dir/Block.swift.o:
  relocation R_X86_64_PC32 against protected symbol
  `$s8Dispatch0A13WorkItemFlagsVSYAAMc' can not be used when making a
  shared object
/usr/bin/ld: final link failed: bad value

@swift-ci please test

@swift-ci please test Linux toolchain

https://github.com/apple/swift-driver/pull/1596
@swift please test Linux

https://github.com/apple/swift-driver/pull/1596
@swift-ci please test Linux

https://github.com/apple/swift/pull/73474
@swift-ci Please test macOS platform

https://github.com/apple/swift-driver/pull/1608
@swift-ci please test

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

IT'S FINALLY GREEN ON LINUX! 😆

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test macOS Platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Windows platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Linux platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test Windows Platform

https://github.com/apple/llvm-project/pull/8748
https://github.com/apple/swift-driver/pull/1608
@swift-ci please test macOS Platform


Evaluate legacy method of setting NX CI Access Token

Seems that the NX CI access token is included in nx.json: https://github.com/SAP/open-ux-tools/blob/main/nx.json
"accessToken": "ZjFiYzA4OTYtYjFlNS00NTI2LTk4OTktNWZiYTAyMGE0ZGRmfHJlYWQtd3JpdGU=",
This is considered legacy by NX: https://nx.dev/ci/recipes/security/access-tokens
"We do not recommend that you commit an access token to your repository but older versions of Nx do support this"
Why not use secrets and put the token there? Seems that the token used in a read/write token:
f1bc0896-b1e5-4526-9899-5fba020a4ddf|read-write
The NX documentation cited above states additional recommendation for a read/write token.
In case the token is still used: why not follow the NX recommendations?
If not used: why not remove it?

Thanks. Investigating.

@tobiashofmann
That was a little trickier than expected due to some side effects on build performance and breaking changes across NX versions.
Finally updated in https://github.com/SAP/open-ux-tools/pull/2583, https://github.com/SAP/open-ux-tools/pull/2519 and   c21227ec9e9c492aa5b6d3a86aa4ebbf76d8df44
Thanks for flagging it.


why the code taste too much time in the make_cam.py?

So do I. I wonder how long did it take you to run this code?

No description provided.

So do I. I wonder how long did it take you to run this code?

We need to generate cams for the two branches separately,  and then perform a weighted summation. So it is time-consuming.

No description provided.

So do I. I wonder how long did it take you to run this code?

over a 50h when i use 3090Ti


Adding additional gross net salary calculator for Germany.

I am running this site as a side project. I would appreciate it if you can add this to your useful link collection.
The gross-net salary calculator provides extra visualization for a better understanding of the net earning from the gross.

Hi, the @The-Wizzart, Thanks a lot for the PR! Your tool is awesome!
Is the tool open-source as well?
Need some help with translating it to french?
Some ideas for features:

Add the option to calculate the gross based on the Netto
Add some statistics as on this french site

Hi,
Thank you for the feedback and for accepting my pull request.

A was thinking more about an API, or to encapsulate all the code into a single JavaScript file, this would make it easier to share.
I was looking for statistical data, but so far I was not able to find it for Germany.

Regards,
Rob

Hi Rob,
That would be cool!
Indeed it seems that the data about wages is tough to get (only spreadsheets etc) in Germany.
Kind regards,
Aloys

After some research finally I found some data and I visualised it as an infographic.


New feat: Make "returning" optional on inserts

Hello!
I would like first to check the reason for a behavior and if makes sense to propose a new feature.
Current behavior
On the current version (v3+), there's a condition that set a default identifier to be returned in the case the user doesn't specify one (except for Sqlite and MySql):
https://github.com/Vincit/objection.js/blob/8f8896584281c87773fab33025061cddab2ebc3f/lib/queryBuilder/operations/InsertOperation.js#L38-L46
Scenario
I'm using PostgreSQL in the AWS RDS cluster, so I have one main writer and multiple readers instances, and from a user permission standpoint, we have users that can only write or only read.
The Problem
Defaulting a returning() causes an error when doing a Model.query().insert({ ... });, because the DB user doing the insert doesn't have permissions to query back the table to retrieve the insert record. Also passing any invalid value, such .returning(null) or .returning(undefined) throw different types of errors.
Workaround
Objection query builder has the .onBuildKnex() that's executed after the the InsertOperation onBuildKnex event, so I did the following that solved my problem:
Model.query().onBuildKnex((knexBuilder, objectionBuilder) => {
      let op = objectionBuilder.findOperation(/returning/);
      if(op && op.args.length == 1 && op.args[0] === null){
          objectionBuilder.removeOperation(op);
      }
      return knexBuilder;
}).insert({ ... }).returning(null);

Proposed change
With all being said, do you think creating a condition similar to this inside the InsertOperation onBuildKnex event, makes sense?
I'm not sure if the best way is just by defining some specific argument on the .returning() (like I did on my solution) or creating a new operation like .noReturning() to no even defining the return.
What are your thought on this?   :)
FYI: @koskimas

Out of curiosity, I've commented out this line and ran the tests and there are lots of fails in the Postgres integration tests:
// knexBuilder = knexBuilder.returning(builder.modelClass().getIdColumn());

This makes sense since the code only affects the Postgres client due to the if statement. This suggest that insert on SQLite and MySQL return the id by default, and PostgreSQL only returns if explicitly told to do so. Objection.js tries to keep the behavior between the different clients as similar as possible, and it may well be that code internally relies on the ids to be present, e.g. RelationInsertOperation etc.
What happens if you call returning() with no arguments?


GCM Push Notification on iOS is ready ?

iOS Push Notification is ready or is it upcoming feature ?

Upcoming this weekend, possibility to use GCM or Apple's one :)


Add transformation example to README.md

import 'package:cloudinary_dart/src/cloudinary.dart';
for me words only if I take out /src

Please change wording and put URL generation example back in:

For example, to generate a URL for an image called sample:
String url = cloudinary.image().generate('sample.jpg');
To add a transformation to the URL that, in this case, resizes the image:
String url = cloudinary
        .image(Image('sample.jpg')
          ..transformation(Transformation()
            ..resize(Resize.crop(Crop()
              ..width(100)
              ..height(150)))))
        .toString();

I'd like to run the code snippet after the version is released before approving all changes.


Making single base interface for all presenters

Currently, there are two base interfaces for presenter - IPresenter and IDetailPresenter.
Expected: Make single base interface for presenter creating separate method for attaching key to the detail presenter. So that single base interface can be kept for presenters.
Sending a PR

This is not correct TBH. If it was possible in Android, we would be adding view and key in the constructor itself as required dependency. But as view initialization is late, we can't. So as a safety mechanism, we attach view and key at the same time. This prevents errors like forgetting to attach key after attaching view, or vice versa. There is no benefit of separating this. What you can do is create another interface as root interface for both of these containing only detach, but I don't understand the point behind it.

I wanted single presenter interface containing attach detach for loaders. With this we get a single base presenter interface for all the presenters.

You can create an abstract class leaving the attaching part up to the presenters. Can you share the design proposal of the implementation? Maybe I can help

@iamareebjamal Just a doubt. Can I store IAttendeesPresenter object as IPresenter in loader. And still shall be able to use its other methods (of IAttendeesPresenter not of IPresenter) after restoring(type casting to IAttendeesPresenter) it from loaders?

Not required for now. Was able to implement presenter loaders using IBasePresenter. Hence closing it,


Animation options

What can we do to make ScottPlot better?
Would be cool if some animations was added to this library.
One example:
When using the signal plots you can pretty easily connect this to a live stream of data which works great.
However, it would be awesome if you would have the possibility to add animations to this to make i look a bit smoother when updated.
Of course this would all be optional by setting a property like enableAnimations = true.
Thoughts? :)

Hi @AlexFsmn,
At this time I don't think animations are consistent with the core design philosophy of ScottPlot. The primary goal for ScottPlot is to serve as a dependency-free .NET Standard application which lets anyone create plots from console applications (especially in server environments). A secondary goal is to provide containing user controls to allow some interaction with the mouse.
Rich animation experiences and control-centric MVVM designs (#494) are probably outside the scope of what this repository seeks to achieve. That said, somebody could create a WPF control that uses data binding and animations to achieve this functionality (harnessing ScottPlot's plotting system), but that control would be so large in complexity that I probably wouldn't want to be the one to maintain it at this time. It's worth noting that development of ScottPlot5 has begun (#521), and its improved rendering system probably supports a renderer which draws with native WPF objects, making animations (with DirectX acceleration) feasible.
Related, there is a plotting library called LiveCharts which aims to produce highly animated WPF controls. Due to the way everything is animated, it is not very performant. Unfortunately I suspect it is abandonware, as its front page pitches a big release will come out in September 2018 (two years ago). https://github.com/Live-Charts/Live-Charts
Thanks for asking this question though!


Check and limit the size of GraphQL query results

Backport of #2845 to v0.24.1

This branch is not meant to be merged, it's only used as the basis for the 0.24.1 release.


Added song metadata to 'Now Playing' message

The 'Now Playing' message now has the song's name and artist.

npm run lint comes out clean.

the problem here is that getSearchHints is now called twice back to back just to retrieve different children.

Condensed the code down, linter is clean

I think this is obsolete after https://github.com/KGT1/jellyfin-discord-music-bot/commit/08cd0cb52590f85fb04bc150a4ba90992d155e85


the debug info is shown

the debug info is shown by default,
def kv_get(k):
    from pupdb.core import PupDB
    db = PupDB(_kv_file)
    return db.get(k)

if __name__ == '__main__':
    key = "hick"
    value = date("H:i:s")
    print(kv_get(key))

output
2020-06-24 14:34:19,907 | 31556 | INFO | Lock 43241096 acquired on D:\data\hick\data\tmp\key-value.json.lock
2020-06-24 14:34:19,908 | 31556 | INFO | Lock 43241096 released on D:\data\hick\data\tmp\key-value.json.lock
2020-06-24 14:34:19,909 | 31556 | INFO | Lock 43241096 acquired on D:\data\hick\data\tmp\key-value.json.lock
2020-06-24 14:34:19,909 | 31556 | INFO | Lock 43241096 released on D:\data\hick\data\tmp\key-value.json.lock
None```

I confirmed it's from filelock.py not from pupdb, just comment it as following


prev() function fails when non-element nodes are present

The prev() function doesn't take nodes other than elements into account. Also we could simplify things a lot using the previousElementSibling property. This property isn't fully supported in IE, it only works for elements, but since the element variable is an element, we can safely use it here.
I've also added an additional test.
I don't think we had this issue in v4, since we relied on jQuery back then.
Ref. https://developer.mozilla.org/en-US/docs/Web/API/NonDocumentTypeChildNode/nextElementSibling

v4 (jQuery): https://getbootstrap.com/docs/4.4/components/scrollspy/#example-with-nested-nav
v5 (broken): https://twbs-bootstrap.netlify.com/docs/4.3/components/scrollspy/#example-with-nested-nav
v5 (fixed): https://deploy-preview-30117--twbs-bootstrap.netlify.com/docs/4.3/components/scrollspy/#example-with-nested-nav

This probably fixes a bug in scrollspy so I moved this back to the v5 board. @XhmikosR, could you have a look at this? The test basically illustrates what the problem was.

@MartijnCuppens is there any issue about this or failing snippets? Trying to understand why we need to make this change.

Took a while to figure out where/how this was used, but i found what was going wrong, see
v4 (jQuery): https://getbootstrap.com/docs/4.4/components/scrollspy/#example-with-nested-nav
v5 (broken): https://twbs-bootstrap.netlify.com/docs/4.3/components/scrollspy/#example-with-nested-nav
v5 (fixed): https://deploy-preview-30117--twbs-bootstrap.netlify.com/docs/4.3/components/scrollspy/#example-with-nested-nav

Actually this patch seems broken for me... Using Firefox 73.0.1

It seems to be broken after the last merge, gonna check what happend there

It seems to be broken after the last merge

Lol, that was a lie, I just didn't scroll to the bottom to test this.
Anyway, I finally get why prev() returns an array. It's just easier to loop over the array which contains zero or one items. This way we avoid the check if the element is found.
@XhmikosR, can you recheck?

It seems to work now, but maybe we should keep siblings like the original code?

It seems to work now, but maybe we should keep siblings like the original code?

Why? previousSibling also targets comments and text elements which we do not need? (Also not sure what happens when we apply matches() to it)

I meant just keep the variable and return siblings like before.

But it's probably moot and the minifier might already drop this. I'll double check later.


feat: add dbt documentation

Description
This PR generates the DBT docs ready to be served by Github pages.

Thanks for the pull request, @Ian2012!  Please note that it may take us up to several weeks or months to complete a review and merge your PR.
Feel free to add as much of the following information to the ticket as you can:

supporting documentation
Open edX discussion forum threads
timeline information ("this must be merged by XX date", and why that is)
partner information ("this is a course on edx.org")
any other information that can help Product understand the context for the PR

All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here.
Please let us know once your PR is ready for our review and all tests are green.

cc @SoryRawyer

This won't work because the static content needs to be served out of either the site root or the /docs/ directory. I think we can use this as a template: https://medium.com/dbt-local-taiwan/host-dbt-documentation-site-with-github-pages-in-5-minutes-7b80e8b62feb
If you set up a gh-pages branch with the contents of the target dir like in that post I can create the static site and we can work on setting up an action to automatically push to that branch when something merges to main.

@Ian2012 🎉 Your pull request was merged!  Please take a moment  to answer a two question survey so we can improve your experience in the future.


[TB] Verify Dark Mode Appearance

Problem/Concern
Verify that the items in the below issue are working properly:

Original Issue

Proposed Solution
This is a good first issue for someone to verify the items listed in the above issue are working in Dark Mode.

Hey @evangk6
I would like to take up this issue. This will allow me to get familiar with all of the components (and their codebase).
Thanks.


TransientEventsCleanup needs a Predicate

In order to limit the cleanup operation to certain calendars we need to be able to pass a predicate.

do we still need this after all? Looks like CalendarProvider2 removes deleted events which haven't been synced yet


feat: cache account id selection

This adds caching for account id fetch/selection for all wrangler commands.
Currently, if we have an api/oauth token, but haven't provided an account id, we fetch account information from cloudflare. If a user has just one account id, we automatically choose that. If there are more than one, then we show a dropdown and ask the user to pick one. This is convenient, and lets the user not have to specify their account id when starting a project.
However, if does make startup slow, since it has to do that fetch every time. It's also annoying for folks with multiple account ids because they have to pick their account id every time.
So we now cache the account_id into node_modules/.cache/wrangler (much like pages already does with account id and project name).
This patch also refactors config-cache.ts; it only caches if there's a node_modules folder, and it looks for the closest node_modules folder (and not directly in cwd). I also added tests for when a node_modules folder isn't available. It also trims the message that we log to terminal.
Closes https://github.com/cloudflare/wrangler2/issues/300

@GregBrimble Two changes in behaviour here for pages:

this will not cache account selection in projects without a node_modules folder. We can fix that by working on https://github.com/cloudflare/wrangler2/issues/1318
I think this will log "Retrieving cached values..." twice. It's not too intrusive, but we could fix it by not caching the account_id in pages code at all (since wrangler will do it anyway).

Happy to iterate on this a bit, putting it out there for discussion. Let's chat about it during the week.

Checked with @GregBrimble, the behaviour looks good on that side. Opening this up for review.

Could do! I tried that and it involved a refactor, and I didn't want to expand the scope beyond this PR. Would you be ok if I filed an issue and did it in a subsequent PR?

Could do! I tried that and it involved a refactor, and I didn't want to expand the scope beyond this PR. Would you be ok if I filed an issue and did it in a subsequent PR?

Landing this and then making that change is likely to require a change to the data that is stored in the cache file, which would add complication to the follow up PR. If this idea is reasonable I would rather we get it right first time.


Palindrome recursion snippet added

@Trinityyi if you check the code it is being implemented using the Recursion method which can help students if they are looking for a recursive method of it.


Multiple stacks

Thanks for creating this script, makes the deployment with sst so much easier!
I'm now trying to make it work with multiple environments which seem quite challenging after a bit of investigation.
I was hoping I can simply make various names relate to the env name but according to documentation the Policy and Role should have an exact name.
Trying to use the same names in different environments with sst/pulumi throws errors about existing resources.
To add, my use case is that I need to have different deployments of the remotion composer for different environments. That said I should probably be fine with using the same function, roles etc, so probably there is no need to have multiple deployment of those.
For the bucket I could either have various buckets or have various deployments within the same bucket(which seem like an easier option).
But still, trying to reuse the functions etc across sst deployments makes the pulumi throw errors about existing resources.
Do you have some idea how the multi env could be achieved?

Thanks!
Yes the multiple stacks possiblity would be very necessary for me as well, but since I haven't used this stack in a real project yet, I haven't had the need for this so far. I tried just with having different names for roles/policy/etc, but that attempt failed.
Since you mention that same role, policy, function would be ok to have for multiple stacks and only deploy the site for each env, maybe this would be easier to implement. Just by checking if the role/policy/function exists and not creating new if there is one already. But yeah since this is my second attempt to make something with Pulumi, I would have to search more to figure out how to do it.
TLDR: It can be done, but I don't have time/interest to do it rn, maybe someday, but PRs are welcome 😀

trying to solve this here: https://github.com/karelnagel/pulumi-remotion-lambda/pull/3

Well that was easier than I thought 😀
@MateuszSiek you can try the new 0.0.5 version if it works for you as well.

Ohh, that sounds great, will try to take a look in the upcoming days. Thanks!


Key map not working as expected after enabled plugin.

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Announcement

[X] I have checked Breaking change announcement.

Minimal reproducible full config
if has('vim_starting')
  set encoding=utf-8
endif
scriptencoding utf-8

if &compatible
  set nocompatible
endif

let s:plug_dir = expand('/tmp/plugged/vim-plug')
if !filereadable(s:plug_dir .. '/plug.vim')
  execute printf('!curl -fLo %s/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim', s:plug_dir)
end

execute 'set runtimepath+=' . s:plug_dir
call plug#begin(s:plug_dir)
Plug 'hrsh7th/nvim-cmp'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/vim-vsnip'
Plug 'neovim/nvim-lspconfig'
call plug#end()
PlugInstall | quit

" Example key mapping to reproduce
nnoremap oo o<Esc>
inoremap mm pp

" Some other example case
nnoremap t o
nnoremap tt o<Esc>
inoremap mm pp

nnoremap r i
nnoremap rr i<Esc>
inoremap mm pp

Description
Key map in insert mode not work as expected after entered insert mode by key (First Character) in normal mode that have other key map that start with same key (First Character).
Steps to reproduce

Add nvim-cmp plugin without or with setup
Add key map for normal mode and add key map for insert mode as shown in Minimal reproducible full config.

" eg 1:
nnoremap oo o<Esc>
inoremap mm pp

" eg 2:
nnoremap t o
nnoremap tt o<Esc>
inoremap mm pp

" eg 3:
nnoremap r i
nnoremap rr i<Esc>
inoremap mm pp

Enter normal mode in neovim then hit omm or tmm or rmm

Expected behavior
Neovim enter insert mode and mm turn into pp
Actual behavior
Text still mm
Additional context
After remove Plug 'hrsh7th/nvim-cmp' key map work as expected.

After I tinkering around I found that in this line of code, if I put 'in' into the second parameter feedkeys.call('', 'in', callback) it fix the problem.
https://github.com/hrsh7th/nvim-cmp/blob/8f3c541407e691af6163e2447f3af1bd6e17f9a3/lua/cmp/utils/async.lua#L173


Size fix

Need to make sure that when new projects are added, images and logos are fitting the size

I'll make sure I add logos in right size.


Thaumcraft loads but can,t do anything related too thaumcraft

I am using the dw20 pack version 1.12.2    1.11.0

What do you mean, specifically?  What have you tried to do that didn't work?

like I put the recipe for the thuameter  but nothing shows up on the right side of crafting table

remember this Thaumcraft 6 Is completely different in how you unlock stuff

I see the problem now   I was baseing every thing from thaumcraft 4

It is now other mod, don't TC 4, and 6. And read the Thaumonomicon

Get some salis mundus


New save trees button

Fixes Issue
This PR closes issue no. #1786
Changes proposed
A button for saving trees that has a very greenery filled hover effect.
Screenshots

Checklist

[x] You've linked this PR to the correct issue.
[x] You have checked that the code is working correctly.
[x] You ⭐ the repository!

Note to reviewers

@TANYA-CHAN @PoorviShetty @Spyware007
Could you please merge this PR.


tf yolov3-coco models can public ?

tf_yolov3_voc_416_416_65.63G have exists;
can you share the tensorflow-yolov3-coco dataset models ?

@zyxcambridge
Hi, so far as I know, tensorflow-yolov3-coco is not supported by the Vitis AI.

HI @zyxcambridge
Since tensorflow-yolov3-coco is not supported by the Vitis AI, I am going to close this issue. If you have any suggestions or questions, you can re-open this issue. Thank you.


Missing checks in Saml2ResponseValidator : inResponseTo, Destination, AuthnContext

I have compared Saml2ReponseValidator with spring security saml's WebSSOProfileConsumerImpl and found some missing checks, of most i found TODO's in the pac4j Saml2Response Validator, the TODO's in there are:
validateSamlProtocolResponse: add Destination and inResponseTo Validation
isValidBearerSubjectConfirmationData: Validate inResponseTo
validateAuthenticationStatements: implement authnContext validation
Do you have any idea when and if you will implement these?
To what degree does this effect how secure pac4j saml is? For example, are there other checks that make these checks not so important?
thank you!

And is there any way to replace the Saml2ReponseValidator with my own without modifying the code, i cant change the responseValidator in SAML2Client, because there is no getter used which i can override.

 There are some checks not
implemented yet because when I wrote pac4j-saml, it was to bring a first
working version of SAMLv2 to pac4j.
I omitted these checks because they are not the most critical to me. They
just enforce additional security checks to be more confident about the SAML
assertion.
The class Saml2ResponseValidator can not currently be overriden as it is an
internal class but feel free to submit a pull request to implement the
checks or introduce a customization mechanism.
Regards,
Michaël
2015-05-17 17:13 GMT+02:00 elklaaso<EMAIL_ADDRESS>
And is there any way to replace the Saml2ReponseValidator with my own
without modifying the code, i cant change the responseValidator in
SAML2Client, because there is no getter used which i can override.
—
Reply to this email directly or view it on GitHub
https://github.com/pac4j/pac4j/issues/165#issuecomment-102814298.

Maintaining all pac4j projects is a tremendous: any contribution will be welcome.

Hi,
I have made a simple implementation of response.inresponseto / response.getdestination and subject inresponseto validation. I got access to the private properties of Saml2Client using java reflect. I know this is bad, but i dont have time to download and rebuild this project etc.
The files are here:
https://www.dropbox.com/s/03q59bkdbhgpk0q/EnhancedSaml2Client.java?dl=0
https://www.dropbox.com/s/9iiseejatw8j1a4/EnhancedSaml2ResponseValidator.java?dl=0
Its a really easy implementation, i'm not sure if its how its supposed to happen but maybe you guys can use it as a starting point.

OK. Thanks for sharing. Maybe it can give @miremond some ideas...

This is now done via the move to opensaml. If you find other missing checks, please let me know.

Great!

@mmoayyed Could you explain a bit more? I do not understand

The pac4j codebase has shifted its saml support to use the latest of OpenSAML v3. This was done via #171 and will feature the missing checks you had in mind, once it's released.

Is this implemented in OpenSAML v3 ? Or in the pac4j code?
Do you have any links to the pac4j code or opensaml v3 where this is mentioned?

It is implemented in the pac4j-saml module code. Review the pac4j-saml module either in 1.7 or soon in master.


How to switch calendar to specific month

I am trying to change the calendar month from the month selected from the spinner but I am not able to perform same.
Changing month from next and previous button are working properly but if I want to change it directly to specific month (ex. from June to January) is not performing.
Please provide me some solution for same

Me too, pls help us.

I believe it should work through calendarView.getManager().selectDay(). There is also setActiveMonth method but unfortunately it is private.
After setting it you should call calendarView.populateLayout() so that changes are visible.

Yes,
Thanks and best regards.


Large diagnostic response payloads aren't sent properly in JSON

Initially created an issue in openxc-android here. Turns out I was able to recreate the same issue with the Python command line tools, so now I think it's an issue in the firmware.
In IsoTp and UDS-C we allow a max diagnostic payload size of 255 bytes. When trying to send many bytes through in the diagnostic response, part of the JSON string is overwritten by other information. Like this:
{"bus":1,"id":2016,"mode":17,"success":true,"pid":2,"payload":"0x030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616{"command_response":"diagnostic_request","status":true}

In this example case, the payload should have contained 128 bytes (256 ascii characters when converted to JSON string).

I'll bet it's hitting the MAX_OUTGOING_PAYLOAD_SIZE:
#define MAX_OUTGOING_PAYLOAD_SIZE 256

in pipeline.h, when calling serialize, it passes in a buffer of this size as the maximum allowed serialization output.

The payload in your example stop exactly at 256 bytes - I'll bet the rest is garbage from other regions of memory that we unintentionally read because the payload is not null-terminated.

Yeah, I was looking at that earlier. I did increase that size which helps. But also needed to increase the size of the Queue here: https://github.com/openxc/vi-firmware/blob/0ee0b5ab03174a8729ca417d101848584b26b993/src/util/bytebuffer.h#L7

The queue availability is checked here: https://github.com/openxc/vi-firmware/blob/master/src/pipeline.cpp#L46. It's a bit tough to debug though because adding any debug statements cause a recursive function call to sendMessage. Figured that out the hard way...

Alternatively, you could fit a lot more data in the string if it uses base64 encoding instead of hex, but that would be a breaking API change.

Alright, so after further investigation and attempts to get 255 bytes of payload response out over JSON, I don't think we can do it... I tried increasing the queue size to 700 and the MAX_OUTGOING_PAYLOAD_SIZE but now I get an OOM error when trying to create the JSON object for the payload. Looks like going to the base64 string encoding type might be the only option. OR we could send out a large diagnostic payload response in multiple messages...

Pull request (https://github.com/openxc/vi-firmware/pull/374) has been merged to limit the diagnostic payload response size to 127 bytes so this error shouldn't happen. Changed this from a bug fix to a feature enhancement for future development


@sentry/profiling-node crashes vitest

Is there an existing issue for this?

[X] I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
[X] I have reviewed the documentation https://docs.sentry.io/
[X] I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases

How do you use Sentry?
Sentry Saas (sentry.io)
Which SDK are you using?
@sentry/node
SDK Version
7.92.0
Framework Version
vitest any
Link to Sentry event
No response
SDK Setup
import * as SentryApi from '@sentry/node';
// Edit an assertion and save to see HMR in action
import { ProfilingIntegration } from '@sentry/profiling-node';

SentryApi.init({
  integrations: [new ProfilingIntegration()],
});

Steps to Reproduce
I tried to setup a minimal repro here: https://stackblitz.com/edit/vitest-dev-vitest-1gd3e9?file=src%2Fsentry.ts
but I failed, because profiling integration does not run on stackblitz.
So what you need to do:

download from stackblitz
extract
pnpm i
pnpm test
hit enter to restart the tests for few seconds(10 times probably+-)

Expected Result
Vitest does not crash
Actual Result
vitest crashes after a few runs
Screencast from 5.1.2024 17:53:35.webm

@capaj do I understand correctly when you say that it crashes after some random number of test restarts?

Yes it crashes after roughly 10 runs
I have node 20 but it reproduces on 18 too

Yup, I managed to reproduce. I dont know for sure, but I suspect this might be related to how vitest spawns threads to run tests (I haven't looked into how vitest works yet) and we don't clean up the napi instance data correctly.

@capaj mind upgrading to 1.3.3 and testing this? I just tested the code you provided and failed to reproduce the issue.

I still have the same error. After I have disabled profiling (on dev), errors stopped from happening.
Errors were also followed by ECONNRESET and ECONNREFUSED in node console.


README example on how to use NativeFunctionRegistration

@ssimeonov - I read your blog post and took a look at the NativeFunctionRegistration trait.
Can you provide a README example on how to use the NativeFunctionRegistration trait that's a little easier to follow for newbies than the HyperLogLog source code?  I'd like to understand the basics and then dive into the HyperLogLog code!
This library looks really cool.  Can't wait to understand all this code!

@MrPowers yes, we have to add more docs. :)
As the comment in NativeFunctionRegistration says, this is code pulled from FunctionRegistry in OSS Spark.
Registering native functions is only necessary if you want to use them from SparkSQL. Using them from Scala simply requires creating a Column-oriented instantiation API as done in Spark's functions.
Once you have built one or more native functions, you create a registration object that extends NativeFunctionRegistration and implements expressions, e.g., the way HLLFunctionRegistration does.
To use the functions from SparkSQL, you have to register them by calling the equivalent of HLLFunctionRegistration.register(spark).
That's all there is to it.


Add sasl

Inspired by https://github.com/Shopify/sarama/tree/0676fc297fca0c5dfba927c0c4f6925ce2ae1e77/examples/sasl_scram_client

Hi :wave:
to add a little more context:
Currently Tile38 only supports TLS that I added, and no authentication at all. We would like to add another authentication method to Tile38 that would allow it to authenticate scram-sha256 or scram-sha512 with our Kafka cluster.
In order to do this we added the client that @mathieux51 linked and that has been provided by Sarama, along with an option to set ?sasl=true&sha512=true or optionally &sha256=true for the endpoint to stay in line with the other options. To not pass username/password directly with the endpoint, we thought it best to be taken from the env instead.
Please let us know what you think. 🙏

LGTM


Musig: multimessage signature protocol design docs

First pass on writing up the "joint" protocol that allows for multimessage signing (safe from russell's attack) and multikey (single message) signing.
@oleganza I'm just looking for a review on "do I have the right idea" / "am I missing anything glaringly conceptual"? - sorry for the messiness, I can clean up typos and small mistakes when I get back!

why the approval is still on, after newly added commits?

Ah, it’s not a merge into main.

Yup, it was originally based off of cathie/musig (since it wasn't merged in yet). I just rebased it off of main, so now can you give it another 👍 ?


feat: add "all organisations" to global menu

When the option "all organisations" in party dropdown (situated left for filters) is chosen,  this is not reflected in the global menu (cf. picture). It is also not possible to choose "all organisations" from the global menu.
Missing design?

Legges på is inntil detaljert videre. Fjernes fra PartyDropdown.


Fix for PositionSelectedCommand not working with custom Command

Files Changed:

MainViewModel in Demo.csproj
CarouselViewControl in CarouselView.FormsPlugin.Abstractions

Fixed the bindable property to correctly accept and return custom ICommand implementations, to work with Prism for example.

Awesome. Will merge this change.

I cannot use this in my current implementation as ICommand doesn't support type argument.

Could try fixing that if I knew where and how you need the typed argument