AppLocker Documentation Barely Mentions Azure AD/Intune

The AppLocker documentation is very unclear about the use of AppLocker with Azure AD and/or Intune.
https://github.com/MicrosoftDocs/windows-itpro-docs/blob/642913b68863c760529e68e4c45ad3f1d4449ce8/windows/security/threat-protection/windows-defender-application-control/applocker/applocker-overview.md?plain=1#L78
Indicates that AppLocker is "ideal" for organizations using Group Policy (i.e. "non Cloud Native"/traditional AD or Hybrid Joined environments)...
https://github.com/MicrosoftDocs/windows-itpro-docs/blob/642913b68863c760529e68e4c45ad3f1d4449ce8/windows/security/threat-protection/windows-defender-application-control/applocker/edit-an-applocker-policy.md?plain=1#L41-L44
The above makes a pretty brief mention about using AppLocker with MDM but makes no specific mention of Intune...
Please do not misunderstand me: The use of a "Cloud Native" environment (i.e. only Azure AD + Intune) is, in my experience, only "right" for certain organizations. So it's really good to see that Microsoft is continuing to develop features and administrative tools for those organizations that cannot go to a Cloud Native setup. (Not to mention some of the historical challenges with feature parity between traditional GPOs and Intune policies - although that's getting better...)
Can some clarification please be added to the documentation as to "official" recommendations/best practices on the use of AppLocker in different environments?
Specificially:

A table or list showing "Traditional On-Prem (No Azure AD)", "Hybrid Azure AD", and "Cloud Native/Pure Azure AD with or without Intune" and when it is and is not appropriate to use AppLocker?
If the "best practice" for "Azure AD + Intune" is to not use AppLocker, can that be clearly identified and explained?

This may be related to #10027 ...
Thank you!
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: ca31fd83-dd9b-e7c3-5b17-25b3ea501d90
Version Independent ID: 313c66c9-b59a-126d-bfc8-cfca1fe51803
Content: AppLocker (Windows)
Content Source: windows/security/threat-protection/windows-defender-application-control/applocker/applocker-overview.md
Product: windows-client
Technology: itpro-security
GitHub Login: @vinaypamnani-msft
Microsoft Alias: vinpa

To make it easier for you to submit feedback on articles on learn.microsoft.com, we're transitioning our feedback system from GitHub Issues to a new experience.
As part of the transition, this GitHub Issue will be moved to a private repository. We're moving Issues to another repository so we can continue working on Issues that were open at the time of the transition. When this Issue is moved, you'll no longer be able to access it.
If you want to provide additional information before this Issue is moved, please update this Issue before December 15th, 2023.
With the new experience, you no longer need to sign in to GitHub to enter and submit your feedback. Instead, you can choose directly on each article's page whether the article was helpful. Then you can then choose one or more reasons for your feedback and optionally provide additional context before you select Submit.
Here's what the new experience looks like.
Note: The new experience is being rolled out across learn.microsoft.com in phases. If you don't see the new experience on an article, please check back later.
First, select whether the article was helpful:

Then, choose at least one reason for your feedback and optionally provide additional details about your feedback:

Article was helpful
Article was unhelpful

Finally, select Submit and you're done!


Tag and push latest in dev

This change allows us to not have to build everything on our local machines while developing in complex environments

Ping @ulrikstrid


PYYaml version requirement and Cython conflict

Posting here for completeness,
While setting up the python environment (or when invoked during cosi-setup setup), pyyaml may not install due to a known Cython conflict (See https://github.com/yaml/pyyaml/issues/601, seems to be a MacOS issue). I have attached a screenshot below:

Using cached pandas-1.4.2-cp38-cp38-macosx_11_0_arm64.whl.metadata (12 kB)
Collecting pyyaml==6.0 (from -r /tmp/cositoolsrequirementsfile.YCBo68IbZ (line 2))
  Using cached PyYAML-6.0.tar.gz (124 kB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1

Modifying the requirements.txt file associated with the repository cosi-data-challenges from 6.0 to 6.0.1 worked for me.

Thanks for bringing this up @avalluvan. How are you installing this repository? Is it being installed as part of the COSITools install?

Yes. I have posted a complementary issue on the cosi-setup repository too, that redirects to this issue.

Ok, thanks. I'll take a look, and probably the simple update you suggested should be fine.

I updated requirements.txt. That should resolve this issue.


Stream Files

This goes after https://github.com/Grinkers/humpty/pull/2
after cargo build --examples --release
/usr/bin/time -v target/release/examples/static-content
	Maximum resident set size (kbytes): 2340

before this PR
	Maximum resident set size (kbytes): 1883340

curl localhost:8080/examples/bigfile.mkv --output deleteme
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  918M  100  918M    0     0   880M      0  0:00:01  0:00:01 --:--:--  881M

Rebased after #2


A11y_AzureDataStudio(Schema,Dacpac,Backup)_SelectSource-Target_SchemaCompare_AI4D: Name property must not contain special characters as '...' for more commands button.

“Check out Accessibility Insights! ! - Identify accessibility bugs before check-in and make bug fixing faster and easier.”
#A11yMAS; #A11yTCS; #A11y_ADS_Schema_Dacpac_Backup; #Azure Data Studio; #DesktopApp; #Win10; #AI4D; #MAS4.1.2;
Environment Details:
Application Name: Azure Data Studio
Application Version: 1.10.0-insider (user setup)
Commit: 975e45061b073ecce2398d00c12f525d90e07b02
Date: 2019-08-08T19:22:13.572Z
VS Code 1.37.0
Electron: 4.2.7
Chrome: 69.0.3497.128
Node.js: 10.11.0
V8: 6.9.427.31-electron.0
OS: Windows_NT x64 10.0.18362
Nvda Version: 2019.2rc2
Additional Details:
Tools Name: Nvda
MAS References: MAS4.1.2
Repro Steps:

Launch Azure Data Studio application.
Connect to server with windows credentials.
Navigate to Extensions from left menu.
Search & install Schema Compare extension.
Navigate to Connections from left menu.
Expand the server connected in step 2.
Right click an on prem database and select Schema compare from Context menu.
Launch Accessibility Insights tool and hover the mouse over More commands button represented as '...'

Actual:
Issue 1: Name property must not contain special characters as '...' for 'Select Source' and 'Select Target' buttons.
Issue 2: Tooltip not displayed on keyboard navigation to 'Select Source' and 'Select Target' buttons.
Expected:
Issue 1: Name for 'Select Source' and 'Select Target' buttons should be available.
Issue 2: Tooltip should be displayed on keyboard navigation to 'Select Source' and 'Select Target' buttons.
Recommendations:
Refer below link which is repository of bug fixes code snippets: (https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx)
User Impact:
Screen reader users will not get to know the context of the button if it got announced as special characters.
MAS Reference:
MAS 4.1.2-
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={248054a6-5e68-4771-9e1e-242fb5025730}
Attachment for Reference:

Issue1 has been solved but issu2:Tooltip not displayed on keyboard navigation to 'Select Source' and 'Select Target' buttons is still present in the application.
#6730A11y_AzureDataStudio(Schema,Dacpac,Backup)_SelectSource-Target_SchemaCompare_AI4D.pptx

@fsteffi I haven't been able to find any location where tooltips appear when using keyboard navigation.  I've checked other places in this extension, the Dacpac extension, or ADS stock functionality.  Are you sure that's expected/normal behavior?

Just additional data point : Even in VSCode mouse navigation shows tool tips but tabs don't show tool tips.
on mouse (tool tip)

on keyboard tab (no tool tip)

@Benjin yes the expected behaviour is that the tooltip is visible even while navigating to the button using keyboard, such that the keyboard only users receive the information related to the button that is available while mouse hover .

@fsteffi Thanks for the confirmation.  I'm unable to find any other location where this is the case.  Can you record a video demonstrating somewhere in ADS where this occurs so I have a starting point for my investigation?

Since the control is common enough and not destructive, we can mitigate this with proper documentation. Also we should open the corresponding behavior bug on VSCode.

Changed the assignment before documentation by mistake.

Added external VSCode bug : https://github.com/microsoft/vscode/issues/83245

Closing as upstream


Unresolved type '_Ctype_struct_bpf_program

i dont know whats wrong with it ,pcap.go L 211 just say this
OS:
Windows 10

things didnt go well  finally, i still got the pro,its sad :(

Hey, do you happen to know the version of winpcap that you originally used?  @notti wondering if this could be due to the recent switch to DLL stuff.

Oh, never mind, it looks like that pull (#568) isn't merged yet.


Feature/stefan clem/database heroku foreignkeys

Description
There a few changes here with also foreign keys. However, I was trying to also build the model out to find the account. I am able to get the account information for a user. But I wasn't 100% sure if this is how we want to do it. Please look at the code and let me know your thoughts and if we want to do it this way or not.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Tested through postman and browser

[ ] Test A
[ ] Test B

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

tried reseeding the db, it still crashes when i sign out and sign back in.

did you leave the local endpoints in there on purpose? in app.js and stripe checkout.js? and the server crashes when i logout and then sign in with my google account.

Fixed

tried reseeding the db, it still crashes when i sign out and sign back in.

The protected route is causing an issue. I removed it again. I don't think we have time to do a full firebase backend but I am working on it.

looks good. no more crashes. one comment... when you sign out and go to the billing page the purple button only has clickable text. clicking on the button does not do anything except depress the button.


[SVC-2647] Clean up docs on setting up CORS for hub

Mention having to run bolt up again

From SyncLinear.com | SVC-2647

Out of sync with Linear


[RFC] Add extension Id to proposed api

Currently, extension publishers who create shared modules that they use across multiple extensions have to use boiler-plate to make shared modules context aware of which extension owns them.
One boiler-plate approach for this is using the 'activate' method of an extension to pass the Id of the extension to a shared module, to let that module know which extension is using it.  If the vscode API exposed the activating extension Id, then the shared module could just depend on vscode and use the Id directly instead of requiring the extension developer to explicitly pass in the Id during extension activation.
Submitting this as an RFC to get the VS Code team's thoughts on this addition.  Happy to add tests to protect this if we decide to move forward with this change.  I'd also be happy to add other fields to a shared property that holds other extension metadata if the team wants to expose more than just the extension Id from the IExtensionDescription typed object.
Note: I noticed the '// Proposed' comment at the bottom of the extHost implementation.  Would you rather I move this addition to that section?

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: Linskeyd sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

It seems like the CLA signing is broken; I've tried multiple browsers but signing still seems to not submit properly.

have to use boiler-plate to make shared modules context aware of which extension owns them

What is the use-case for that? Is a shared module a util-collection like path? Why is the extension id (and not some other unique identifier) needed here?

@jrieken you are correct that this would be used for shared util modules.  The reason to use extension Id over a different unique identifier is that extension Id is unique and also readily developer/user readable.
One use-case we have is a utility that provides a "batteries included" experience for logging, where we can add things like named output channels per extension by simply importing a logger and using it (no passing of the exact extension Id necessary since with this PR the module could just get that from the VS Code API).  As you can imagine however, this could be expanded to other utility modules to enable them to identify artifacts/integrations in a developer friendly way.

Can you sketch up how you would use this API? Would the shared lib import/require vscode and read that value?

@jrieken Yes the shared lib would import vscode and read that value.  The code sample below illustrates this.
Extension A would take a package.json dependency on module B (where module B also depends on vscode). In module B's index.ts:
import * as vscode from 'vscode';

const EXTENSION_ID = vscode.extensionId;

export async function myUtilityFunction(arg: string): void {
    // Do other work with extension Id already known, not needing to be passed.
}

Without this change, the module would first require some initialization and validation (or to be passed to the exported function each time):
import * as vscode from 'vscode';

let EXTENSION_ID;

export function initialize(extensionId: string): void {
    // ... Perform validation on extensionId.
    EXTENSION_ID = extensionId;
}

export async function myUtilityFunction(arg: string): void {
    // Do other work with extension Id already known, not needing to be passed.
}

@jrieken Yes the shared lib would import vscode and read that value. The code sample below illustrates this.

The problem is that the value of the extension id is determined by looking at the file path that makes the request for 'vscode', e.g the file containing require("vscode"), and correlating that to an extension folder. If a lib is truly shared, e.g not copied in multiple node_modules folders, then this doesn't work (because it isn't contained in any extension folder).
So, generally I think the approach is risky and error-prone, apart from the model questions, e.g vscode.env.extensionId doesn't make that much sense when vscode.env talks about the editor environment.
I think a less magically but more explicit solution would be better. Maybe have ExtensionContent#extension pointing the current extension so that it's easier retrieve your own id and other metadata.

@jrieken, by shared I meant that both extensions would utilize the module, not that they necessarily had the same copy of the module (they would indeed, at least with VS Code's current model of packaging, each get a copy of the module).  In that case, where each extension has a copy of the shared module, the shared module would be able to accurately retrieve the extension Id from the 'vscode' api.  This also wouldn't be on the vscode.env.extensionId, it'd be on vscode.extensionId.
I'd be happy to have your suggestion though, where instead of having to pass a string literal, I could just get the extension context of the current extension and leverage that.  I'd be happy to write up a PR for that if you'd like.  Looks like I could update '__loadExtensionContext' in 'extHostExtensionService.ts'.

Check. Closing this PR in favour of a slight more explicit but clean solution, e.g ExtensionContext#extension. There is an Extension-type that you wanna reuse but likely have to extract into its own type first


failure on recursive regions

Traceback (most recent call last):
  File "/data/ocr-d/ocrd_all/venv/bin/page-to-alto", line 8, in <module>
    sys.exit(main())
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/click/core.py", line 1137, in __call__
    return self.main(*args, **kwargs)
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/click/core.py", line 1062, in main
    rv = self.invoke(ctx)
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/click/core.py", line 763, in invoke
    return __callback(*args, **kwargs)
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/ocrd_page_to_alto/cli.py", line 31, in main
    converter.convert()
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/ocrd_page_to_alto/convert.py", line 140, in convert
    self.convert_reading_order()
  File "/data/ocr-d/ocrd_all/venv/lib/python3.7/site-packages/ocrd_page_to_alto/convert.py", line 152, in convert_reading_order
    self.alto_printspace.find('.//*[@ID="%s"]' % id_cur).set('IDNEXT', id_next)
AttributeError: 'NoneType' object has no attribute 'set'

Sorry, empty pages are not the problem. This happens on recursive structures:
<TextRegion id="r0">
  <TextRegion id="r1">...</TextRegion>
</TextRegion>

I guess the state in alto_printspace at that point does not yet contain the full sequence that page_page.getAllRegions() provides.
On the one hand, it's good that we see a failure if regions get lost. But then how do we fix the recursion?

I guess the state in alto_printspace at that point does not yet contain the full sequence that page_page.getAllRegions() provides.

Could that simply be depth 1 vs 0?
https://github.com/kba/page-to-alto/blob/4f1e93d0f2173a4f8865090e60f8a8697d715131/ocrd_page_to_alto/convert.py#L150
https://github.com/kba/page-to-alto/blob/4f1e93d0f2173a4f8865090e60f8a8697d715131/ocrd_page_to_alto/convert.py#L286

Could that simply be depth 1 vs 0?

Indeed!


Crash related to Audio

When "WebSockets connection lost", application crash with below ERROR log:
`No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)
03-21 14:26:08.102 3914-4000/ /AndroidRuntime: FATAL EXCEPTION: AudioTrackJavaThread
Process: com.immertec.vr, PID: 3914
java.lang.Error: FATAL EXCEPTION [AudioTrackJavaThread]
Unity version     : 2018.4.18f1
Device model      : unknown Android SDK built for x86
Device fingerprint: Android/sdk_google_phone_x86/generic_x86:6.0/MASTER/5525988:userdebug/test-keys
Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)
    at org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(Native Method)
    at org.webrtc.voiceengine.WebRtcAudioTrack.access$400(WebRtcAudioTrack.java:28)
    at org.webrtc.voiceengine.WebRtcAudioTrack$AudioTrackThread.run(WebRtcAudioTrack.java:147)`

Does the crash happen randomly?
Or is there a way to reproduce this issue?

@ethand91 ,as described, "WebSockets connection lost".
My network quality is bad, sometimes it disconnected to https://v3demo.mediasoup.org/, then it occurs

@ethand91 Has the crash been solved？

@whatisor @ethand91 Has the crash been solved？

@gongwj1119 @whatisor Would you try the latest version, I've modified the implementation of xx-jni.cpp and the crash never happened during my local test.

I had the same problem, and in the Demo it crashed just by switching the network

java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ) at org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(Native Method)

@gongwj1119 @whatisor Would you try the latest version, I've modified the implementation of xx-jni.cpp and the crash never happened during my local test.

do you push your local change to github? I didn't see any change about xx-jni.cpp during last 30days

@haiyangwu @gongwj1119 @whatisor still crash when I close RecvTransport, has the crash been solved？
AudioTrackJavaThread(985)
java.lang.UnsatisfiedLinkError
No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)

@haiyangwu 大佬好，当我运行代码 recvTransport.close()时候会出现下面这个异常。请问是什么原因呢， 是创建transport的时候要注意哪些问题还是什么原因呀? 望回复，谢谢！
java.lang.UnsatisfiedLinkError
No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)

@linsunshinecoder RoomClient->JoinImpl    if (mMediasoupDevice == null) {
mMediasoupDevice = new Device();
String routerRtpCapabilities = mProtoo.syncRequest("getRouterRtpCapabilities");
mMediasoupDevice.load(routerRtpCapabilities);
}
Mmediasaupdevice was created repeatedly

org.mediasoup.droid.demo E/soup.droid.dem: No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)
FATAL EXCEPTION: AudioTrackJavaThread
Process: org.mediasoup.droid.demo, PID: 11162
java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)
at org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(Native Method)
at org.webrtc.voiceengine.WebRtcAudioTrack.access$400(WebRtcAudioTrack.java:28)
at org.webrtc.voiceengine.WebRtcAudioTrack$AudioTrackThread.run(WebRtcAudioTrack.java:147)
facing same issue

I can reproduce this error by:
1 - Creating both send and receive transports
2 - Connecting sendTransport by producing
3 - Pausing the producer
4 - Connecting recvTransport by consuming
5 - Stopping the consumer
6 - Closing the recvTransport
7 - Disposing the recvTransport <-- After disposing, app will crash soon
8 - Recreating the recvTransport in the server and than the client
App crashes after disposing of the recvTransport if the sendTransport is connected (a producer is created on this transport and has produced). The crash can be reproduced quite easily following those steps on two devices (other devices tested work as intended).
The devices where this crash happens are armeabi-v7a Android 6.0.1 device (2 different manufacturers) and a Android 5.1-v7a device. This isn't specific to armv7a as devices with v7a/Android 7.1 work as expected.
PeerConnectionFactory is created a single time and MediasoupDevice is also only created once. I am using a build with the latest commits (26 june).
Any help is appreciated!
E/ACRA: ACRA caught a UnsatisfiedLinkError for com.ex.app
java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded and Java_org_webrtc_voiceengine_WebRtcAudioRecord_nativeDataIsRecorded__IJ)
at org.webrtc.voiceengine.WebRtcAudioRecord.nativeDataIsRecorded(Native Method)
at org.webrtc.voiceengine.WebRtcAudioRecord.access$600(WebRtcAudioRecord.java:26)
at org.webrtc.voiceengine.WebRtcAudioRecord$AudioRecordThread.run(WebRtcAudioRecord.java:166)

@haiyangwu 大佬好，当我运行代码 recvTransport.close()时候会出现下面这个异常。请问是什么原因呢， 是创建transport的时候要注意哪些问题还是什么原因呀? 望回复，谢谢！

java.lang.UnsatisfiedLinkError
No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)

Did you call recvTransport.close() before or after sendTransport.close() ? Did you call .dispose() for both transports? What Android version is affected?

我其实也没有完全解决  我偶尔关闭也会出现这个bug  但是几率很小  我改过源码关闭顺序  把这两个放在前面执行了    你试试看看    这个我以前也没有用过
------------------ 原始邮件 ------------------
发件人<EMAIL_ADDRESS>发送时间: 2020年7月14日(星期二) 晚上10:22
收件人<EMAIL_ADDRESS>抄送<EMAIL_ADDRESS><EMAIL_ADDRESS>主题: Re: [haiyangwu/mediasoup-client-android] Crash related to Audio (#12)
@haiyangwu 大佬好，当我运行代码 recvTransport.close()时候会出现下面这个异常。请问是什么原因呢， 是创建transport的时候要注意哪些问题还是什么原因呀? 望回复，谢谢！
java.lang.UnsatisfiedLinkError
No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutData(int, long) (tried Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData and Java_org_webrtc_voiceengine_WebRtcAudioTrack_nativeGetPlayoutData__IJ)
Did you call recvTransport.close() before or after sendTransport.close() ? Did you call .dispose() for both transports? What Android version is affected?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

I think I have fixed this problem.
In the webrtc  issues, there also have this problem. https://bugs.chromium.org/p/webrtc/issues/detail?id=7587
The reason is that only one audio device module supported on Android.
In this code, when join the room, the peerConnectionFactory has been created 4 times and each time will create one audio device module.So I try to create only one peerConnectionFactory in java, and  add peerconnection options params in device.cpp.
Finally, it works.
I hope it helps you.

Thanks 兄嘚
------------------ 原始邮件 ------------------
发件人:                                                                                "haiyangwu/mediasoup-client-android"<EMAIL_ADDRESS>发送时间: 2020年7月23日(星期四) 下午2:08
收件人<EMAIL_ADDRESS>抄送: "℉ōrēvēr."<417757407<EMAIL_ADDRESS>主题: Re: [haiyangwu/mediasoup-client-android] Crash related to Audio (#12)
I think I have fixed this problem.
In the webrtc  issues, there also have this problem. https://bugs.chromium.org/p/webrtc/issues/detail?id=7587
The reason is that only one audio device module supported on Android.
In this code, when join the room, the peerConnectionFactory has been created 4 times and each time will create one audio device module.So I try to create only one peerConnectionFactory in java, and  add peerconnection options params in device.cpp.
Finally, it works.
I hope it helps you.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

I think I have fixed this problem.
In the webrtc issues, there also have this problem. https://bugs.chromium.org/p/webrtc/issues/detail?id=7587
The reason is that only one audio device module supported on Android.
In this code, when join the room, the peerConnectionFactory has been created 4 times and each time will create one audio device module.So I try to create only one peerConnectionFactory in java, and add peerconnection options params in device.cpp.
Finally, it works.
I hope it helps you.

Nice catch! libmediasoup creates multiple peer connection factories by default, including when creating a Device. Did you do a commit of the patch you applied? I checked your fork of this project but unfortunately it did not include any changes. Would you be open to sharing the solution?

I've scribbled something here https://github.com/haiyangwu/mediasoup-client-android/pull/42

libmediasoupclient_ so.so How to compile by yourself ？

libmediasoupclient_ so.so How to compile by yourself ？

It's better to ask here https://github.com/versatica/libmediasoupclient/ as mediasoup-client-android depends on it.
But, afair, once you have all dependencies and tools downloaded (cmake, webrtc) you can build mediasoup-client-android using gradle and it will automatically build libmediasoupclient_ so.so

waiting for new release to this problem

I think I have fixed this problem.
In the webrtc issues, there also have this problem. https://bugs.chromium.org/p/webrtc/issues/detail?id=7587
The reason is that only one audio device module supported on Android.
In this code, when join the room, the peerConnectionFactory has been created 4 times and each time will create one audio device module.So I try to create only one peerConnectionFactory in java, and add peerconnection options params in device.cpp.
Finally, it works.
I hope it helps you.

Could you release a branch for us?

If we talk about pure Java technically, does someone know why a function is possible to become unknown by some bad logic?
It should be constrained from .so binary.

Base on update from haiyangwu, this is my solution:

Firstly, Close() both send transport and receive transport
Secondly, dispose() them.
It looks like Webrtc has thread async issue. If dispose before closing all, it becomes the issue.

Base on update from haiyangwu, this is my solution:

Firstly, Close() both send transport and receive transport
Secondly, dispose() them.
It looks like Webrtc has thread async issue. If dispose before closing all, it becomes the issue.

I seem to have solved the problem through this method you mentioned. I used to leave the meeting frequently and crashed a few times, but now I leave the meeting dozens of times and it won’t crash anymore.

@haiyangwu
你好，这个crash问题在dev-3.4.0分支上的版本仍然可以出现
我的操作步骤
1.同步最新的client dev3.4.0代码
2.本地编译并发布到local maven
3.demo项目从依赖3.0.8改到3.4.0
4.demo需要升级两处修正代码
a. mMediasoupDevice.load(routerRtpCapabilities, null); 这个参数变更了根据client测试用例传入一个null对象
b.SendTransport.produce 创建Producer mMicProducer 和Producer mCamProducer 也加入一个null对象
c.mMediasoupDevice.createSendTransport,需要传入sctpParameters，传入了client 测试用例中mock的sctpParameters
d.SendTransport.Listener 追加了新的方法。空实现
5.升级demo项目可以正常启动并连接默认测试服务器。显示lib版本为3.4.0
以上修正也尽可能有问题，请指正
测试
用新版本的demo项目启动设备做为A用户
用新版本的demo项目启动另一设备作为B用户
A用户通过进入setting然后返回来重新进入room（反复操作）
一定概率触发（1/5）No implementation found for void org.webrtc.voiceengine.WebRtcAudioTrack.nativeGetPlayoutDat
这个问题我看了些代码一些不严谨的分析希望能带来帮助
nativeGetPlayoutDat 在写入数据或者处理数据需要Mic的正常工作作为前提。
销毁房间时会断开app和Mic的链接。但是处理数据nativeGetPlayoutDat仍然会被调用
android的摄像头和mic资源可能会失去焦点。导致app的请求资源失效。比如在视频中用户打开了相机或启动了其他的视频app这样原来app申请的摄像资源会被系统回收。也可以在后者使用完毕后重新归还。例如 声音播放焦点
感觉lib中对视频和其他硬件资源的请求应该留给app开发者来做。lib中可以仅资源的数据进行压缩和优化即可


Added Bynyl's FF7 Soundtrack Remake

Added Bynyl's FF7 Soundtrack Remake

Does this mod automatically turn on the appropriate ffnx external music flag like other music mods?

Added the FFNx part, let me know if anything else is needed

Thank you!


Fix error check for wrapped errors for safepath

What this PR does / why we need it:
Fix error checking with wrapped errors introduced by https://github.com/kubevirt/kubevirt/pull/8412
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

NONE

/cc @iholder-redhat

Interesting finding :+1: I wasn't aware about the different behavior of os.IsNotExist vs errors.Is(err, os.ErrNotExist). I grep'ed the sources and found a couple of more such checks:
https://github.com/kubevirt/kubevirt/blob/b862288214babf12b06ce808efaf2adbf592e4a1/pkg/virt-handler/non-root.go#L163-L175
and also in pkg/network/setup/podnic.go. But podnic.go does not seem to cause troubles (not 100% sure, though) and its probably not in the scope of this PR...

Let me have another scan of the code. We have a mixture of the "standard" os library functions like os.Stat and function from the safepath library.

I wanted to check first if the functional test mentioned by @iholder-redhat in https://github.com/kubevirt/kubevirt/pull/8464 was solved

Thanks a lot @alicefr! Great stuff!
For the record, I'd like to provide some context on these findings: some background and implications on the future, to reflect my offline conversations with @alicefr.
Background
So first of all, kernel boot tests were quarantined [1][2]. I've tried to figure out what's the root cause and saw "file doesn't exist" failures regarding a socket path. Then I've look at the PRs that got merged right were the flakieness started, and noticed https://github.com/kubevirt/kubevirt/pull/8412. It raised my suspicion that some unwrapped error was returned somewhere, breaking the wrap-based errors.Is() check.
Then, I've created https://github.com/kubevirt/kubevirt/pull/8464 which basically reverts https://github.com/kubevirt/kubevirt/pull/8412 to check if this is indeed the issue. All lanes have passed twice in a row with no errors.
[1] https://github.com/kubevirt/kubevirt/pull/8459
[2] https://github.com/kubevirt/kubevirt/pull/8428
Future implications
Error wrapping is a great language feature, but is a very delicate feature that has to be used with a lot of caution. The main problem is that it's very easy to destroy all wrapped data (e.g. by returning an unwrapped error: return Errorf("... %v", err)). If we want to use error wrapping - and I think we do since it's providing a lot of value - we need to think on how to make sure bugs aren't being introduced. Should we test it somehow? Or simply define conventions / policies?
I'm going to open an issue about it later today, just wanted to keep this info here for some context.

BTW - @alicefr - can you make sure the tests from both https://github.com/kubevirt/kubevirt/pull/8459 and https://github.com/kubevirt/kubevirt/pull/8428 pass with this PR's changes?

BTW - @alicefr - can you make sure the tests from both #8459 and #8428 pass with this PR's changes?
And a quick question: @alicefr do you know why the CI passed on your original PR? Was the os.IsNotExist introduced after your PR has merged?

I haven't been able to reproduce locally, that's why I want to check here if they still fail. I've checked the failed jobs you mentioned to me:

https://gcsweb.ci.kubevirt.io/gcs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirt/8445/pull-kubevirt-e2e-k8s-1.24-sig-compute/1569574972559462400/artifacts/k8s-reporter/1/
https://gcsweb.ci.kubevirt.io/gcs/kubevirt-prow/pr-logs/pull/kubevirt_kubevirt/8449/pull-kubevirt-e2e-k8s-1.22-sig-compute/1569476121727078400/artifacts/k8s-reporter/3/

and the error messages are coming from the wrong check of the error type. I've encountered a similar issue during https://github.com/kubevirt/kubevirt/pull/8412. Probably, the rest of the errors aren't properly tested and/or flaky.

I'm wondering if it would make sense to change all the os.IsNotExist(err) to errors.Is(err, os.ErrNotExist) in the rest of the code too. @vasiliy-ul @iholder-redhat wdyt?

I'm wondering if it would make sense to change all the os.IsNotExist(err) to errors.Is(err, os.ErrNotExist) in the rest of the code too. @vasiliy-ul @iholder-redhat wdyt?

+1. I think it does make sense: https://pkg.go.dev/os#IsNotExist

It only supports errors returned by the os package. New code should use errors.Is(err, fs.ErrNotExist).

I'm wondering if it would make sense to change all the os.IsNotExist(err) to errors.Is(err, os.ErrNotExist) in the rest of the code too. @vasiliy-ul @iholder-redhat wdyt?

+1. I think it does make sense: https://pkg.go.dev/os#IsNotExist

Another +1 from me.
Thanks @vasiliy-ul for providing that link!

It only supports errors returned by the os package. New code should use errors.Is(err, fs.ErrNotExist).

Fix error checking with wrapped errors introduced by #8412

Ha :(

I'm wondering if it would make sense to change all the os.IsNotExist(err) to errors.Is(err, os.ErrNotExist) in the rest of the code too. @vasiliy-ul @iholder-redhat wdyt?

+1

Just checked, seems like we don't need a backport for this.

Fix error checking with wrapped errors introduced by #8412

Ha :(

It seemed an innocent change at that time :/

Fix error checking with wrapped errors introduced by #8412

Ha :(

It seemed an innocent change at that time :/

Indeed :D

/retest-required

/retest-required

Looks pretty good to me. One last idea: Would you mind adding something like
diff --git a/tools/analyzers/banncheck/banncheck.json b/tools/analyzers/banncheck/banncheck.json
index 077cc8a66..d320dbf4b 100644
--- a/tools/analyzers/banncheck/banncheck.json
+++ b/tools/analyzers/banncheck/banncheck.json
@@ -1,4 +1,10 @@
 {
+  "functions": [
+         {
+                 "name": "os.IsNotExist",
+                 "msg": "use errors.Is(err, os.ErrNotExist) instead of os.IsNotExist(err)"
+         }
+  ],
   "imports": [
     {
       "name": "kubevirt.io/kubevirt/pkg/unsafepath",
@@ -35,4 +41,4 @@
       ]
     }
   ]
-}
\ No newline at end of file
+}

That would tell people when they are compiling the code that they should not use os.IsNotExist.

@rmohr can you suggest a good doc for the nogo analyzer? I want to exclude the vendor directory from the check, and I'm struggling a bit to find the right syntax.

@rmohr can you suggest a good doc for the nogo analyzer? I want to exclude the vendor directory from the check, and I'm struggling a bit to find the right syntax.

It should already be excluded by using only_files in nogo_config.json:
  "bannedAPI": {
    "only_files": {
      "pkg/": "only production code must not use banned imports"
    },
    "exclude_files": {
      "pkg/.*_test\\.go": "unit tests are allowed to use banned imports"
    }
  },

But in principle you can just exclude the whole vendor directory, like on some other linters:
  "ginkgolinter": {
    "exclude_files": {
      "vendor/": "vendor doesn't pass vet",
      "external/": "externaldoesn't pass vet"
    }
  },

@rmohr thanks :) this commit includes: https://github.com/kubevirt/kubevirt/pull/8492/commits/411874563c39a0b936d7967ea3ff323631d365e7 the linter fix

Thanks @rmohr! Enforcing it via a linter is a great step forward!
I just want to point out that while it's great we still need to think further on how to handle error wrapping in general. Using error.Is() will still fail to work if the returned error isn't being wrapped.

Thanks @rmohr! Enforcing it via a linter is a great step forward! I just want to point out that while it's great we still need to think further on how to handle error wrapping in general. Using error.Is() will still fail to work if the returned error isn't being wrapped.

I'm really not sure. This depends on how you decide to construct the error. The function error.Is allows to handle both cases:

when the error is exactly os.ErrNotExist
a wrapped version of os.ErrNotExist

but it is different for example than enforcing always using ftm.Errorf("%w", error) instead of ftm.Errorf("%v", error). It could be still a good idea enforcing this practise, I think cri-o does it.

Thanks @rmohr! Enforcing it via a linter is a great step forward!
I just want to point out that while it's great we still need to think further on how to handle error wrapping in general. Using error.Is() will still fail to work if the returned error isn't being wrapped.

In general I would want to use %w as little as possible, because it can create implicit dependencies across the whole stack, introducing hidden APIs. Therefore I am not a super-big fan of %w. I however think that checking for os.IsNotExist is such a common need that I am ok with it, since without being able to enriching it, while still detecting it, the info propagated is very often uncomfortably thin.
One possible solution would be to have an explicit allow-list of which errors are allowed to be checked for with errors.Is, but all this is a little bit tricky.

but it is different for example than enforcing always using fmt.Errorf("%w", error) instead of fmt.Errorf("%v", error). It could be still a good idea to enforce this practise, I think cri-o does it.

That would solve the problem, but it might introduce a different kind of problem which is exposing our internal error structure to users.
For example, let's say that we would decide to use error wrapping internally. So imagine we define errors such as ErrVmCannotStart, etc. If we expose these externally by returning errors wrapped with these, users could rely on the assumptions that we would always return the same wrapped errors (e.g. user code could do if errors.Is(err, ErrVmCannotStart) {.... This can make it harder to refactor later and may expose internal structures / flows that we don't want to expose.
I think that we shouldn't use a "black-or-white" solution, but instead think of how a policy / convention that we want to use to ensure that only errors that we want to expose are being wrapped and handed to the user. I think we should open an issue on that and discuss this further, but obviously it's outside of this PR's scope.

/lgtm
looks good. Some e2e tests look a little bit strange. Let's see how they are doing before approving.

/retest

I think we should open an issue on that and discuss this further, but obviously it's outside of this PR's scope.

Creating an issue sounds good. Thanks. +1

This is a start: https://github.com/kubevirt/kubevirt/issues/8512 :)

/test pull-kubevirt-e2e-k8s-1.22-sig-storage


chore: testing

closing since this was a test that Cheng did while I was walking him through some GH workflows


Capability to create resource via REST API from content specified by http URL

Allow for the creation of a new resource using the REST API where the resource file content is not uploaded as part of the POST request, but instead the POST contains an http URL from which the resource content should be downloaded.

@alvacouch please figure out what to do with this.

@dtarb @alvacouch Where are we at on this one?

Closing as I do not think we have a current use case demanding this.


Adopt core.evaporation functionality into feature/splash_v1

Following on from the merging of #125 into develop, this functionality then needs to be adopted in the SPLASH implementation:

[x] Merge develop into feature/splash_v1 (see #69)
[x] Replace calls to the branch splash/evap.py functionality with the integrated pyrealm.core.evaporation functions.
[x] Update splash arguments to pass the required EvapConsts (#124) dataclasses down as required.

Some of these functions overlap existing pyrealm functions: density_h2o is calc_density_h2o_chen and elv2pres is calc_patm, although there are differences in the definition of the standard atmosphere. The P Model uses a standard temperature for photosynthetic processes of 25°C and this is also (probably incorrectly) being used in calc_patm for atmospheric corrections - 15°C seems canonical for this application.
Depends: #124, #125

Uses CoreConsts not a specific EvapConsts but otherwise complete.


Add a Python script to create new test suites more quickly

While working on https://github.com/godotengine/godot/pull/48657, I found it a bit annoying to have to create test suite files by hand.
Hopefully, this script should make things a little more seamless :slightly_smiling_face:

Example output (`tests/create_test.py ExampleClass`)
/*************************************************************************/
/*  test_example_class.h                                                 */
/*************************************************************************/
/*                       This file is part of:                           */
/*                           GODOT ENGINE                                */
/*                      https://godotengine.org                          */
/*************************************************************************/
/* Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur.                 */
/* Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md).   */
/*                                                                       */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the       */
/* "Software"), to deal in the Software without restriction, including   */
/* without limitation the rights to use, copy, modify, merge, publish,   */
/* distribute, sublicense, and/or sell copies of the Software, and to    */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions:                                             */
/*                                                                       */
/* The above copyright notice and this permission notice shall be        */
/* included in all copies or substantial portions of the Software.       */
/*                                                                       */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
/*************************************************************************/

#ifndef TEST_EXAMPLE_CLASS_H
#define TEST_EXAMPLE_CLASS_H

#include "tests/test_macros.h"

namespace TestExampleClass {

TEST_CASE("[ExampleClass] Example test case") {
    // TODO: Remove this comment and write your test code here.
}

} // namespace TestExampleClass

#endif // TEST_EXAMPLE_CLASS_H

Another approach could be to create a tests/test_template.h and let the script read the file to substitute names to output a new test suite from that. This way, the template itself would go through static checks in case copyright year/formatting needs to be updated.

Superseded by #64639.


Add italian localization

This pull request adds the italian localization into Hangar

thank you very much, I merged the current state, all further discussion and stuff will take place on crowdin sooooon (tm), which will be way nicer.


Example ghe-config command to exempt users from rate limiting has a typo.

What article on docs.github.com is affected?
Command-line utilities
What part(s) of the article would you like to see updated?
The following example:
$ ghe-config app.github.rate_limiting_exempt_users "hubot github-actions"
# Exempts the users hubot and github-actions from rate limits

In this example, the correct key has hyphens, not underscores. Therefore it should read:
$ ghe-config app.github.rate-limiting-exempt-users "hubot github-actions"
# Exempts the users hubot and github-actions from rate limits

Additional information
I've opened PR #1279 for this.

I

Thanks for opening a PR @GalaxyAllie! I'll get this triaged for review ✨

Just wanted to drop a note that I ran into an issue here. PR contained the solution - would love to see this get merged/reflected in the official docs!

Thanks for letting us know @timchepeleff! Looks like the PR is waiting on a review and then we'll get it fixed up ⚡

Fixed by #1279  - the change will be live shortly 😃


My pages

Here is my contribution on the blog site, we'll be able to see my description and my resume

thanks for merging my contributions


Misc Non-Fatal Errors in Vuforia

Running the Vuforia sample on an iPad Pro, I get all of the following in the console.  None of it stops anything from working.
Unhandled Error: ReferenceError: Can't find variable: __ARGON_PORT__ (undefined: 1)
...
Recalculating device params.
User agent: Mozilla/5.0 (iPad; ...
Pixel width: 2048
Pixel height: 1536
No DPDB device match.
New device parameters:
null
Failed to recalculate device parameters
...
Unhandled Error: TypeError: undefined is not an object (evaluating 'originalDescGet.apply') (undefined: 2802)
...
Invalid timestamps detected.  Time step between successive gyroscope sensor samples is very small or not monotonic

That last one I've seen a few times, but it doesn't happen on every run, and I haven't seen it more than once per run.  (This latest time I noticed that my lighting stopped working, and the light is positioned in my render event listener, so it's possible the listener stopped working after the not monotonic error, but I haven't done much diagnosis on the lighting thing so it might also be unrelated.)

Unhandled Error: ReferenceError: Can't find variable: __ARGON_PORT__ (undefined: 1)
Just fixed this. Will be gone in next release of the browser.
It looks like the rest of those errors are coming from https://github.com/googlevr/webvr-polyfill (which is built into argon.js) so there isn't much I can do about that.


Bring cicd more up-to-date with the example

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.403%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
15

Relevant Lines:
3924

💛  - Coveralls


outline color

How can I add outline color to the container?

apply borderColor using inputProps

which inputProps take in the borderColor


(7.6) "setAny" (attack any creature) cavebot command does not work

with
resetKill
setAny

the cavebot will attack absolutely nothing and nobody, as far as i can see..
even if you do
resetKill
setAny
setPriority Demon:+1

it will not attack Demon.

I don't think its working this way.
SetAny, SetFriendly, SetVeryFriendly
I think it is something related to FriendlyMode which determines whether you keep attacking monsters when other players are on the screen, or not(but i might be wrong)

damn, looks like you're right. well, i just made a pull request for "seMeleeKill *" -> makes everything a target, see https://github.com/blackdtools/Blackd-Proxy-CLASSIC/pull/40

Nice job man!! I have one suggestion though: this function should be named more like "setKillAll" or "setMeleeKillAll" something that would refer to actual purpose just by the name : D

or maybe "SetBot KillAll=1" like we have "SetBot LootAll=1", i don't know. Daniel, any comments?

or maybe "SetBot KillAll=1" like we have "SetBot LootAll=1", i don't know. Daniel, any comments?
oh, and "SetBot TerminateEveryone" is Skynet-approved

Thank you for your fedback and improvements. Any syntax option there will be ok.


imgtool: Adjust base_addr when injecting header

Adjusts the "base address" in an intel hex file if using "--pad-header."
If adding a header to a .hex file (using the command line "--pad-header"), the hex file gets shifted by HEADER_SIZE. This may cause hard coded addresses to be off by "header-size", making the firmware unusable. Instead, adjust the base address by the header size, so the existing firmware in the hex file is loaded to the proper addresses.
I'm not sure I've thought through all use cases here. But I've found the using --pad-header results in an invalid firmware image when passing in a hex file.

Should not the "hex" generation be considering the offset instead of making adjustments later?

I don't think so, because I think then the headerless hex image is invalid. (By headerless hex image, I mean the hex file generated by my build system before I run "imgtool sign" on it.) But I'm not sure I understand the question, so here's an example.
Let's say I plan on placing the image header at 0x08020000 (with a 32 byte header), and have the actual code start at 0x08020020. These addresses are codified in my linker script, and after generating the elf file from my build system, all code is placed between 0x08020020 and 0x080210000. Nothing exists between 0x080200000 and 0x08020020 because I plan on using "--pad-header" later. Using objcopy, I convert that elf file to a hex file. This headerless hex file will have a base address of 0x08020020 because nothing exists before that address.  It should not have a base address of 0x08020000 because that would make the hex file incorrect. All the code, if loaded, would be shifted by 32. If I sign the image, with "--pad-header", the imgtool script will prepend 32 bytes to the front, and therefore must change the base address of the hex file. If it doesn't, then all the bytes will again by off by 32 bytes.
Maybe another example is with signing a binary file. When loading a binary file, there's a address parameter of where to load. Therefore your load command would be:
(gdb) load headerless_binary.bin 0x080200020
(gdb) load signed_binary.bin 0x080200000
That change in load address must be reflected internal to the hex file. (only when using "--pad-header")
I could also be thinking about this wrong. Let me know.

@lemrey could you take a look at this one?

@schultetwin That was a good explanation, I think it makes sense and after looking at the hex handling code I believe this is required and has to be merged, but I'll leave the final decision to the experts! (DISCLAIMER: I never use .hex myself)

@lemrey @carlescufi I think this is OK, if there's no feedback by the end of the day I will interpret it as good for merging.

Thank you all!

I was able to give this some testing now, and it seems a bit weird making it work on Zephyr. To correctly locate everything in flash (more specifically the vector table), I had to change the .dts updating the location of the slot (to add space for later header padding) and of course the text section offset (to not pad a header) as in:
slot0_partition: partition@c000 {
    label = "image-0";
    reg = <0x0000C200 0x000069000>;   # <-- had to force "wrong?" location for slot
};

and CONFIG_TEXT_SECTION_OFFSET=0
This generates a .hex with base_addr == 0xc200 which after this patch will correctly be located at 0xc000 and it should work on most boards. It gets somewhat weirder when the target board has fixed locations for sections like in the Kinetis line where there is flash config at 0x400. This would need to be located at 0x200 in the linker script to correctly relocate when using --pad-header.
I am not sure why your build system is so different from the usual Zephyr standard (allowing it to already pad the area where the header will be). While it looks that something like this solution must be done when --pad-header is used, IMO we should leave this here for some more time waiting for more feedback. Or maybe I am missing something?

@utzig Thank you for taking some time to review. I'm not too familiar with the Zephyr build system, but looked through it, and think I understand. Hopefully I can address your questions!
Why Different then Zephyr
As for why our build system is different, our code base is not MyNewt or Zephyr. Instead, we ported mcuboot to our own code base. Unfortunately, our code base is not at this time open source, so I cannot share it. That being said, I don't think the issue fixed by this patch is specific to our code base, but rather for any code base using the "--pad-header" flag with .hex files.
Why Use --pad-header
One option would be to not use the "--pad-header" flag (just get rid of it all together). I could certainly convert our code base to do that, similar to the Zephyr/mcuboot integration. However, I'd rather not do that because when debugging in GDB, the read-only sections of the ELF file and the programmed memory on the microcontroller do not match due to the header added by the imgtool script. For example:
(gdb) compare-sections
MISMATCH in .text section -> This is due to the header added by the imgtool script.

compare-sections is a nice sanity check to make sure the symbols from the elf file you're using match the firmware that you're debugging. Not the end of the world if it's not usable, but definitely a nice to have. Especially when working with non-reliable loaders.
Issue with fixed location data (i.e. Kinetis flash config at 0x400)
The example with Kinetis chips and needing to program flash config at a fixed location is not something I thought of when making this patch. Thank you for the use case! However, I don't think the proposed solution (locating the flash config at 0x200 in the linker script) is needed. I actually think this patch fixes the described offset problem.
After applying the patch in this PR to imgtool, the modified imgtool both appends HEADER_SIZE bytes to the front of the image and subtracts HEADER_SIZE from the base_addr. For example, if there's a hex file with data placed at 0x400, and then imgtool adds a 0x200 byte header to the front of said data, the new load address will be 0x200, but because there was an additional 0x200 bytes added, the data previously loaded at 0x400 will still be loaded at 0x400.
Waiting More Feedback
I'm happy to wait for more feedback. However, I'd recommend the "--pad-header" flag raise an error when used with a ".hex" file, as that is likely to produce incorrect results. Also, I'd appreciate a timeline on the feedback, as opposed to leaving this open indefinitely. Thank you!
Once again, thank you for reviewing! I appreciate it!

@schultetwin Alright! Would you mind also adding a commit updating docs/imgtool.md with this behavior? There's already has a sentence refering to --pad-header and --header-size so a small update there should be enough. I will merge afterwards. Thanks!

Done! Thank you!


Update the DSA Page | #87

I Have fixed the misalignment of the content of paragraphs and also updated the content of paragraphs (where needed).
Added bullet points that showcase the UX for better interaction.
Update the Title alignment of the page.
Also, I refactored the CSS file that contains duplicate/repetitive code
https://github.com/user-attachments/assets/0ff8972a-98eb-4e7c-a9ea-d9a603754704

@yatulearn please update the level of this PR as I have update the whole page.


Unable to catch 'econnreset'

Hi!
Currently all modern browsers support AbortController which can cancel running http request.
And http-proxy can catch that and actually provides econnreset event for that case.
But seems like http-proxy-middleware doesn't expose that to the consumer, list of events  doesn't contain onEconnreset.
Is there a workaround for that case or it might be considered as a bug?

Hi @klimashkin
http-proxy-middleware comes with a default error handler:
https://github.com/chimurai/http-proxy-middleware/blob/v0.20.0/src/handlers.ts#L52
This default error handler can be overridden with the onError option:
https://github.com/chimurai/http-proxy-middleware#http-proxy-events

Hi @chimurai! Please take a look at the link i posted one more time:
https://github.com/http-party/node-http-proxy/blob/4a657a71267ae093e43473a155a3bb9dfc9784f8/lib/http-proxy/passes/web-incoming.js#L155
Since ~2016 ECONNRESET has its own econnreset event, not error event

Since Dec 2016 to be precise:
https://github.com/http-party/node-http-proxy/commit/927357bedc42f2e3067c44c10ab9563be7d8b032

ah, my bad.
Think you can use the onProxyReq option, which just exposes the http-proxy.on('proxyReq') event.
function onProxyReq(proxyReq, req, res) {
  // add custom header to request
  proxyReq.setHeader('x-added', 'foobar');
  // or log the req
}

📓 https://github.com/chimurai/http-proxy-middleware/blob/master/recipes/proxy-events.md#onproxyreq
You should be able to add listeners to proxyReq and req, like you pointed out earlier.
https://github.com/http-party/node-http-proxy/commit/927357bedc42f2e3067c44c10ab9563be7d8b032#diff-6b475017a1a35b15c446d2edf40979f6R143

@chimurai Yes, you right, it's possible to override the whole proxyError handler!


Need to upgrade electron - Harfbuzz version is too old

An upstream bug in electron prevents sqlectron from starting with error message:

Pango-ERROR **: 23:18:09.341: Harfbuzz version too old (1.4.2)

It seems the only solution is to upgrade the electron version used :/.

PR open to update the version of electron to one which should no longer have this error, and will be available in 1.32.0


remove references to natty

lgtm

So is the multiple distros support is needed or we only support latest? one annoying thing, there is no oneiric yet on RAX cloud so not easy to test for some people...

nova (libvirt) doesn't work without pvgrubbed oneiric anyway...


Create Master script templates

Is this still an ope issue?

Closing since this project is mostly just maintenance now, in favor of watchmaker


Upgrade dependencies

Issue #, if available:
Description of changes:
Checklist:

[ ] Write Design Document (Do I need to write a design document?)
[ ] Write unit tests
[ ] Write/update functional tests
[ ] Write/update integration tests
[ ] make pr passes
[ ] Write documentation

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@sanathkr I looked through https://github.com/pallets/click/blob/master/CHANGES.rst and nothing seemed to jump out at me on breaking changes. I also am relying on our integ tests to ensure experience doesn't break.


Docs: Enable long term caching

phenomic.io has a CDN now so it makes sense to do long term caching.

Not a fan since react and friends are getting update pretty often.

It's not that often. It's better then new hash every build. And I only define a few packages to cache.

Ok to try this.
Maybe we could even add all lib referenced from package.json ( deps , not devdeps)


2.x/3.x: Support ability to timeout idle connections

Environment Details

Helidon Version: 2.6.7
Helidon SE

Problem Description
In Helidon 4 the WebServer supports idle-connection-timeout that controls how long it should wait before closing a connection that has no traffic on it.
Helidon 2 and 3 (which are Netty based) do not appear to have such capability.  To implement this might require using Netty's IdleStateHandler

HI Team,
We are facing this issue on our service. The open socket count keeps going up and stops accepting new connection in 7-8 days. We are forced to restart the service to clean those open connections. This is affecting our customer as the API as inaccessible when this happens. Any ETA for this fix?

Fixed in 2.x and 3.x

@spericas should we expect a 2.6.9 release soon with this fix? I don't see that tag on Github.

@spericas should we expect a 2.6.9 release soon with this fix? I don't see that tag on Github.

@barchetta ?

It will be soon, but I do not have an ETA at the moment. I am making a build change so that we can produce a 2.6.9-SNAPSHOT build that you can test with.

@ggsrivas It will be soon, but I do not have an ETA at the moment. I am making a build change so that we can produce a 2.6.9-SNAPSHOT build that you can test with. I will notify you once that is ready.

That's actually a great idea, trying out a SNAPSHOT version to verify this works in your environment.

@ggsrivas 2.6.9-SNAPSHOT with the fix is available at: https://oss.sonatype.org/content/repositories/snapshots/io/helidon/


Utilizing Camera Coordinates for unused Blocks

Description
The Perception Group works on detecting Blocks on Table.
They implemented the function to get_nearest_unused_piece(...).
It returns the position of the nearest unused piece relativ to the Origin Point (Bottom right corner)
ToDo
Utilize the function to have an alternative to predefined positions on Board.

Current Problems
Movement with the cloned function move_block_requires_b_wahrnehmung_2(...) has very weird results.
The arm is turning and bending randomly, and the Head Movement is also glitching.
Perhaps caused by the Threading approach.
Planned Solution
The threading approach from original function move_object(...) does Work more reliably.
Therefore the plan is to remove the cloned function and make adjustments the original function and facade instead


fix issue 1128

This adds a check when building the CRP sampler that the number of stoch deps as well as deterministic deps is constant across the groups (i.e., the dependents of each element of the clustering variable).

Arggh, apparently I fixed this a second time and it is already in devel.


custom filter, removed chip provide wrong filterPos when its value is 0

Expected Behavior
Consider case where my filterList is [1, 0, 2].
In update function of customFilterListOptions I should get index of  removed value. When I remove chip with value 0 (index=1 in provided case), the filterPos should be 1.
Current Behavior
It works properly in almost all casses, but when removed chip/value is 0, filterPos is -1.
Steps to Reproduce (for bugs)
codesandbox: https://codesandbox.io/s/custom-filter-chip-issue-3qtm2x?file=/src/index.tsx
step to reproduce:

Remove User chip

Admin is removed instead.
Your Environment

Tech
Version

Material-UI
5.11.15

MUI-datatables
4.3.0

React
18.2.0

browser
Chrome

Additional Info
I found that this issue may be caused by this line
https://github.com/gregnb/mui-datatables/blob/a382f3e8e850c7fcdd395f8594a5e0afefcaf905/src/components/TableFilterList.js#L63
item[customFilterItemIndex] of value 0 is consider as false and then [] is passed.
Then here https://github.com/gregnb/mui-datatables/blob/a382f3e8e850c7fcdd395f8594a5e0afefcaf905/src/MUIDataTable.js#L1372
value could not be found and -1 is returned;

Could anyone suggest a quick fix? I need it to work until it will be fixed.


Limit user bio length.

Only display 50 characters of user bio on the session page.
I say we limit the user bio to 500 chars total.
When you enter a large amount of text, like when I copied over my bio from the old site, it overflows the page design.

What user in the session?  The teacher?  I pushed a change about an hour ago that sets that one to 120 characters which is about the max that looks good on the tablet breakpoint.


Update sbt-microsites to 0.9.1

Updates com.47deg:sbt-microsites from 0.7.27 to 0.9.1.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention @scala-steward in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [{ groupId = "com.47deg", artifactId = "sbt-microsites" }]

labels: semver-minor

unresolved dependency: org.scalameta#mdoc_2.13;1.2.10: not found

https://github.com/julien-truffaut/Monocle/pull/679


pull request for e2e test at 11/24/2016 07:26:08

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Beta

Description
Please include a summary of the change and a link to which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[x] Test A - Sent text messages to multiple numbers
[ ] Test B

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Merge conflict on package.json and server/server.js


⚠ Bofrost.be has degraded performance

In 6848d75, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2448 ms

Resolved: Bofrost.be performance has improved in 7b8caeb.


[1.12] NullPointerException in FluidPumpTile.work

Industrial Foregoing Version:
1.12.2-1.12.13-237
TeslaCoreLib Version:
1.12.2-1.0.17
Crashlog If Applicable (Upload to pastebin/gist):
https://gist.github.com/remyroy/d0eab4164dc7b019343540c6de081dd0
More details
I've been playing FTB Interactions for a few days now. I've recently added a Fluid Pump above an oil well. It was working for a while but it seems like it made my world crash just now.
I can provide more details like a world dump or anything else needed. Just let me know.

:wave: Sorry but Industrial Foregoing has ended support for version 1.12. I'm closing this issue as it will no longer be updated for that version. Thanks for playing with the mod.


Made datasource list scrollable (fixes #161)

Simple fix for making the datasource dropdown scrollable, add anothe css class to the dropdown menu. Added the css class to bootstrap-combobox.css

Hi @dthorell, thanks for the pull request. Before we can merge it, we need you to sign our Contributor License Agreement. You can do so electronically here: http://opensource.box.com/cla
Once you have signed, just add a comment to this pull request saying, "CLA signed". Thanks!

CLA signed

Verified that @dthorell has just signed the CLA. Thanks, and we look forward to your contribution.


IOSUIModalPresentationStyle.POPOVER crash on iPad

[x] I have read the Get Started - Installation section
[x] I have read and done the Get Started - Setup Android section
[x] I have read and done the Get Started - Setup iOS section
[x] I have already searched for the same problem

Environment

Technology
Version

Flutter version
2.2.3

Plugin version
5.3.2

Android version
N/A

iOS version
14.6

Xcode version
12.5.1

Device information:
Apple iPad Pro 11-inch (2020)
Description
When the iOS presentation style is set to IOSUIModalPresentationStyle.POPOVER, calling openUrlRequest() crashes the whole app on iPad. (the bug is in native code so flutter wasn't able to catch the error)
Expected behavior:
Open a popover in-app broswer
Current behavior:
Crash on iPad (works on iPhone)
Steps to reproduce

Include this in options

ios: IOSInAppBrowserOptions(
        presentationStyle: IOSUIModalPresentationStyle.POPOVER,
      ),

Call openUrlRequest()
Then the app crashes.

Stacktrace/Logcat
*** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<UIPopoverPresentationController: 0x122e34ab0>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'
*** First throw call stack:
(0x18c037754 0x1a0afe7a8 0x18e1d8bb8 0x18e1e48d0 0x18e1e2228 0x18ef02c98 0x18ea356c4 0x18ea2403c 0x18ea57f10 0x18bfb05e0 0x18bfaa704 0x18bfaacb0 0x18bfaa360 0x1a35e8734 0x18ea25584 0x18ea2adf4 0x104744034 0x18bc66cf8)
libc++abi: terminating with uncaught exception of type NSException

Experiencing the same. Some more info from the crash from XCode:
*** Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<UIPopoverPresentationController: 0x136804580>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.'
terminating with uncaught exception of type NSException
CoreSimulator 802.6.1 - Device: iPad Pro (11-inch) (3rd generation) (B8A0ED45-3D73-4471-BA80-285F46C6D579) - Runtime: iOS 15.5 (19F70) - DeviceType: iPad Pro (11-inch) (3rd generation)

So what's the solution to this?


Question about scan_interval

Describe the issue
Regarding the comment on #88 that there's little value of a scan_interval more frequent that 15 min... is that also the case for Alerts?  Or would a shorter scan_interval cause new alerts to be received in HA more quickly?
Home Assistant version
No response
Integration version
No response
Troubleshooting steps

[X] I have updated my Home Assistant installation to the latest version.
[X] I have updated the Pirate Weather Integration to the latest version.
[X] I have gone through the documentation, parameter documentation and sensor documentation before opening this issue.
[X] I have searched this repository and Pirate Weather Repository to see if the issue has already been reported.
[X] I have restarted my Home Assistant installation.
[X] I have checked to see if the issue is not an API issue.
[X] I have written an informative title.

As mentioned in the other issue all the sensors and weather are updated at the same time so a lower update interval would update everything faster.
I'm not sure how fast the alerts data is processed on the API side so I'll tag @alexander0042 and he can let you know how often alerts get intergrated. I would think it would be faster than every 15m but I can't say for sure.

Great question, and should be improved in the docs.
The main reason to go faster than 15 minutes is if you want the currently to reflect the best guess at the current time, but realistically, I don't think it would make sense in the fast majority of cases. Since the currently is (linearly) interpolated from the nearest points, if the temperature was changing very quickly, you'd see more accurate currently data with a faster update interval, but that really is an edge case.
With respect to alerts, they're ingested every 15 minutes, so that's the limit there. TBH, I would rather a faster ingest, but it's surprisingly computationally expensive to do, since I have to turn all the polygons into gridded data, so gets expensive.

Thanks guys!  This is very helpful.  Unfortunately, what I thought might have been an update frequency issue seems to be something else.  During a recent storm, the NWS was putting out many alerts for my location -- I saw them at alerts.weather.gov, in the Weather Channel app, and in another HA integration which was getting them in what seemed almost real-time.  At one point, there were 7 active alerts from NWS showing in those three places, but sensor.pirateweather_alerts showed only 1.  At other times, there were lower number of active alerts from NWS, this integration never went above 1.  Could there be a bug?

It appears that it may come down to this how the NWS API is being queried.  When using GPS coordinates, as I think this API does, then it seems only zone-based alerts are included in the response.  When querying, as the other integration does, with NWS Zone and County codes, then the complete set of relevant alerts is returned.

Oh yea, that makes sense. Right now I'm only ingesting zone based ones, since they have GPS coordinates; however, NWS puts out a whole range of things using a number of different geocoding approaches. I didn't think there would be much my the way of differences, but let me know if this happens more frequently and I can look into ingesting them somehow

Yes, it seems this is a frequent occurrence.  For this to be a useful feature of the API/integration, it would probably be necessary to make this change.  In the meantime, I am going to use the other integration to get the NWS alerts since it has all the alerts and refreshes every minute.  Thanks for all your work on PW!

Thanks for opening this issue. There is an existing issue about improving the alerts in the API repository here https://github.com/Pirate-Weather/pirateweather/issues/118. There is also #211 to improve the API documentation so I'll close this issue.


Update finalName field to "buildvu-microservice"

@EthanIDR It looks like this also includes the changes from PR15. It might be because you created this branch whilst on that branch rather than creating it when on master. I don't think this PR should include those changes too.


Add support status information for version 3.14.x

Hi,
currently the requirement section contains only information of the support status for version 3.12.x. As projects like Spring use the version 3.14.x a note about the support status for 3.14.x would be helpful.
Kind regards
Thomas

It's an unsupported version, so I'm not sure we want to mention it. It's effectively the same status as 3.13.x.
https://square.github.io/okhttp/security/security/


GATConv IndexError when x_src.size(0) < x_dst.size(0)

❓ Questions & Help
Hi, I was trying to use GATConv on a bipartite graph, but I kept on running into an error IndexError: index out of range in self when the number of source nodes is less than the number of target nodes! I was wondering if I was perhaps misusing GATConv, or if this is a bug. Thanks!
To Reproduce
import torch
import torch_geometric as pyg

conv = pyg.nn.GATConv(in_channels=(1, 1),
                      out_channels=1,
                      heads=1)

x_src = torch.tensor([[0.0], [0.1]])
x_dst = torch.tensor([[0.0], [0.1], [0.2], [0.3]])

src2dst_edge_index = torch.tensor([
    [0, 1, 1, 1],
    [0, 1, 2, 3]
], dtype=torch.long)

conv((x_src, x_dst), src2dst_edge_index,
     size=(x_src.size(0), x_dst.size(0)))

raises this error
Traceback (most recent call last):
  File "****", line 16, in <module>
    conv((x_src, x_dst), src2dst_edge_index,
  File "C:\Users\****\anaconda3\envs\****\lib\site-packages\torch\nn\modules\module.py", line 722, in _call_impl
    result = self.forward(*input, **kwargs)
  File "C:\Users\****\anaconda3\envs\****\lib\site-packages\torch_geometric\nn\conv\gat_conv.py", line 149, in forward
    out = self.propagate(edge_index, x=(x_l, x_r),
  File "C:\Users\****\anaconda3\envs\****\lib\site-packages\torch_geometric\nn\conv\message_passing.py", line 232, in propagate
    coll_dict = self.__collect__(self.__user_args__, edge_index, size,
  File "C:\Users\****\anaconda3\envs\****\lib\site-packages\torch_geometric\nn\conv\message_passing.py", line 157, in __collect__
    data = self.__lift__(data, edge_index,
  File "C:\Users\****\anaconda3\envs\****\lib\site-packages\torch_geometric\nn\conv\message_passing.py", line 127, in __lift__
    return src.index_select(self.node_dim, index)
IndexError: index out of range in self

Environment

OS: Windows 10
Python version: 3.8.5
PyTorch version: 1.6.0
CUDA/cuDNN version: cpu
PyTorch Geometric version: 1.6.1

Actually, you are not using it wrong. This is an unintended behaviour, and it is fixed in master now. You can fix it by preventing GATConv to add self-loops to your graph:
GATConv(..., add_self_loops=False)

Thanks!


Increased memory consumption with socket-<IP_ADDRESS> compared to 0.8.x.x branch

My program consumed upto 16Mb compiled with socket lib from branch 0.8.x.x. Now it uses 25Mb (or even more). Compiled with GHC-8.0.2, LTS-8.3.
Heap profile for socket-0.8.x.x:

Heap profile for socket-<IP_ADDRESS>:

Sorry, no test case this time.

Mhh, interesting. Could your recreate the heap profiles for these 3 commits?
fafb1926b0c5c602ed90dc494158d6c46ce336a7 (mallocBytes)
8f341b1a51a7d1300a5e12b54c880a86c9e181c2 (mallocPlainForeignPtr)
bade04065eaadc1a701d2b67cd928ec289226fd9 (ByteString.createUptoN)
@VyacheslavHashov proposed to change the memory allocation mechanism and I refactored it afterwards. Its very likely the culprit lies there.
Apart from that: The charts are very spiky. Is it possible that its just the GC that runs less often? Did you notice a change in performance in your application?

mallocBytes is just a wrapper around C malloc function that allocates memory off-heap. Consequently, this memory  is not shown in the heap profile.

@VyacheslavHashov You're absolutely right. Probably not an issue then.

Maybe it doesn't show up in heap profile, but as I said, RES memory of my program increases from 16Mb to 25Mb just by compiling it with newer socket version.

socket-<IP_ADDRESS>:
  19,008,660,936 bytes allocated in the heap
   1,543,782,704 bytes copied during GC
       9,153,928 bytes maximum residency (952 sample(s))
         678,984 bytes maximum slop
              **25 MB total memory in use (3 MB lost due to fragmentation)**

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0     21683 colls, 21683 par    6.631s   2.060s     0.0001s    0.0115s
  Gen  1       952 colls,   951 par    3.720s   1.052s     0.0011s    0.0038s

  Parallel GC work balance: 12.06% (serial 0%, perfect 100%)

  TASKS: 17 (1 bound, 16 peak workers (16 total), using -N4)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.001s  (  0.003s elapsed)
  MUT     time   41.177s  (177.385s elapsed)
  GC      time    8.422s  (  2.607s elapsed)
  RP      time    0.000s  (  0.000s elapsed)
  PROF    time    1.929s  (  0.506s elapsed)
  EXIT    time    0.001s  (  0.001s elapsed)
  Total   time   51.533s  (179.995s elapsed)

  Alloc rate    461,627,435 bytes per MUT second

  Productivity  79.9% of total user, 98.3% of total elapsed

gc_alloc_block_sync: 106881
whitehole_spin: 0
gen[0].sync: 6058
gen[1].sync: 35403

socket-0.8.x.x:
  17,841,885,664 bytes allocated in the heap
   1,600,537,528 bytes copied during GC
       2,891,128 bytes maximum residency (1034 sample(s))
         130,080 bytes maximum slop
              **11 MB total memory in use (0 MB lost due to fragmentation)**

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0     21484 colls, 21484 par    6.608s   2.069s     0.0001s    0.0016s
  Gen  1      1034 colls,  1033 par    3.910s   1.138s     0.0011s    0.0036s

  Parallel GC work balance: 12.09% (serial 0%, perfect 100%)

  TASKS: 18 (1 bound, 16 peak workers (17 total), using -N4)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.002s  (  0.002s elapsed)
  MUT     time   41.299s  (177.306s elapsed)
  GC      time    8.537s  (  2.687s elapsed)
  RP      time    0.000s  (  0.000s elapsed)
  PROF    time    1.981s  (  0.520s elapsed)
  EXIT    time    0.001s  (  0.001s elapsed)
  Total   time   51.821s  (179.996s elapsed)

  Alloc rate    432,017,544 bytes per MUT second

  Productivity  79.7% of total user, 98.2% of total elapsed

gc_alloc_block_sync: 116632
whitehole_spin: 0
gen[0].sync: 4744
gen[1].sync: 30230

(Sorry for jumping in again)
Hello @SX91, thanks for heads-up!
This is looks suspicious, but it would be nice if you provide your program or more
information about this issue, otherwise it's easy to get false assumptions.
Could you kindly provide us information about the system-view on the resource usage?
You can get it by running \time -v ./yourprogram. \ is needed so you run gnu time and
not bash builtin (in gentoo package sys-process/time homepage is https://www.gnu.org/directory/time.html  I hope it will help you to find the program).
Also I see that GC time grow much, and this is a terrible sing, however, afaiu you run
profiled version, can you build package without profiling support and run it with +RTS -s
and provide GC stats.  As an option can you show your program or minimal example so
we could analyze it.
Thanks!

socket-<IP_ADDRESS>:
❯ timeout -s INT 180 /usr/bin/time myprog +RTS -maxN2 -s -c -w -qa -qi3 -A2m -M150m -K1k
   9,669,582,064 bytes allocated in the heap
     397,211,104 bytes copied during GC
       8,057,824 bytes maximum residency (478 sample(s))
         770,592 bytes maximum slop
              28 MB total memory in use (6 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0      2719 colls,     0 par    0.877s   0.947s     0.0003s    0.0013s
  Gen  1       478 colls,     0 par    0.820s   0.843s     0.0018s    0.0054s

  Parallel GC work balance: -nan% (serial 0%, perfect 100%)

  TASKS: 9 (1 bound, 8 peak workers (8 total), using -N2)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.000s  (  0.001s elapsed)
  MUT     time    7.138s  (178.194s elapsed)
  GC      time    1.696s  (  1.790s elapsed)
  EXIT    time    0.000s  (  0.001s elapsed)
  Total   time    8.836s  (179.986s elapsed)

  Alloc rate    1,354,579,160 bytes per MUT second

  Productivity  80.8% of total user, 99.0% of total elapsed

gc_alloc_block_sync: 0
whitehole_spin: 0
gen[0].sync: 0
gen[1].sync: 0
8.83user 2.23system 3:00.00elapsed 6%CPU (0avgtext+0avgdata 31912maxresident)k
328inputs+0outputs (3major+9151minor)pagefaults 0swaps

socket-0.8.x.x:
❯ timeout -s INT 180 /usr/bin/time myprog +RTS -maxN2 -s -c -w -qa -qi3 -A2m -M150m -K1k
   8,245,124,384 bytes allocated in the heap
     391,462,176 bytes copied during GC
       1,651,208 bytes maximum residency (431 sample(s))
          85,536 bytes maximum slop
              12 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0      2313 colls,     0 par    0.871s   0.927s     0.0004s    0.0017s
  Gen  1       431 colls,     0 par    0.756s   0.778s     0.0018s    0.0032s

  Parallel GC work balance: -nan% (serial 0%, perfect 100%)

  TASKS: 9 (1 bound, 7 peak workers (8 total), using -N2)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.001s  (  0.001s elapsed)
  MUT     time    6.957s  (178.118s elapsed)
  GC      time    1.627s  (  1.705s elapsed)
  EXIT    time    0.000s  (  0.001s elapsed)
  Total   time    8.589s  (179.824s elapsed)

  Alloc rate    1,185,078,666 bytes per MUT second

  Productivity  81.0% of total user, 99.1% of total elapsed

gc_alloc_block_sync: 0
whitehole_spin: 0
gen[0].sync: 0
gen[1].sync: 0
8.58user 2.13system 3:00.00elapsed 5%CPU (0avgtext+0avgdata 21220maxresident)k
5864inputs+0outputs (25major+10422minor)pagefaults 0swaps

Hello @qnikst! I'm sorry, but now I don't have time to look deeper in this issue or write some test app to illustrate the problem.
Let's say I use UDP socket and use receiveFrom func to repeatedly get a packet with 65Kb buffer size (packet could be a lot shorter). There're N greenthreads (each with it's own socket) running this concurrently. Something like that.

Sorry it was my error can you give output of /usr/bin/time -v it return maximum memory being used by the program, this is needed to cross verify RTS results; feel free to copy only relevant things, there will be a lot of info in output. I see that total memory in use grows higher at least from RTS point of view, however now  GC time looks comparable, so previously it was largely affected by the profiling build.

@qnikst okay, look at https://github.com/SX91/haskell-socket-test/tree/<IP_ADDRESS>-memory.
0.8.x.x:
timeout -s INT 180 /usr/bin/time -v test-socket-0.8.x.x 30 +RTS -s -N2
     444,191,528 bytes allocated in the heap
      16,865,944 bytes copied during GC
       1,114,056 bytes maximum residency (2 sample(s))
          58,680 bytes maximum slop
               3 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0       553 colls,   553 par    0.127s   0.115s     0.0002s    0.0005s
  Gen  1         2 colls,     1 par    0.000s   0.001s     0.0003s    0.0003s

  Parallel GC work balance: 10.50% (serial 0%, perfect 100%)

  TASKS: 10 (1 bound, 8 peak workers (9 total), using -N2)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.000s  (  0.002s elapsed)
  MUT     time    5.283s  (179.882s elapsed)
  GC      time    0.127s  (  0.116s elapsed)
  EXIT    time    0.001s  (  0.001s elapsed)
  Total   time    5.411s  (180.000s elapsed)

  Alloc rate    84,081,320 bytes per MUT second

  Productivity  97.6% of total user, 99.9% of total elapsed

gc_alloc_block_sync: 111
whitehole_spin: 0
gen[0].sync: 3
gen[1].sync: 0
Command terminated by signal 2
	Command being timed: "test-socket-0.8.x.x 30 +RTS -s -N2"
	User time (seconds): 5.41
	System time (seconds): 7.11
	Percent of CPU this job got: 6%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 3:00.00
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 6376
	Average resident set size (kbytes): 0
	Major (requiring I/O) page faults: 0
	Minor (reclaiming a frame) page faults: 23426
	Voluntary context switches: 253099
	Involuntary context switches: 4169
	Swaps: 0
	File system inputs: 0
	File system outputs: 0
	Socket messages sent: 0
	Socket messages received: 0
	Signals delivered: 0
	Page size (bytes): 4096
	Exit status: 0

<IP_ADDRESS>:
timeout -s INT 180 /usr/bin/time -v test-socket-<IP_ADDRESS> 30 +RTS -s -N2
   5,101,627,824 bytes allocated in the heap
      81,955,288 bytes copied during GC
       1,300,008 bytes maximum residency (12 sample(s))
          66,496 bytes maximum slop
               9 MB total memory in use (4 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0      8905 colls,  8905 par    0.552s   0.548s     0.0001s    0.0002s
  Gen  1        12 colls,    11 par    0.003s   0.003s     0.0002s    0.0003s

  Parallel GC work balance: 38.25% (serial 0%, perfect 100%)

  TASKS: 9 (1 bound, 8 peak workers (8 total), using -N2)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.000s  (  0.002s elapsed)
  MUT     time    5.956s  (179.446s elapsed)
  GC      time    0.556s  (  0.551s elapsed)
  EXIT    time    0.000s  (  0.001s elapsed)
  Total   time    6.512s  (179.999s elapsed)

  Alloc rate    856,576,132 bytes per MUT second

  Productivity  91.5% of total user, 99.7% of total elapsed

gc_alloc_block_sync: 7132
whitehole_spin: 0
gen[0].sync: 428
gen[1].sync: 8
Command terminated by signal 2
	Command being timed: "test-socket-<IP_ADDRESS> 30 +RTS -s -N2"
	User time (seconds): 6.51
	System time (seconds): 7.58
	Percent of CPU this job got: 7%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 3:00.00
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 9876
	Average resident set size (kbytes): 0
	Major (requiring I/O) page faults: 0
	Minor (reclaiming a frame) page faults: 1834
	Voluntary context switches: 261833
	Involuntary context switches: 4330
	Swaps: 0
	File system inputs: 0
	File system outputs: 0
	Socket messages sent: 0
	Socket messages received: 0
	Signals delivered: 0
	Page size (bytes): 4096
	Exit status: 0


Support all types of chips outlines in the Material Design spec

build-in Choice chips as material guidelines.
Choice chips

choice chips need 2 feature,

select by click not keyboard space.
when user select, it can't be unselect anymore (like radio, toggle button)

for workaround i can do like this.
<mat-chip-list [formControl]="formControl" aria-label="Fish selection">
  <mat-chip #chip1="matChip" [selectable]="!chip1.selected" (click)="chip1.selectable && chip1.toggleSelected(true)" >One fish</mat-chip>
  <mat-chip #chip2="matChip" [selectable]="!chip2.selected" (click)="chip2.selectable && chip2.toggleSelected(true)" >Two fish</mat-chip>
  <mat-chip #chip3="matChip" [selectable]="!chip3.selected" (click)="chip3.selectable && chip3.toggleSelected(true)" >Primary fish</mat-chip>
  <mat-chip #chip4="matChip" [selectable]="!chip4.selected" (click)="chip4.selectable && chip4.toggleSelected(true)" >Accent fish</mat-chip>
</mat-chip-list>

When it is likely to be ready?


Test webview view api proposal

Refs #46585

[ ] Mac @RMacfarlane
[ ] Linux @sbatten
[ ] Windows @sandy081

Complexity: 5
Create Issue

Overview
The new webview view API allows extensions to contribute views build on webviews. For this exploratory test plan item, try using the new API and discovering what works and what doesn't. Areas to focus on:

Start with the webview view extension sample

Review the docs for the new apis in vscode.proposed.d.ts

Look at webview view lifecycle (and showing and hiding view)

Does the dispose lifecycle make sense?
Are events for show/hide fired when you expect?

Look at state management for the webview views

Make sure that webview state is persisted when: vscode is reloaded, a view is collapsed, a view is moved, a view is hidden.
Try using retainContextWhenHidden

I used retainContextWhenHidden but did not understand what difference it is making in the example. It would be nice if there is a sample that demonstrates it.


Documentation: invalid YML input format for section 'solution: projects: - project:'

Current Behavior
The description of section 'solution: projects:'
https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/5e02e850f2efa0bc2f4e2eb74cb3fad86132bd47/docs/YML-Input-Format.md?plain=1#L1532-L1550
does not match to what is allowed in the schema file (see the link below):
https://github.com/Open-CMSIS-Pack/devtools/blob/6b68c4980b9fe5ff99309a3ab1ad5cc0f550b57b/tools/projmgr/schemas/common.schema.json#L410-L426
Expected Behavior
Mentioned section should be reviewed and cleaned up.

@jkrech Not only under the setup node, also the project node itself in *.cproject.yml accept several properties: schema and documentation.
Just to make it clear, the project nodes that come under projects in *.csolution.yml are those that allow only for-context and not-for-context.

This needs to be clarified in the documentation.
csolution.yml:
solution:
  projects:
    project: ...

versus
cproject.yml:
project:
  ...
  setups:
    setup:


The bug is most sensors, and the complete driver code base needs a pass to

use px4_get_opts
Use PX4 log.
test argc > 1 and issue a usage warning.

I can do this

@mhkabir - 1) it might be advantageous to look at creating a helper class for use in all the drivers. The goal would be parameterising the command line parsing (just keep in mind the  need for separate data - we need it thread safe) 2) We should also look at a round up for an API using board provided bus mapping for SPI Buses/chip selects and I2C. We should have a call to discuss the second item.

For 1) see also https://github.com/PX4/Firmware/pull/7145

@bkueng Can you handle 1) in your pull request directly? It would probably be the path of least resistance.
For 2) @davids5, let's have a call later today.

I'll look into it but there are many drivers and I could use some assistance. In any case I first need a solution for running multiple instances of the same driver.

Hey, this issue has been closed because the label status/STALE is set and there were no updates for 30 days. Feel free to reopen this issue if you deem it appropriate.
(This is an automated comment from GitMate.io.)


PDOException: SQLSTATE[HY000]: General error: 17 database schema has changed (alpha7, phpunit, sqlite)

After updating from alpha5 to alpha7, my unit/integration tests fail to run.

php 5.6.29
propel 2.0.0-alpha7
phpunit 4.8.35
sqlite 3.14.0

For each test I reset the database using insert sql command on a local sqlite db.
The first test case runs fine. The second test case that uses the db in any way results in an error (If I do a test that does a select/count query for instance, but also on inserts):
PDOException: SQLSTATE[HY000]: General error: 17 database schema has changed

I've searched for causes and found this. So I tried to close all connections after updating the db for instance, but that doesn't help.
Some things have changed with PDO etc right? Could it be a problem with that?

disabling 'ATTR_PERSISTENT' => TRUE in my connection config seems to have fixed it


Datepicker for date/time fields

 Issue by Yog
Wednesday Jan 27, 2016 at 16:47 GMT
Originally opened as https://github.com/stxnext-csr/volontulo/issues/417

on offer creation there are fields:

Add datepicker which will support year/month/day and hour
and minutes possibly with 4 choices every 15 minutes
and seconds dont matter, so hide them this or otehr way

 Comment by nbbn
Friday Feb 26, 2016 at 21:33 GMT

I'm doing it!

Datepickers will be done in Angular, so if not, there will be a separate issue for that.


Support Ming Uni formula

See https://github.com/fontist/formulas/pull/150

Thank you @alexeymorozov !


Invalidating CDN cache needs compute.urlMaps.invalidateCache

https://github.com/sigstore/root-signing/pull/987 added invalidating the CDN cache after an update of TUF metadata. See https://github.com/sigstore/root-signing/actions/runs/6395838135/job/17360385511 for a failure.
Changes needed to be made:

[x] Short term - Add roles/compute.loadBalancerAdmin to<EMAIL_ADDRESS>[ ] Update Terraform to create custom role with compute.urlMaps.invalidateCache permission
[ ] Update TF to grant that role to<EMAIL_ADDRESS>(for staging sync, which is rarely run)
[ ] Update prod SA to use that custom role rather than LB admin

Also related is https://github.com/sigstore/root-signing/issues/957, to switch prod to a TF-managed SA.
cc @bobcallaway

Update to plan, will use tuf-sa service account instead of github-actions.

This is done as of 1984.


Crash when the ?, the punctuation mark, is considered as part of a link

https://github.com/vector-im/vector-ios/issues/320

lgtm