Garage Accessory Dissappearing

Hi,
I have a Node Bridge with just the Garage Door accessory that seems to disappear after 6 hours or so. I tried both Core.js and BridgedCore.js and the same result occurred. All the other accessories are still there but just Garage seems to have disappeared. Does anyone have a solution against this?

That's interesting, do you have the log from iOS when this happens?
Sent from my iPhone

On Jan 19, 2016, at 3:48 PM, Amruth Pabba<EMAIL_ADDRESS>wrote:
Hi,
I have a Node Bridge with just the Garage Door accessory that seems to disappear after 6 hours or so. I tried both Core.js and BridgedCore.js and the same result occurred. All the other accessories are still there but just Garage seems to have disappeared. Does anyone have a solution against this?
—
Reply to this email directly or view it on GitHub.

Nope, I don't have the log. Just FYI, I am on iOS 9.3 beta 1.1.

Next time when this happens, can you get the content from <IP_ADDRESS>:51826/accessories ?

All I am getting is
{"error": "not found"}

are you sure you copied the url right? there is no way you get "not found" for this ...

After restarting the node, heres the output
{"accessories":[{"aid":1,"services":[{"iid":1,"type":"0000003E-0000-1000-8000-0026BB765291","characteristics":[{"iid":2,"type":"00000014-0000-1000-8000-0026BB765291","perms":["pw"],"format":"bool","description":"Identify"},{"iid":3,"type":"00000020-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Default-Manufacturer","description":"Manufacturer"},{"iid":4,"type":"00000021-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Default-Model","description":"Model"},{"iid":5,"type":"00000023-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Garage Bridge","description":"Name"},{"iid":6,"type":"00000030-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Default-SerialNumber","description":"Serial Number"}]}]},{"aid":2,"services":[{"iid":1,"type":"0000003E-0000-1000-8000-0026BB765291","characteristics":[{"iid":2,"type":"00000023-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Garage Door Opener","description":"Name"},{"iid":3,"type":"00000020-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Liftmaster","description":"Manufacturer"},{"iid":4,"type":"00000021-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Rev-1","description":"Model"},{"iid":5,"type":"00000030-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"A1S2NASF88EW","description":"SN"},{"iid":6,"type":"00000014-0000-1000-8000-0026BB765291","perms":["pw"],"format":"bool","description":"Identify Accessory"}]},{"iid":7,"type":"00000041-0000-1000-8000-0026BB765291","characteristics":[{"iid":8,"type":"00000023-0000-1000-8000-0026BB765291","perms":["pr"],"format":"string","value":"Liftmaster Garage","description":"Name"},{"iid":9,"type":"0000000E-0000-1000-8000-0026BB765291","perms":["pr","ev"],"format":"int","value":1,"description":"BlaBla","maxValue":4,"minValue":0,"minStep":1},{"iid":10,"type":"00000032-0000-1000-8000-0026BB765291","perms":["pr","pw","ev"],"format":"int","value":1,"description":"BlaBla","maxValue":1,"minValue":0,"minStep":1},{"iid":11,"type":"00000024-0000-1000-8000-0026BB765291","perms":["pr","ev"],"format":"bool","value":false,"description":"BlaBla"}]},{"iid":12,"type":"00000062-0000-1000-8000-0026BB765291","characteristics":[{"iid":13,"type":"00000103-0000-1000-8000-0026BB765291","perms":["pr","ev"],"format":"uint16","value":1,"description":"Category","maxValue":65535,"minValue":1},{"iid":14,"type":"00000102-0000-1000-8000-0026BB765291","perms":["pr","ev"],"format":"string","value":"f2f312cf-a52e-4a0e-a5c7-923a4819e488","description":"Link Address"},{"iid":15,"type":"0000009C-0000-1000-8000-0026BB765291","perms":["pr","ev"],"format":"uint8","value":1,"description":"Link Quality","maxValue":3,"minValue":1},{"iid":16,"type":"00000104-0000-1000-8000-0026BB765291","perms":["pr"],"format":"uint8","value":1,"description":"Link Type","maxValue":255,"minValue":1},{"iid":17,"type":"00000063-0000-1000-8000-0026BB765291","perms":["pr","ev"],"format":"bool","value":true,"description":"Reachable"}]}]}]}

Interesting... so before restarting the node, you got {"error": "not found"} and after restart everything comes back?

yeah

@legotheboss can you share all the accessories files you got? based on your situation, it seems like one of those messed up the server maybe...

This is the main accessory file straight from the node. Sorry I had to ZIP it, github wouldn't accept the main .js file.
GarageDoorOpener_accessory.js.zip

not really sure what happens there, it looks fine. next time when you run hap-nodejs, can you try run it with debug flag so we can get more logs and see what's wrong?

I was able to fix it just by reinstalling HAP-NodeJS, something was being funky... A reinstall has completely fixed it and haven't has an issue since :)


Prefill oidc scope with openid

Description
Changes proposed in this pull request:

Add default oidc scope
Add AuthForm test cases
...

Related issue(s)

/retest

/retest

/test pre-busola-core-ui


Fix openmetrics v2 service check: there shouldn’t be any host

What does this PR do?
Remove host from openmetrics v2 metrics when executed as a service check.
Motivation
Service checks should never attach a host to the metrics they emit. Or at least, not the host of the cluster check runner that has executed the check.
Additional Notes
Describe how to test/QA your changes
Add AD annotations with openmetrics_endpoint and not prometheus_url on a k8s Service to schedule an openmetrics V2 check.
Validate that no host is attached to the metrics.
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached
[ ] If the PR doesn't need to be tested during QA, please add a qa/skip-qa label.

To keep context within the PR, as there was some offline discussion:
Checks based on the base AgentCheck already set the hostname to an empty string unless explicitly set when submitting a metric: https://github.com/DataDog/integrations-core/blob/83d570f4057d1ba61bd643fd0f76959601fc96d7/datadog_checks_base/datadog_checks/base/checks/base.py#L666-L667
The OpenMetricsV2 class is the one that's passing self.hostname along to the agent, which is inconsistent with what AgentCheck does, and, as @L3n41c pointed out, plays against what the agent expects.
Therefore, it seems better to simply make OpenMetricsV2 always set the hostname to an empty string by default to be consistent with AgentCheck and to let the agent handle this responsibility.

@alopezz I’ve just updated this PR to move the fix in the openmetrics v2 specific code base to not touch the AgentCheck base class: https://github.com/DataDog/integrations-core/pull/13146/files#diff-c492f3334379c5b134abbeb99ddea95421fa9a0b9b8bdbf4e510f9a19bd9571f

/azp help

/azp list


Examples

Hi,
Trying to wrap my head around this to see if I can use. Wanted to know if had any examples or tutorials?

Closing because of no feedback.


Sentry logs not printted inside console [IOS]

Platform IOS only
Dart
Obfuscation
Enabled
Debug Info
Enabled
Doctor
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.3)
[✓] IntelliJ IDEA Community Edition (version 2021.3.2)
[✓] VS Code (version 1.84.2)
[✓] Connected device (4 available)
[✓] Network resources
Version
7.12.1
Steps to Reproduce
    await SentryFlutter.init(
      (options) {
        options..dsn = envConfig.sentryDsn
        ..tracesSampleRate = envConfig.sentryTracesSampleRate
        ..environment = appConfig.appFlavor.name
        ..dist = "name"
        ..debug = true;
      },
      appRunner: appRunner,
    );

When i am reporting
sentryConfig.report(error, stackTrace)
Its not print to console inside the ide
Expected Result
Printed into console
Actual Result
Nothing printed
Are you willing to submit a PR?
None

Hi!
could you show what sentryConfig.report(error, stackTrace) contains?
Is that a function that calls Sentry.captureException?

However, I can confirm though that it doesn't work.
On Android it works where the native SDK prints logs but not the native iOS SDK.

@krystofwoldrich have you ever encountered something similar in react-native?

I'm closing this, feel free to comment if you still have questions


Change initialQuorumSize to initialGroupSize in docs. Resolves https:…

…//github.com/spring-cloud/spring-cloud-stream/issues/2329
Hi! In this commit I changed initialQuorumSize to initialGroupSize in the overview.adoc file, as per the issue #2329.
Thanks for taking the time to look at it.

Looks good. Thank you for this PR. Merged upstream.


[Documentation] Works without @babel/plugin-transform-modules-commonjs

I confirmed this package works without @babel/plugin-transform-modules-commonjs on Docusaurus 2.0.0-beta.3.
I'm not familiar with babel so I can’t describe how it works.
My environment:
 "dependencies": {
    "@docusaurus/core": "2.0.0-beta.3",
    "@docusaurus/plugin-pwa": "^2.0.0-beta.3",
    "@docusaurus/preset-classic": "2.0.0-beta.3",
    "@mdx-js/react": "^1.6.21",
    "@saucelabs/theme-github-codeblock": "^0.0.4",
    "@svgr/webpack": "^5.5.0",
    "clsx": "^1.1.1",
    "file-loader": "^6.2.0",
    "prism-react-renderer": "^1.2.1",
    "raw-loader": "^4.0.2",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "rehype-katex": "^5.0.0",
    "remark-custom-blocks": "^2.5.1",
    "remark-math": "^4.0.0",
    "url-loader": "^4.1.1"
  },

(sorry for bad English)

I also just tried this, can also confirm it works. 👍

Thanks for confirming. Anyone up to raise a PR with an update?


Update default value for variance/skew/kurtosis

Previously, variance/skewness/kurtosis have a default value of zero, even if their value is incomputable based on the sample size. This changes the default value to NaN when these statistics cannot be computed on the data.

When variance, skewness, and kurtosis are np.nan due to indeterminate values in the dataset, future updates on these statistics should be ignored. This will be included in a separate PR.


Caffe2 Profiles

Enable dynamic modification of OperatorDef attributes based on platform or SoC name

@caffe2bot retest this please

@caffe2bot retest this please


Clears meeting-models in related repos

@FinnStutzenstein please review. I have noticed, that the lifecycle-fix (3979734) deletes models in the datastore.service, but it does not delete models in the related repos. Therefore, the models was still seen in view-model-lists.
With this PR the described behavior will be prevented.

I updated this and furthermore implemented, that a full-list update will check, if some view-models are destroyed (and the client got no autoupdate).

@FinnStutzenstein Please review again. I looked into the ModelRequestBuilder and make already changes to it to have ModelRequests separated from a list of full-updated collections.
I hope, this changes are like your intentions.


Remove --appversion from README instruction

For easier maintenance, so that just changing in the Makefile is enough to bump versions.

@grydz Can you please review + merge ?


fix: Input adding aria-label to clickable examples for a11y pass in Storybook

Codecov Report

Merging #868 (478c5cd) into dev (dac39a9) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #868   +/-   ##
=======================================
  Coverage   86.96%   86.96%
=======================================
  Files         175      175
  Lines        4551     4551
  Branches     1554     1554
=======================================
  Hits         3958     3958
  Misses        292      292
  Partials      301      301

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


node-red-contrib-modbus running problem with electron-node-red

I'm submitting a problem with node-red-contrib-modbus running problem with electron-node-red  (check one with "x")
Support/Advice

support/advice request => Please do not submit support requests here, instead use the link to our support page, please!

Feature

( ) feature request

What is the motivation / use case for changing the behavior?

Simple question to get some hint

( ) simple question => please visit the Wiki, the YouTube tutorials and the Info tab by clicking on the node inside Node-RED before
(x) help wanted => you read all information and watched relevant YouTube tutorials, but you need more help

Problem

( ) bug report => node-red-contrib-modbus running problem with electron-node-red
( ) unexpected behavior => please visit the Wiki before

Current behavior

node-red-contrib-modbus work well on node-red platform, but node-red-contrib-modbus can not reconnect with device after
packed by electron-node-red. all other nodes can be packed and work well by electron-node-red except node-red-contrib-modbus. I do not think this is node-red-contrib-modbus design problem, but I'd like to debug it to find out what's problem why node-red-contrib-modbus can't be packed correctly, so I ask where is the code related function to make node-red-contrib-modbus always keep live whether device is online or not online.
you may see my problem here:  https://github.com/dceejay/electron-node-red/issues/16
Expected behavior

Minimal reproduction of the problem with instructions

Your Environment
Please tell us about your environment:

(x ) I am using just the Node-RED package and got modbus-serial package installed with it
( ) I have installed modbus-serial package global from source (using git clone)

( ) I have installed modbus-serial as a global package (using npm i -g)

Yes, modbus-serial is the name but it does all, TCP and Serial.
The node-modbus package is just for the Modbus Server node.

Device :

( ) macOS: v
( ) Linux: v
(x) Windows: v
( ) Raspbian: v
( ) Other:

Name:
Version:

Description of the connecting Modbus system:

Name   : Siemens PLC, S7-1200
Version: 4.0
Vendor : Siemens
Link   : https://

node-red-contrib-modbus version: v5.14.0

Node: (v14.x)
node --version = vv12.19.0

We have no Windows - we support Linux and macOS only - Sorry


SSL certificate problem

Next exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 60: SSL certificate problem: unable to get local issuer certificate' in D:\wamp\www...\vendor\guzzlehttp\guzzle\src\Exception\RequestException.php:51

this is an environmental problem. See some ways to solve it here


arc_padding No resource identifier found for attribute

Error:(17) No resource identifier found for attribute 'arc_padding' in package

it does not exist anymore

I updated the README 👍
thanks


Add survival map to x1t_sr1 source

PR Description:
Added the possibility to include a survival map to better model the electron_detection_efficiency function

Hello Cecilia! The PR looks good and should be very useful, however I think x1t_sr1.py should not have this modification since the maps refer to the nT maps while the sources are for 1T. I believe we should create a new nT source file for base nT sources that takes a private nT configuration file.
I hope we can do that soon and that @plt109 agrees.

I agree with you @CristianAntochi
I can also help with this!


Grab deferrral at the start of the request

This fixes a race condition around handling requests, caused by not grabbing the deferral.
Following example at https://docs.microsoft.com/en-us/windows/uwp/launch-resume/how-to-create-and-consume-an-app-service

 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: iospulbe sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


terminalStore

Closed by #4653 which was merged successfully but due some glitch status didn't update.


Crash when trying to access Desmene Hierarchy panel

Describe the bug
In a castle or a village if I click on Desmene Hierarchy the game crashes. It appeared mid game after I got my second settlement.
Mod Version

Standard
Numeric Version: <IP_ADDRESS>

Evidence

[x ] The mod is present in the callstack;
[ x
crashreportbk3.zip
] The issue only happens with the mod activated;
[ ] You tested it with the least amount of other mods as possible.

Crash Report
If the issue is a crash, not posting a report or callstack is wasting everyone's time.

crashreportbk3.zip
(for a reason the crashreport appeared in the middle of the text in the previous message)

Update:
The problem is ONLY in Veron Castle and its dependent villages.
If I go to another town or settlement the panel works but : VERON CASTLE is nowhere to be seen (I suppose it should be in the western empire tree).

Found something in the crashreport :
BK calls for a local file which obviously will never be on my computer  :
at ExplainedNumber BannerKings.Models.Vanilla.BKInfluenceModel.GetMinimumPeersQuantity(Kingdom kingdom, bool explanations) in C:/Users/Rodrigo/source/repos/bannerlord-banner-kings/BannerKings/Models/Vanilla/BKInfluenceModel.cs:line 55
at void BannerKings.UI.Titles.DemesneHierarchyVM.RefreshValues() in C:/Users/Rodrigo/source/repos/bannerlord-banner-kings/BannerKings/UI/Titles/DemesneHierarchyVM.cs:line 114
crashreport4.zip
Don't know who is "Rodrigo" but he sure ain't on my users list :-)


Update: Sev Guide

will address this too, tonight/tomorrow.
Update SEV guide:
https://github.com/packethost/docs/blob/master/guides/amd-sev-deploy.md
notes in ticket: https://support.packet.com/agent/go/ticket/39636

done, PR-264


Fix draw() ambiguity by renaming both funcitons.

draw() and draw(NVGcontext* nvg) do two different things and it was confusing to me at first.
I suggest changing both names to clarify what their purpose is.
I was unable to setup coroutines on my system so the affected examples are untested.

Overloaded functions should do comparable things.
Rename draw() to draw_opengl() and draw_nanovg() respectively.

My IDE also removed trailing whitespaces, I can rebase the changeset if you want to keep them.

Thanks for the suggestion. Personally, I think it's ok. The NVGContext* nvg argument makes it rather clear that that version is for drawing with NanoVG. Both functions are described in header file as well. I'm going to keep it the way it is for now unless it becomes a real issue.
PS: You should definitely try to get coroutines working! They're one of the coolest features of mahi-gui and some of the best demos are made with coroutines. Clang and MSVC support them.

Thanks for the feedback. On linux build files are a bit strict concerning coroutines and most distros don't ship experimental library features. I will check them out the next time I boot win though. Also I am writing a python wrapper for this so coroutines wouldn't map nicely anyways... (Plus Python has a global interpreter lock and can not run Python code in parallel. Concurrence works though)
For now I am grateful that someone wrote a multi purpose imgui plotting library which I can use to replace my beefed up imgui-plots version. It reached its sensible limits and would have required a rewrite anyways.

I'd be interested in seeing the Python if you'd be willing to share it when it's done.

It's already open source JoelLinn/py-mahi-gui
It doesn't build with MSVC though at the moment.


Enable in-editor simulated boundary

Customer question from slack
"Is there any way to display test boundary in editor (similar to test scene understanding data)?"
Today. the mechanism for getting boundary data in playmode is to trace your boundary using a VR headset and then have the headset attached when entering playmode.
MRTK v3 should consider providing one or more test boundary data sets to use when testing without an HMD.

We appreciate your feedback and thank you for reporting this issue.
Microsoft Mixed Reality Toolkit version 2 (MRTK2) is currently in limited support. This means that Microsoft is only fixing high priority security issues. Unfortunately, this issue does not meet the necessary priority and will be closed. If you strongly feel that this issue deserves more attention, please open a new issue and explain why it is important.
Microsoft recommends that all new HoloLens 2 Unity applications use MRTK3 instead of MRTK2.
Please note that MRTK3 was released in August 2023. It features an all new architecture for developing rich mixed reality experiences and has a minimum requirement of Unity 2021.3 LTS. For more information about MRTK3, please visithttps://www.mixedrealitytoolkit.org.
Thank you for your continued support of the Mixed Reality Toolkit!


feat: generate to and from seed_phrase

This allows creating keys with seed phrases and generating seed phrases.
This will be very useful for the new CLI redesign needed to access keys from user's seed phrases and allows for deterministically generating seed phrases for testing purposes.
This PR is dependent on #48 and #46

Does this implement SEP-5?
I think this logic should go into a new crate as this is independent of strkeys. You could create that crate. 👏🏻

Thanks for the link!  Currently I almost does, just the path derivation isn't being followed.
@leighmcculloch Should it be added in this org? Otherwise I can create one in the AhaLabs org.

@leighmcculloch Should it be added in this org? Otherwise I can create one in the AhaLabs org.

Doesn't need to be hosted in the stellar org, definitely feel free to host it on the AhaLabs org.


Complete dev and prod namespaces in K8s

Currently using different service.yaml and postgresql.yaml files for dev and prod namespaces.
This will be cleaned and streamlined when working on the automated CD pipelines.
Port for dev is 31001.
Port for prod is 31002.
Merging this PR will close #51 and #52.

Codecov Report

Merging #105 (bb9146a) into master (521a6ff) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
- Coverage   98.66%   98.65%   -0.01%
==========================================
  Files           7        7
  Lines         299      297       -2
==========================================
- Hits          295      293       -2
  Misses          4        4

Impacted Files
Coverage Δ

service/models.py
100.00% <ø> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Some weird CodeCov coverage comment. If you select the affected file, the following message is displayed:

No Files covered by tests were changed


Cannot monitor URLs with a CNAME record

I'm seeing HTTPS monitoring failures for any URL where the domain is a CNAME record.
Uptime-kuma keeps reporting an error "getaddrinfo EAI_ADDRFAMILY" which makes no sense. It can be reached with other tools (curl, etc)
This is version 1.23.13 running on FreeBSD

EAI_ADDRFAMILY
The specified network host does not have any network
addresses in the requested address family.

Have you made sure that what the CNAME is pointing at is valid?


Convert Note, Pagination and Popover to styled-components

Task Description
Convert Note, Pagination and Popover component from scss to styled-components.
To Note
Styled-component migration guidelines:

Styled-components should be a separate file called Styles.ts
When importing styled-components to component file, should use `import * as S from ‘./Styles’.
Use semantic naming for styled-components
Try to maintain alphabetical order for css properties
Avoid creating styled-components for HTML elements that do not require styling
Can refer to src/components/Avatar/Styles.ts for examples
Please ensure that the existing UI is not affected, then only seek for reviews

Please only work on the issues that you are assigned to, PRs will be ignored if you are not assigned to the task. If the assigned issues have not been worked on for more than 3 days, we will remove the assignment.

Ah okay! My bad, didn't see it. Unassigned.

Can I work on this?

@jamessspanggg @thesanjeevsharma I would like to work on this issue. Can anyone of you assign me to this issue?

@lokeshn011101 since you've already made a contribution for hacktoberfest, we cannot assign another hacktoberfest issue to you until 25th Oct. But feel free to pick up other issues; you can still earn bounty. :)

Can I work on this?

Can i take this one? (It would be my second first-timers-only)

@Creatinas go ahead, no problem.

@Creatinas is this PR ready to be reviewed?

@Creatinas what is your TNB Account Number?

@manishram 679aff9a630beb883cc10368a2dedb7722e63b682143ae9fd2e051c13b710752


Coalesce all witness fields to Proof.witness

P2PK, P2SH, and HTLC witnesses are now all stored in the same field Proof.witness. Further structure inside Proof.witness specific to each spending condition type is encoded as JSON.
Closes #340

https://github.com/cashubtc/nuts/pull/40 synched to changes here


ssw alignments returning incorrect aligned sequences

Alignments with indels are not producing the correct aligned sequences in some cases
from skbio.alignment import StripedSmithWaterman

q = 'GTGACCGCCCCTAGGCTGCAGAGGCCCTTCCAGTGTCG'
t =  'GTGACCCGCCCTATGGCTGAGAGGCCCTTCCAGTGTCG'
query = StripedSmithWaterman(q)
alignment = query(t)
alignment.target_sequence
'GTGACCCGCCCTATGGCTGAGAGGCCCTTCCAGTGTCG'
alignment.query_sequence
'GTGACCGCCCCTAGGCTGCAGAGGCCCTTCCAGTGTCG'
alignment.aligned_target_sequence
'GTGACCCGCCCTATGGCT-GAGAGGCCCTTCCAGTGTCG'
alignment.aligned_query_sequence
GTGACCGCCCCTA-GGCTGCAGAGGCCCTTCCAGTGTCG
alignment.cigar
'13M1D5M1I19M'

These sequences do not match the cigar string nor do they match the actual optimal alignment.
The insertion is positioned incorrectly, resulting in the alignment:
GTGACCGCCCCTA-GGCTGCAGAGGCCCTTCCAGTGTCG
||||||xx|||||x||||xx|||||||||||||||||||
GTGACCCGCCCTATGGCT-GAGAGGCCCTTCCAGTGTCG
The correct aligned sequences should be:
'GTGACCCGCCCTATGGCTG-AGAGGCCCTTCCAGTGTCG',
and
'GTGACCGCCCCTA-GGCTGCAGAGGCCCTTCCAGTGTCG'

Thanks for the report @jeshleman-sgmo, I can't believe this went unnoticed for as long as it did. You are absolutely right about the CIGAR string/alignment.


Lighting Effects not Working

I'm on Beat Saber 1.21. A pretty new player to the game, and I modded it pretty quickly. Used Mod Assistant to install technicolor, and it was beyond amazing, easily my favorite mod (thanks btw), but at some point, the mod just stopped working. Gradient walls work (I think), and there seems to be a gradient sort of bloom going beneath me, but I don't know what I updated or changed to make it stop working.
I tried uninstalling any mod that was not core except for technicolor, and it produced the same result: when I play a level, I'm left with a bright room with the default colors and no lighting effects whatsoever. I can't find the setting for static lights, and I cannot for the life of me find anything else that would have caused it.
This is what I see

Please include a log file for when this occurs

2<IP_ADDRESS>.38.05.log
Attached is my latest available log. If you need more logs or more information I'll be available. Thanks for the help!

Sorry but the current version of Chroma (v2.5.16), which Technicolor relies on, is incompatible with Beat Saber v1.21, you'll have to update your game to v1.22


Remove reset suggestions from dictionary toggle

Closes https://github.com/ethyca/fides/issues/3962
Description Of Changes
Removes the "reset suggestions" option from the dictionary toggle menu.
https://github.com/ethyca/fides/assets/24641006/480afcbd-e444-4d98-b34b-d616a33cbf8c
Code Changes

[x] Remove code for "reset suggestions" option
[x] Clean up types just a little bit

Steps to Confirm

Run fidesplus with the proper environment variables to enable the dictionary service
Add a system and choose from the vendor list
The sparkle button should now be clickable. Click it and you should only see one option (no more "reset suggestions")

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation:

[ ] documentation complete, PR opened in fidesdocs
[ ] documentation issue created in fidesdocs

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md
[ ] For API changes, the Postman collection has been updated

Closing because this work was handled in #4007


Insert New Line Settings Not Working

in my .stylsrc file I have included the two following lines:
  "insertNewLineAroundBlocks": false,
  "insertNewLineAroundOthers": false,

Other settings are working and I can change them and save and I will see the changes reflected immediately in my .styl file, but not the two settings above.

Have you tried https://thisismanta.github.io/stylus-supremacy/ yet?

I'm closing this issue as it works fine on my end.

I’m sorry, I have had a busy week. Yes, that is what I formatted my Ike after, and it was not working. Others settings did though, such as “brackets”: true

Would you mind sharing your Stylus code and its expectation, please?

.subheading {
	padding-top: 1rem
}

.index-heading {
	color: purple
	padding-top: 5rem
	text-align: center
}

.cards {
	display: flex
	flex-wrap: wrap
	justify-content: center
	padding-top: 3rem
}

On the playground link you shared, it comes out to:
.subheading {
  padding-top: 1rem
}
.index-heading {
  color: purple
  padding-top: 5rem
  text-align: center
}
.cards {
  display: flex
  flex-wrap: wrap
  justify-content: center
  padding-top: 3rem
}

Which is what I would expect to happen

You want it to be like the below after formatting. Plus, you only have styling rules in .stylintrc file. Am I correct?
.subheading {
	...
}

.index-heading {
	...
}

.cards {
	...
}


Update UserResouce to include more options.

When a user joined the program.
When a user left the program.

Code looks OK.
r+ :rocket:

Merci :beers:


Code and setting optimizations

Hello everyone,
Language/engine features seem to be very controversial and give us a lot of different opinions. Because of that, I have decided to use default settings for every language/engine but I also decided to create a new branch where code and settings optimizations will be allowed. It includes disabling some features (Unicode support for example) or enabling specific mechanics(JIT for example), but the measure, style, and regex patters will be the same.
At this point, we have two benchmarks, the first for comparing default settings and the second to push the benchmark until the limit for this specific scenario.
Results for both benchmarks will be in master readme.
I will work on it the next days but I accept PR for the new branch optimized from now.

Published optimized version including C PCRE, Rust and C# optimizations. https://github.com/mariomka/regex-benchmark/tree/optimized


Rebuild the custom_components

I have a custom component in my configuration folder and a panel for this component in the panels folder. However when I change something in the panel and restart the homeassistant the change is not loaded. In the frontend of the homeassistant the panel is without the change even after the restart. Any idea how to rebuild the custom_components ?

This issue tracker is for issues with components or code that's already in HA.
I would suggest creating a post in the forum or ask in the gitter chat.

@Landrash nah it's fine. Panels is part of the core.
@chorbar make sure you are running your frontend in development mode to avoid your panel being cached:
http:
  development: 1

Alternative, in the Chrome dev tools -> network tab -> disable caching could also help.

Has this been resolved?


ADR: Model groups in Active Directory

It is taking too long to get a decisio on which Acitve Directory group to use for this, we are changing approach on this for the momennt. Closing this for now.


Address validation for the network module

Description
We currently do not validate the network addresses in the config file. So, if a user enters an incorrect address, the node won't start (an incorrect listen address can even cause a system crash). We need to ensure all addresses, both relay and listen addresses, are valid in the SanityCheck function.
How To Reproduce

Open the config file.
Change the listen addresses and relay addresses to an incorrect string.

What Happened
The node didn't start. It may also cause a system crash.
Expected Behavior
Should return invalid address error before starting the node.
Write tests for the invalid addressess.

check: #565

@b00f we can close it now!


[Suggest] Allow disable http proxy auto detect.

Currently the application always uses system proxy settings. This is fine on most scenary.
However On my setup. I have a global system proxy enabled. But for CDL, I use a hook/wfp based proxy software to hijack its connection(because it uses a seprated proxy server made for CDL).
It's impossible to access system proxy through hijacked connection since this means access a proxy through another proxy.
Though CDL seems auto fallback to normal connection without proxy when it can't be accessed, it still better to do NOT do this at first place.

Would be easier to know what software you are using - and how i could replicate your "problem" to help you


Build an example of communication between aepp and Base aepp based on custom URL schema

implemented in #1219


Error running script  -  !! Inside bracket with invalid state; skipping!

Trying to run this script, but keep getting the following error i think,
Using configuration file: /mnt/user/MULTIMEDIA/Scripts/trash-updater/src/trash.yml
Config file could not be loaded because it does not exist
Using markdown page: Sonarr-Release-Profile-RegEx-Anime

Parsing Header [Text: Anime Delete] [Depth: 2]
Parsing Header [Text: Media Management] [Depth: 2]
Parsing Header [Text: Suggested naming scheme] [Depth: 3]
Parsing Header [Text: Anime Episode Format] [Depth: 4]

!! Inside bracket with invalid state; skipping! [Profile Name: None] [Category: TermCategory.Preferred] [Score: None] [Line: {Series TitleYear} - S{season:00}E{episode:00} - {absolute:000} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}[{Mediainfo AudioCodec} { Mediainfo AudioChannels}]{MediaInfo AudioLanguages}{-Release Group}]

Parsing Header [Text: Series Folder Format] [Depth: 4]

!! Inside bracket with invalid state; skipping! [Profile Name: None] [Category: TermCategory.Preferred] [Score: None] [Line: {Series TitleTheYear} [tvdb-{TvdbId}]]

Parsing Header [Text: Season Folder Format] [Depth: 4]

!! Inside bracket with invalid state; skipping! [Profile Name: None] [Category: TermCategory.Preferred] [Score: None] [Line: Season {season:00}]
!! Inside bracket with invalid state; skipping! [Profile Name: None] [Category: TermCategory.Preferred] [Score: None] [Line: Scene]

Parsing Header [Text: Quality Profile] [Depth: 2]
Parsing Header [Text: Indexers] [Depth: 2]
Parsing Header [Text: Release Profiles] [Depth: 2]

New Profile [Text: Release Profiles]

Parsing Header [Text: First Release Profile] [Depth: 3]

New Profile [Text: First Release Profile]
"Include Preferred" found [Value: True] [Line:     DO Check mark Include Preferred when Renaming on this release profile.]
Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [500]]
Score [Value: 500]

Capture Term [Category: TermCategory.Preferred] [Score: 500] [Strict: False] [Term: /(multi[ ._-]?audio)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [0]. This is for renames only and why it is at 0. It is also added in the second profile. This one is to ensure that the preferred words get added.]
Score [Value: 0]

Capture Term [Category: TermCategory.Preferred] [Score: 0] [Strict: False] [Term: /(dual[ ._-]?audio)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [100]/[-10000]]
Score [Value: 100]

Capture Term [Category: TermCategory.Preferred] [Score: 100] [Strict: False] [Term: /(uncut|unrated|uncensored|\b(AT[-_. ]?X)\b)/i]

Parsing Header [Text: Second Release Profile] [Depth: 3]

New Profile [Text: Second Release Profile]
"Include Preferred" found [Value: False] [Line:     DO NOT Check mark Include Preferred when Renaming]

Parsing Header [Text: Must Not Contain] [Depth: 4]

Category Set [Name: TermCategory.Ignored] [Line: #### Must Not Contain]

Capture Term [Category: TermCategory.Ignored] [Term: /([EMBER]|-EMBER\b|DaddySubs)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(BDMV|M2TS|\bSSA\b|\bVOSTFR\b|\bAbemaTV\b)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(CuaP|PnPSubs|ICEBLUE|SLAX|U3-Web)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(Raws-Maji|\bKRP\b|M@nI|Kanjouteki|PuyaSubs)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /\b(Beatrice|ohys|Kawaiika|neko|daddy)[ ._-]?(raws)\b/i]
Capture Term [Category: TermCategory.Ignored] [Term: /\b(LowPower|Scryous)[ ._-]?(raws)\b/i]
Capture Term [Category: TermCategory.Ignored] [Term: /\b(NS|AREY|BDMV|BDVD|BJX|DKB|DP|TnF)\b/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(Amb3r|DsunS|ExREN|$tore-Chill)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /([Hatsuyuki]|-Hatsuyuki\b|[Hitoku]|-Hitoki\b)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /([Foxtrot]|-Foxtrot\b|HollowRoxas|\bMGD\b)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(JacobSwaggedUp|KEKMASTERS|[Mites]|-Mites\b)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(neoHEVC|Pantsu|[Pao]|-Pao\b|Plex Friendly)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(Rando235|RandomRemux|Reaktor|RightShiftBy2)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(\bSHFS\b|StrayGods|\bUQW\b|Yabai_Desu_Ne)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(YakuboEncodes|\b(WtF[ ._-]?Anime)\b)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /((funi|eng(lish)?)_?dub|\bdub(bed)?\b)/i]
Capture Term [Category: TermCategory.Ignored] [Term: /(Golumpa|torenter69|KamiFS|KaiDubs)/i]

Parsing Header [Text: Preferred] [Depth: 4]

Category Set [Name: TermCategory.Preferred] [Line: #### Preferred]
Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [501]]
Score [Value: 501]

Capture Term [Category: TermCategory.Preferred] [Score: 501] [Strict: False] [Term: /dual[ ._-]?audio|EN+JA|JA+EN/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [100]]
Score [Value: 100]

Capture Term [Category: TermCategory.Preferred] [Score: 100] [Strict: False] [Term: /\b(?:(BluRay|Blu-Ray|BDMux|BD(?!$))|(BDRip)|(BRRip))(?:\b|$|[ .])/ix]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [15]]
Score [Value: 15]

Capture Term [Category: TermCategory.Preferred] [Score: 15] [Strict: False] [Term: /\b(WEB[-_. ]DL|WEBDL|WebHD|[. ]WEB[. ](?:[xh]26[45]|DDP?5[. ]1)|. $|\d+0p(?:WEB-DLMux|\b\s/\sWEB\s/\s\b))/ix]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [10]]
Score [Value: 10]

Capture Term [Category: TermCategory.Preferred] [Score: 10] [Strict: False] [Term: /(WebRip|Web-Rip|WEBMux)/ix]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [5]]
Score [Value: 5]

Capture Term [Category: TermCategory.Preferred] [Score: 5] [Strict: False] [Term: /\b(?:(1080p|1920x1080|1440p|FHD|1080i|4kto1080p))\b/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [4000]]
Score [Value: 4000]

Capture Term [Category: TermCategory.Preferred] [Score: 4000] [Strict: False] [Term: /(deanzel|\bZR\b|\bCTR\b|\bSCY\b|\bMK\b|TTGA)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 4000] [Strict: False] [Term: /(\bShir\b|LostYears|BluDragon|KAWAiREMUX)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 4000] [Strict: False] [Term: /(\bAC\b|ShadyCrab|Rasetsu|Raizel|Dragon-Releases)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 4000] [Strict: False] [Term: /([Spark]|-Spark\b|\bREVO\b|\bSRLS\b|ANThELIa)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 4000] [Strict: False] [Term: /([Vanilla]|-Vanilla\b|\bAP\b)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [3750]]
Score [Value: 3750]

Capture Term [Category: TermCategory.Preferred] [Score: 3750] [Strict: False] [Term: /(E[.-]N[.-]D)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [3500]]
Score [Value: 3500]

Capture Term [Category: TermCategory.Preferred] [Score: 3500] [Strict: False] [Term: /(\bHAiKU\b|Exiled-Destiny|\b(E-D)\b|Koten[ ._-]Gars)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 3500] [Strict: False] [Term: /([GHOST]|-GHOST\b|[NPC]|-NPC\b|\bCBM\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 3500] [Strict: False] [Term: /(\bKH\b|\bCBT\b|naiyas|ShowY|Kametsu|\bPn8\b|Hark0N)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [3000]]
Score [Value: 3000]

Capture Term [Category: TermCategory.Preferred] [Score: 3000] [Strict: False] [Term: /(\bDHD\b|RedBlade|TENEIGHTY|WaLMaRT)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 3000] [Strict: False] [Term: /(\bBMF\b|[STRiFE]|-STRiFE\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 3000] [Strict: False] [Term: /(MKVULTRA|iAHD|ANiHLS)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [2500]]
Score [Value: 2500]

Capture Term [Category: TermCategory.Preferred] [Score: 2500] [Strict: False] [Term: /([YURASUKA]|-YURASUKA\b|karios|Arukoru)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 2500] [Strict: False] [Term: /(\bRH\b|[Prof]|-Prof\b)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [2000]]
Score [Value: 2000]

Capture Term [Category: TermCategory.Preferred] [Score: 2000] [Strict: False] [Term: /(DragsterPS)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [1500]]
Score [Value: 1500]

Capture Term [Category: TermCategory.Preferred] [Score: 1500] [Strict: False] [Term: /(xPearse|\bMCR\b|\bKS\b|KiyoshiStar)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [1000]]
Score [Value: 1000]

Capture Term [Category: TermCategory.Preferred] [Score: 1000] [Strict: False] [Term: /(\b(A-L)\b)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [300]]
Score [Value: 300]

Capture Term [Category: TermCategory.Preferred] [Score: 300] [Strict: False] [Term: /(Erai-raws|KAN3D2M)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [250]]
Score [Value: 250]

Capture Term [Category: TermCategory.Preferred] [Score: 250] [Strict: False] [Term: /(HorribleSubs|SubsPlease|SallySubs)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [200]]
Score [Value: 200]

Capture Term [Category: TermCategory.Preferred] [Score: 200] [Strict: False] [Term: /([Mysteria]|-Mysteria\b|Asenshi)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 200] [Strict: False] [Term: /([meta]|-meta\b|BlueLobster)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [150]]
Score [Value: 150]

Capture Term [Category: TermCategory.Preferred] [Score: 150] [Strict: False] [Term: /(\bGJM\b|kBaraka)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [100]]
Score [Value: 100]

Capture Term [Category: TermCategory.Preferred] [Score: 100] [Strict: False] [Term: /(\bCH\b|\bFFF\b|Licca|Soldado|SNSbu)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 100] [Strict: False] [Term: /(Coalgirls|BlurayDesuYo|DameDesuYo|\bPAS\b)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [50]]
Score [Value: 50]

Capture Term [Category: TermCategory.Preferred] [Score: 50] [Strict: False] [Term: /([Orphan]|-Orphan\b|[Yabai]|-Yabai\b|\bNii-sama\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 50] [Strict: False] [Term: /([Doki]|-Doki\b|[Chihiro]|-Chihiro\b|Final8)/i]
Capture Term [Category: TermCategory.Preferred] [Score: 50] [Strict: False] [Term: /([tenshi]|-tenshi\b|SHiN-gx)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [25]]
Score [Value: 25]

Capture Term [Category: TermCategory.Preferred] [Score: 25] [Strict: False] [Term: /(AkihitoSubs|\bASW\b|Commie)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [1]]
Score [Value: 1]

Capture Term [Category: TermCategory.Preferred] [Score: 1] [Strict: False] [Term: /(10.?bit|hi10p)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [1]]
Score [Value: 1]

Capture Term [Category: TermCategory.Preferred] [Score: 1] [Strict: False] [Term: /\d(v2)\b/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [2]]
Score [Value: 2]

Capture Term [Category: TermCategory.Preferred] [Score: 2] [Strict: False] [Term: /\d(v3)\b/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [3]]
Score [Value: 3]

Capture Term [Category: TermCategory.Preferred] [Score: 3] [Strict: False] [Term: /\d(v4)\b/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [-10000]]
Score [Value: -10000]

Capture Term [Category: TermCategory.Preferred] [Score: -10000] [Strict: False] [Term: /([Judas]|-Judas|[Cleo]|-Cleo)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -10000] [Strict: False] [Term: /(AnimeRG|bonkai77|URANiME)/i]

Category Set [Name: TermCategory.Preferred] [Line: Add this to your Preferred with a score of [-15000]]
Score [Value: -15000]

Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /([Pixel]|-Pixel\b[EDGE]|-EDGE\b|[Ranger]|-Ranger\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(SpaceFish|DeadFish|\bDB\b|Man.K|\bHR\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(BakedFish|N[eo][wo]b[ ._-]?Subs|\bAnime Time\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(AnimeKaizoku|Kaizoku|\bCBB\b|phazer11)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(iPUNISHER|MiniTheatre|MiniFreeza|Mr.Deadpool)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(NemDiggers|Project-gxs|youshikibi)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(\bMD\b|Pog42|mdcx)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /(A-Destiny|TOPKEK|\bUwU\b|DARKFLiX)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /([Maximus]|-Maximus\b|[224]|-224\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /([Harunatsu]|-Harunatsu\b)/i]
Capture Term [Category: TermCategory.Preferred] [Score: -15000] [Strict: False] [Term: /([Davinci]|-Davinci\b)/i]

Parsing Header [Text: Completed] [Depth: 3]
Parsing Header [Text: Acknowledgements] [Depth: 3]

Creating new profile: [Trash] Anime - First Release Profile
Creating new profile: [Trash] Anime - Second Release Profile`

What exact command line did you run? Did you check if the file exists here that it told you it is loading (/mnt/user/MULTIMEDIA/Scripts/trash-updater/src/trash.yml)? Need more info.

Closing:

No response from OP
C# rewrite has rendered this issue moot


Update.exe went rogue?

Last night, I was on Atom 1.19.1, Windows 10. Things started to go a bit weird. My Windows System process (NT kernel & system) started hogging ~30% of my CPU indefinitely, which I had no reason to believe was anything to do with Atom. However, this morning nothing happened when I tried to open Atom. I noticed 1.19.2 had appeared in my %LOCALAPPDATA%/atom/ folder, but I could only open 1.19.1, and when I did, it opened without any packages/themes enabled. I tried deleting the 1.19.2 folder (which didn't go to completion as something was using one of the files). Then, Norton flagged up Update.exe as acting suspiciously. I let it quarantine Update.exe, and then my System process stopped hogging the CPU (this could be a coincidence, of course). Anyway, I then successfully deleted 1.19.2 folder, and then downloaded the installer from the atom homepage. Now everything's working fine, I'm on 1.19.2. Not sure what happened there, but I thought I'd open an issue in case anyone else suffers the same fate and comes googling.

Thanks for the detailed notes/observations :+1:  Agree that it's hard to say what might have happened since it seems like reproducing would be difficult (though I've seen a handful of issues where folks describe how their anti-virus software can sometimes affect updates or installs).  But thanks for sharing how you resolved the issue.
We'll go ahead and close this issue since we treat our issues list as the Atom team's backlog for tasks the need to be completed, but it'll be available when folks search through issues.

Update: This has happened another couple of times. I've decided to stop automatically downloading updates

Update: currently on 1.19.4, I decided to try checking for updates. The same thing is happening again. System is hogging ~30% CPU, no real network or disk activity. I experimentally opened SquirrelSetup.txt and this is what it shows:

2017-09-06 16:07:53> Program: Starting Squirrel Updater: --download https://atom.io/api/updates-x64?version=1.19.4
2017-09-06 16:07:53> Program: Fetching update information, downloading from https://atom.io/api/updates-x64?version=1.19.4
2017-09-06 16:07:53> CheckForUpdateImpl: Using existing staging user ID:
2017-09-06 16:07:53> CheckForUpdateImpl: Downloading RELEASES file from https://atom.io/api/updates-x64?version=1.19.4
2017-09-06 16:07:53> FileDownloader: Downloading url: https://atom.io/api/updates-x64/RELEASES?version=1.19.4&id=atom&localVersion=1.19.4&arch=amd64
2017-09-06 16:07:54> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.5-delta.nupkg
2017-09-06 16:08:16> UpdateInfo: Couldn't get release notes for:atom-1.19.5-delta.nupkg: System.Exception: Invalid 'ReleaseNotes' value in nuspec file at 'C:\Users<redacted>\AppData\Local\atom\packages\atom-1.19.5-delta.nupkg'
at Squirrel.ReleaseEntry.GetReleaseNotes(String packageDirectory)
at Squirrel.UpdateInfo.b__19_0(ReleaseEntry x)
2017-09-06 16:08:16> Program: Starting Squirrel Updater: --update https://atom.io/api/updates-x64?version=1.19.4
2017-09-06 16:08:16> Program: Starting update, downloading from https://atom.io/api/updates-x64?version=1.19.4
2017-09-06 16:08:16> Program: About to update to: C:\Users<redacted>\AppData\Local\atom
2017-09-06 16:08:17> CheckForUpdateImpl: Using existing staging user ID:
2017-09-06 16:08:17> CheckForUpdateImpl: Downloading RELEASES file from https://atom.io/api/updates-x64?version=1.19.4
2017-09-06 16:08:17> FileDownloader: Downloading url: https://atom.io/api/updates-x64/RELEASES?version=1.19.4&id=atom&localVersion=1.19.4&arch=amd64
2017-09-06 16:08:18> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.5-delta.nupkg
2017-09-06 16:09:05> Program: Failed to apply updates, falling back to full updates: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at SharpCompress.Readers.IReaderExtensions.WriteEntryToFile(IReader reader, String destinationFileName, ExtractionOptions options)
at SharpCompress.Readers.IReaderExtensions.WriteEntryToDirectory(IReader reader, String destinationDirectory, ExtractionOptions options)
at SharpCompress.Readers.IReaderExtensions.WriteAllToDirectory(IReader reader, String destinationDirectory, ExtractionOptions options)
at Squirrel.DeltaPackageBuilder.ApplyDeltaPackage(ReleasePackage basePackage, ReleasePackage deltaPackage, String outputFile)
at Squirrel.UpdateManager.ApplyReleasesImpl.<>c__DisplayClass8_0.b__3()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.UpdateManager.ApplyReleasesImpl.d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.UpdateManager.ApplyReleasesImpl.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Squirrel.UpdateManager.d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
at Squirrel.Update.Program.d__5.MoveNext()
2017-09-06 16:09:05> CheckForUpdateImpl: Using existing staging user ID:

2017-09-06 16:09:05> Program: Failed to apply updates, falling back to full updates: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

I wonder if this is the problem or at least related?
There's an issue for this particular error on install though it looks like it was closed as fixed:
https://github.com/atom/atom/issues/5109
Though it does look like a couple of people have reported they're still seeing the same error.
There is a workaround mentioned in https://github.com/atom/atom/issues/5109#issuecomment-153311100 if you want to give it a try but though not ideal, turning off updates and installing new releases from atom.io like you've been doing (and which sounds like it's working) is another workaround.

I have the same issue regarding PathTooLongException in SquirrelSetup.log — this issue occurs on applying updates only and then setup falls back to full updates. This exception was not observed in updating to version 1.19.2.  Also, each delta is downloaded twice because of the same System.Exception: Invalid 'ReleaseNotes' value in nuspec file
Extract from SquirrelSetup.log for statistics:
2017-08-21 15:32:31> Program: Starting Squirrel Updater: --download https://atom.io/api/updates-x64?version=1.18.0
2017-08-21 15:32:37> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.0-delta.nupkg
2017-08-21 15:32:37> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.2-delta.nupkg
2017-08-21 15:32:37> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.1-delta.nupkg
2017-08-21 15:36:41> Program: Starting Squirrel Updater: --update https://atom.io/api/updates-x64?version=1.18.0
2017-08-21 15:36:42> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.0-delta.nupkg
2017-08-21 15:36:42> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.2-delta.nupkg
2017-08-21 15:36:42> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.1-delta.nupkg
2017-08-21 15:47:14> Program: Failed to apply updates, falling back to full updates: System.IO.EndOfStreamException: Attempted to read past the end of the stream.
2017-08-21 15:47:16> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.2-full.nupkg
2017-08-25 15:24:47> Program: Starting Squirrel Updater: --download https://atom.io/api/updates-x64?version=1.19.2
2017-08-25 15:24:53> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.3-delta.nupkg
2017-08-25 15:25:52> Program: Starting Squirrel Updater: --update https://atom.io/api/updates-x64?version=1.19.2
2017-08-25 15:25:53> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.3-delta.nupkg
2017-08-25 15:26:33> Program: Failed to apply updates, falling back to full updates: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
2017-08-25 15:26:33> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.3-full.nupkg
2017-08-29 16:51:20> Program: Starting Squirrel Updater: --download https://atom.io/api/updates-x64?version=1.19.3
2017-08-29 16:51:26> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.4-delta.nupkg
2017-08-29 16:54:54> Program: Starting Squirrel Updater: --update https://atom.io/api/updates-x64?version=1.19.3
2017-08-29 16:54:56> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.4-delta.nupkg
2017-08-29 16:57:57> Program: Failed to apply updates, falling back to full updates: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
2017-08-29 16:57:58> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.4-full.nupkg
2017-09-01 19:50:38> Program: Starting Squirrel Updater: --download https://atom.io/api/updates-x64?version=1.19.4
2017-09-01 19:50:48> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.5-delta.nupkg
2017-09-01 19:51:37> Program: Starting Squirrel Updater: --update https://atom.io/api/updates-x64?version=1.19.4
2017-09-01 19:51:40> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.5-delta.nupkg
2017-09-01 19:52:20> Program: Failed to apply updates, falling back to full updates: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
2017-09-01 19:52:21> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.5-full.nupkg
2017-09-09 18:53:36> Program: Starting Squirrel Updater: --download https://atom.io/api/updates-x64?version=1.19.5
2017-09-09 18:53:53> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.6-delta.nupkg
2017-09-09 18:53:53> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.7-delta.nupkg
2017-09-09 18:54:29> Program: Starting Squirrel Updater: --update https://atom.io/api/updates-x64?version=1.19.5
2017-09-09 18:54:31> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.6-delta.nupkg
2017-09-09 18:54:31> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.7-delta.nupkg
2017-09-09 18:55:06> Program: Failed to apply updates, falling back to full updates: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
2017-09-09 18:55:06> FileDownloader: Downloading file: https://atom.io/api/updates-x64/atom-1.19.7-full.nupkg

The command to get this extract: grep -P 'Starting Squirrel Updater|Downloading file:|PathTooLongException|Failed to apply updates' SquirrelSetup.log
My %LOCALAPPDATA% length is 29 bytes.


cannot import name 'HPPO' from 'ding.model'

Why I couldn't import HPPO from ding?
This is the comment I used in the Jupiter notebook   from ding.model import HPPO

First of all, thanks for your question.
I'm not sure what HPPO you're referring to here, I'm guessing it refers to a hybrid action space algorithm  HPPO. If so, you can refer to our runnable entry config on the gym_hybrid environment.
Our HPPO implementation is fused with the original PPO, and they share the same policy and model python module. You need to specifically look at the action_space='hybrid' part of the PPO policy and model code. Specifically, the key part of HPPO policy is here, the key part of HPPO model is here.
Hope this answers your doubts.

First of all, thanks for your question.
I'm not sure what HPPO you're referring to here, I'm guessing it refers to a hybrid action space algorithm  HPPO. If so, you can refer to our runnable entry config on the gym_hybrid environment.
Our HPPO implementation is fused with the original PPO, and they share the same policy and model python module. You need to specifically look at the action_space='hybrid' part of the PPO policy and model code. Specifically, the key part of HPPO policy is here, the key part of HPPO model is here.
Hope this answers your doubts.

Thank you for your reply . I will check it. However, the library is totally different from stable baseline 3, right? Do I have to customize my open ai gym platform as per the standards of di-engine ? Because, i have been getting a lot of errors when I try to utilize an algorithm form di-engine in order to train an agent in my customized open ai gym platform

If you want to transfer your own gym-style env to DI-engine's format, we provide the following tools to help you finish it easily:

DingEnvWrapper, which can transform gym-style env to DI-engine's format direcely, here is a naive demo:import gym
from ding.envs import DingEnvWrapper
cartpole_env = DingEnvWrapper(gym.make('CartPole-v0'))
pendulum_env = DingEnvWrapper(gym.make('Pendulum-v0'), cfg={'act_scale': True})

Here is the code implementation link of DingEnvWrapper.
If there are still some problems after using DingEnvWrapper, you can refer to this doc to transfer your env manually.


CB-17641 Get rid of Cedarsoft Json-IO

See detailed description in the commit message.

leave for now


syscall: panic within syscall_windows.go Readlink

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
go version go1.6.2 windows/amd64

What operating system and processor architecture are you using (go env)?
Windows Server 2016 TP5, amd64

What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.

Built a version of go-swagger, and run it Panic's when whilst compiling a swagger.json.
I believe the issue is in the following switch statement within syscall_windows.go Readlink() :
switch rdb.ReparseTag {
case IO_REPARSE_TAG_SYMLINK:
data := (symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))
p := ([0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))
s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])
case _IO_REPARSE_TAG_MOUNT_POINT:
data := (mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))
p := ([0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))
s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])
Per Microsoft documentation at https://msdn.microsoft.com/en-us/library/ff552012.aspx
The PrintNameLength field should be interpreted as a length field, so the slice should change the subtraction to addition, as in :
s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength + data.PrintNameOffset)/2])
I have no idea why I may be getting a non-zero PrintNameOffset result, but if data.PrintNameOffset > data.PrintNameLength then it definitely seems to be possible to run into problems.
Also note that
MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024

So the following cast : (*[0xffff]uint16) seems to be risky, since that will exceed the size of the buffer that was allocated.
 What did you expect to see?

What did you see instead?

CC @alexbrainman

I won't be able to look into until I am back home (next week). I am also concerned that I won't be able to reproduce the problem, because, perhaps, I will need "Windows Server 2016" (which I don't have).

Built a version of go-swagger, and run it Panic's when whilst compiling a swagger.json.

How can I do that? What are the steps? Than you.
Alex

I will try to re-produce the crash scenario on Windows 10, however to see some of the problem.  Here are the tools I'm using to create test reparse points :
Junction.exe published by sysinternals, available from Microsoft at : https://technet.microsoft.com/en-us/sysinternals/bb896768
fsutil.exe, which ships as part of the O.S., described here: https://technet.microsoft.com/en-us/library/cc753059(v=ws.11).aspx
Note the output produced by the following program:
package main
import (
"flag"
"fmt"
"os"
)
func main() {
dir := flag.String("d", "", "The Directory to be tested")
flag.Parse()
if *dir != "" {
    results, err := os.Readlink(*dir)
    fmt.Printf("Readlink of %s produced %#v and error %v", *dir, results, err)
}

}
PS E:\temp> .\Junction\junction.exe goes_somewhere .\somewhere
Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
Created: E:\temp\goes_somewhere
Targetted at: E:\temp\somewhere
PS E:\temp> fsutil reparsepoint query .\goes_somewhere
Reparse Tag Value : 0xa0000003
Tag value: Microsoft
Tag value: Name Surrogate
Tag value: Mount Point
Substitue Name offset: 0
Substitue Name length: 42
Print Name offset:     44
Print Name Length:     0
Substitute Name:       ??\E:\temp\somewhere
Reparse Data Length: 0x00000036
Reparse Data:
0000:  00 00 2a 00 2c 00 00 00  5c 00 3f 00 3f 00 5c 00  ..*.,....?.?..
0010:  45 00 3a 00 5c 00 74 00  65 00 6d 00 70 00 5c 00  E.:..t.e.m.p..
0020:  73 00 6f 00 6d 00 65 00  77 00 68 00 65 00 72 00  s.o.m.e.w.h.e.r.
0030:  65 00 00 00 c4 f2                                 e.....
 All rights reserved.

The Problem is demonstrated in the first 16 bytes from each Operating System :
WS 2016 :  0000:  00 00 80 00 82 00 86 00  00 00 00 00 5c 00 43 00  .............C.
Windows 10:  0000:  2a 00 2a 00 00 00 2a 00  00 00 00 00 5c 00 5c 00  ....*.......
What has happened is that the 'PrintName' and 'SubstituteName' in the dynamic portion of the result have swapped positions, so now PrintNameOffset is non-zero on Windows Server 2016.   This exposes the substraction result producing a bogus slice.  My guess is in all other operating systems, (i.e. Windows 10) the PrintName field was placed first, meaning that PrintNameOffset was always zero, concealing the bug.

@nkaethler if you know what to fix, here https://golang.org/doc/contribute.html is how to contribute. New test that demonstrates the problem would be nice. Even if you have a test that only works on some OS versions.
Alex

Any update on this?  Do we have a standalone test that shows the problem?

Any update on this?

I am looking into it. Hopefully I will have something by the end of today.
Alex

I agree with @nkaethler that we should change:
s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength - data.PrintNameOffset)/2])

for
s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength + data.PrintNameOffset)/2])

Current code works because everything we test has data.PrintNameOffset set to 0 (and it does not matter if we use + or -). But "Junction.exe published by sysinternals", unlike standard mklink command, sets data.PrintNameLength to 0. I have found some explanation here https://svn.boost.org/trac/boost/ticket/10900
read_symlink extracts the reparse point's PrintName?, which isn't guaranteed to be valid - according to  http://msdn.microsoft.com/en-us/library/cc232006.aspx, "the print name SHOULD be an informative pathname, suitable for display to a user, that also identifies the target of the symbolic link", but it's not guaranteed to be the actual target (most notably, with junctions created using the Sysinternals junction.exe tool, the PrintName? is completely empty). It should probably be extracting the SubstituteName? instead, though that would likely require stripping off the leading "\??\" to yield a properly usable pathname (unless it's a device ID, in which case all bets are off).
I also think we should use SubstituteName? instead of PrintName?, just like the article recommends. But SubstituteName? needs to be "cleaned up" first. I don't think we should change to SubstituteName? for go1.7.
Also I don't have a test for either change.
Alex

I still cannot reproduce this crash. I tried different ways to create both symbolic links and directory junctions to make Go crash, but I cannot. I have found a new issue (#16145) along the way, but I cannot recreate this issue.
Looking at output above:
PS C:\Windows\system32> fsutil reparsepoint query c:\tools
Reparse Tag Value : 0xa000000c
Tag value: Microsoft
Tag value: Name Surrogate
Tag value: Symbolic Link

Reparse Data Length: 0x00000116
Reparse Data:
0000: 00 00 80 00 82 00 86 00 00 00 00 00 5c 00 43 00 .............C.
0010: 6f 00 6e 00 74 00 61 00 69 00 6e 00 65 00 72 00 o.n.t.a.i.n.e.r.
0020: 4d 00 61 00 70 00 70 00 65 00 64 00 44 00 69 00 M.a.p.p.e.d.D.i.
0030: 72 00 65 00 63 00 74 00 6f 00 72 00 69 00 65 00 r.e.c.t.o.r.i.e.
0040: 73 00 5c 00 45 00 36 00 44 00 35 00 46 00 45 00 s..E.6.D.5.F.E.
0050: 44 00 46 00 2d 00 32 00 46 00 37 00 30 00 2d 00 D.F.-.2.F.7.0.-.
0060: 34 00 42 00 35 00 43 00 2d 00 41 00 31 00 43 00 4.B.5.C.-.
PS C:\Windows\system32>

this is symbolic link with:
ReparseDataLength=0x116 Reserved=0x0
SubstituteNameOffset=0x0 SubstituteNameLength=0x80
PrintNameOffset=0x82 PrintNameLength=0x86
Flags=0x0
PathBuffer=
00000000  5c 00 43 00 6f 00 6e 00  74 00 61 00 69 00 6e 00  |\.C.o.n.t.a.i.n.|
00000010  65 00 72 00 4d 00 61 00  70 00 70 00 65 00 64 00  |e.r.M.a.p.p.e.d.|
00000020  44 00 69 00 72 00 65 00  63 00 74 00 6f 00 72 00  |D.i.r.e.c.t.o.r.|
00000030  69 00 65 00 73 00 5c 00  45 00 36 00 44 00 35 00  |i.e.s.\.E.6.D.5.|
00000040  46 00 45 00 44 00 46 00  2d 00 32 00 46 00 37 00  |F.E.D.F.-.2.F.7.|
00000050  30 00 2d 00 34 00 42 00  35 00 43 00 2d 00 41 00  |0.-.4.B.5.C.-.A.1.C.7.-.|
000000f0  33 00 37 00 44 00 33 00  30 00 46 00 38 00 45 00  |3.7.D.3.0.F.8.E.|
00000100  38 00 45 00 43 00 45 00  00 00 86 bc 32 12 1e 01  |8.E.C.E.....2...|
00000110  00 00 1e 01 00 00 ef ac  48 00 00 00 00 00 00 00  |........H.......|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
SubstituteName="\\ContainerMappedDirectories\\E6D5FEDF-2F70-4B5C-A1C7-37D30F8E8ECE"
PrintName="\\\\?\\ContainerMappedDirectories\\E6D5FEDF-2F70-4B5C-A1C7-37D30F8E8ECE"

I can see how link like that can crash Go, but I cannot re-create link like that. @nkaethler if you could tell us how you created the link, that would be helpful.
If we don't have a test, I still think we should change syscall.ReadLink as I commented above for go1.7. I don't see how it could be worse than it already is. Here https://go-review.googlesource.com/24330 is the CL. Please, review it, if you think it is worth going forward with.
Alex

I still cannot reproduce this crash.

Here you are.
package os_test

import (
	"encoding/binary"
	"io/ioutil"
	"os"
	"syscall"

	"testing"
)

const FSCTL_SET_REPARSE_POINT = 0x900a4

var le = binary.LittleEndian

func TestReadlink(t *testing.T) {
	defer chtmpdir(t)()

	f, err := os.Create("test")
	if err != nil {
		t.Fatal(err)
	}
	f.Close()

	err = Symlink("test", "linkToTest")
	if err != nil {
		t.Fatal(err)
	}

	defer func() {
		if r := recover(); r != nil {
			t.Fatal(r)
		}
	}()

	target, err := os.Readlink("linkToTest")
	if err != nil {
		t.Fatal(err)
	}

	if target != "test" {
		t.Error("readlink is broken")
	}
}

func Symlink(symlinkfilename string, targetfilename string) (err error) {
	// typedef struct _REPARSE_DATA_BUFFER {
	//   uint32 ReparseTag;
	//   uint16 ReparseDataLength;
	//   uint16 Reserved;
	//   uint16 SubstituteNameOffset;
	//   uint16 SubstituteNameLength;
	//   uint16 PrintNameOffset;
	//   uint16 PrintNameLength;
	//   uint32  Flags;
	//   WCHAR  PathBuffer[1];
	// } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;

	fd, err := syscall.CreateFile(syscall.StringToUTF16Ptr(targetfilename), syscall.GENERIC_READ|syscall.GENERIC_WRITE, 0, nil, syscall.CREATE_ALWAYS,
		syscall.FILE_FLAG_OPEN_REPARSE_POINT|syscall.FILE_FLAG_BACKUP_SEMANTICS, 0)
	if err != nil {
		return err
	}
	defer syscall.CloseHandle(fd)

	sympath := syscall.StringToUTF16(symlinkfilename)

	sympath = sympath[:len(sympath)-1]

	rdbbuf := make([]byte, 20+len(sympath)*4)

	le.PutUint32(rdbbuf[:4], syscall.IO_REPARSE_TAG_SYMLINK)
	le.PutUint16(rdbbuf[4:6], uint16(len(rdbbuf)-8))
	le.PutUint16(rdbbuf[8:10], 0)
	le.PutUint16(rdbbuf[10:12], uint16(len(sympath)*2))
	for i, w := range sympath {
		le.PutUint16(rdbbuf[20+i*2:20+i*2+2], w)
	}
	le.PutUint16(rdbbuf[12:14], uint16(len(sympath)*2))
	le.PutUint16(rdbbuf[14:16], uint16(len(sympath)*2))
	for i, w := range sympath {
		le.PutUint16(rdbbuf[20+len(sympath)*2+i*2:20+len(sympath)*2+i*2+2], w)
	}

	return syscall.DeviceIoControl(fd, FSCTL_SET_REPARSE_POINT, &rdbbuf[0], uint32(len(rdbbuf)), nil, 0, nil, nil)
}

// chtmpdir changes the working directory to a new temporary directory and
// provides a cleanup function. Used when PWD is read-only.
func chtmpdir(t *testing.T) func() {
	oldwd, err := os.Getwd()
	if err != nil {
		t.Fatalf("chtmpdir: %v", err)
	}
	d, err := ioutil.TempDir("", "test")
	if err != nil {
		t.Fatalf("chtmpdir: %v", err)
	}
	if err := os.Chdir(d); err != nil {
		t.Fatalf("chtmpdir: %v", err)
	}
	return func() {
		if err := os.Chdir(oldwd); err != nil {
			t.Fatalf("chtmpdir: %v", err)
		}
		os.RemoveAll(d)
	}
}

@hirochachacha, thank you for suggestion. I tried it:
diff --git a/src/os/os_windows_test.go b/src/os/os_windows_test.go
index 05d7a8f..dae4c04 100644
--- a/src/os/os_windows_test.go
+++ b/src/os/os_windows_test.go
@@ -5,6 +5,7 @@
 package os_test

 import (
+	"encoding/binary"
 	"io/ioutil"
 	"os"
 	osexec "os/exec"
@@ -245,3 +246,66 @@ func TestDeleteReadOnly(t *testing.T) {
 		t.Fatal(err)
 	}
 }
+
+func createSymlink(symlinkfilename string, targetfilename string) (err error) {
+	const FSCTL_SET_REPARSE_POINT = 0x900a4
+	var le = binary.LittleEndian
+	// typedef struct _REPARSE_DATA_BUFFER {
+	//   uint32 ReparseTag;
+	//   uint16 ReparseDataLength;
+	//   uint16 Reserved;
+	//   uint16 SubstituteNameOffset;
+	//   uint16 SubstituteNameLength;
+	//   uint16 PrintNameOffset;
+	//   uint16 PrintNameLength;
+	//   uint32  Flags;
+	//   WCHAR  PathBuffer[1];
+	// } REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
+	fd, err := syscall.CreateFile(syscall.StringToUTF16Ptr(targetfilename), syscall.GENERIC_READ|syscall.GENERIC_WRITE, 0, nil, syscall.CREATE_ALWAYS,
+		syscall.FILE_FLAG_OPEN_REPARSE_POINT|syscall.FILE_FLAG_BACKUP_SEMANTICS, 0)
+	if err != nil {
+		return err
+	}
+	defer syscall.CloseHandle(fd)
+	sympath := syscall.StringToUTF16(symlinkfilename)
+	sympath = sympath[:len(sympath)-1]
+	rdbbuf := make([]byte, 20+len(sympath)*4)
+	le.PutUint32(rdbbuf[:4], syscall.IO_REPARSE_TAG_SYMLINK)
+	le.PutUint16(rdbbuf[4:6], uint16(len(rdbbuf)-8))
+	le.PutUint16(rdbbuf[8:10], 0)
+	le.PutUint16(rdbbuf[10:12], uint16(len(sympath)*2))
+	for i, w := range sympath {
+		le.PutUint16(rdbbuf[20+i*2:20+i*2+2], w)
+	}
+	le.PutUint16(rdbbuf[12:14], uint16(len(sympath)*2))
+	le.PutUint16(rdbbuf[14:16], uint16(len(sympath)*2))
+	for i, w := range sympath {
+		le.PutUint16(rdbbuf[20+len(sympath)*2+i*2:20+len(sympath)*2+i*2+2], w)
+	}
+	return syscall.DeviceIoControl(fd, FSCTL_SET_REPARSE_POINT, &rdbbuf[0], uint32(len(rdbbuf)), nil, 0, nil, nil)
+}
+
+func TestReadlink(t *testing.T) {
+	defer chtmpdir(t)()
+	f, err := os.Create("test")
+	if err != nil {
+		t.Fatal(err)
+	}
+	f.Close()
+	err = createSymlink("test", "linkToTest")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer func() {
+		if r := recover(); r != nil {
+			t.Fatal(r)
+		}
+	}()
+	target, err := os.Readlink("linkToTest")
+	if err != nil {
+		t.Fatal(err)
+	}
+	if target != "test" {
+		t.Error("readlink is broken")
+	}
+}

but the test fails on both my Windows XP:
C:\Documents and Settings\brainman>u:\test -test.v -test.run=Readlink
=== RUN   TestReadlink
Exception 0xc0000005 0x1 0x0 0x7c80168e
PC=0x7c80168e

syscall.Syscall9(0x7c801629, 0x8, 0x780, 0x900a4, 0x10d862d0, 0x24, 0x0, 0x0, 0x0, 0x0, ...)
        /root/go/src/runtime/syscall_windows.go:185 +0x4a
syscall.DeviceIoControl(0x780, 0x900a4, 0x10d862d0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /root/go/src/syscall/zsyscall_windows.go:1314 +0xaf
os_test.createSymlink(0x544e44, 0x4, 0x545f55, 0xa, 0x0, 0x0)
        /root/go/src/os/os_windows_test.go:285 +0x6ff
os_test.TestReadlink(0x10d80280)
        /root/go/src/os/os_windows_test.go:295 +0x131
testing.tRunner(0x10d80280, 0x55d68c)
        /root/go/src/testing/testing.go:610 +0x8c
created by testing.(*T).Run
        /root/go/src/testing/testing.go:646 +0x2a5

goroutine 1 [chan receive]:
testing.(*T).Run(0x10d80280, 0x5466e5, 0xc, 0x55d68c, 0x1d1cc01)
        /root/go/src/testing/testing.go:647 +0x2c4
testing.RunTests.func1(0x10d80200)
        /root/go/src/testing/testing.go:793 +0xa1
testing.tRunner(0x10d80200, 0x10dafed0)
        /root/go/src/testing/testing.go:610 +0x8c
testing.RunTests(0x55d56c, 0x5d1540, 0x44, 0x44, 0x10db6201)
        /root/go/src/testing/testing.go:799 +0x332
testing.(*M).Run(0x10daff74, 0x10db0180)
        /root/go/src/testing/testing.go:743 +0x79
main.main()
        os/_test/_testmain.go:194 +0x100
eax     0x0
ebx     0x0
ecx     0x0
edx     0x7c90e514
edi     0x6feec
esi     0x0
ebp     0x6fec4
esp     0x6fe94
eip     0x7c80168e
eflags  0x10246
cs      0x1b
fs      0x3b
gs      0x0

and my Windows 7:
C:\Users\brainman>u:\test -test.v -test.run=Readlink
=== RUN   TestReadlink
--- FAIL: TestReadlink (0.02s)
        os_windows_test.go:297: Access is denied.
FAIL

What do I do wrong?
Alex

What do I do wrong?

Did you try it as administrator?

Did you try it as administrator?

How do I do that?
Alex

How do I do that?

I mean use Run as administrator to invoke your terminal.

Btw, I tested it as a single file - readlink_test.go with go test readlink_test.go command.
administrator:
readlink_test.go:32: runtime error: slice bounds out of range

normal user:
readlink_test.go:27: Access is denied.

My machine is windows 10.

I mean use Run as administrator to invoke your terminal.

It does not work. I get same result:
=== RUN   TestReadlink
--- FAIL: TestReadlink (0.01s)
        readlink_test.go:24: Access is denied.
FAIL

Alex

 func TestReadlink(t *testing.T) {
+  if !supportsSymlinks {
+    t.Skip()
+  }

You mean this patch doesn't affect the result, right?
If so, only suspicious part for me is syscall.CreateFile.
How about using MAXIMUM_ALLOWED = 0x02000000 and syscall.FILE_ATTRIBUTE_REPARSEPOINT?
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa374892(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117(v=vs.85).aspx
I cannot test on windows XP and 7 myself, sorry.

You mean this patch doesn't affect the result, right?

It skips new test on Windows XP, but has no effect on Windows 7.

How about using MAXIMUM_ALLOWED = 0x02000000 and syscall.FILE_ATTRIBUTE_REPARSEPOINT?

Replacing
syscall.FILE_FLAG_OPEN_REPARSE_POINT|syscall.FILE_FLAG_BACKUP_SEMANTICS

with
syscall.FILE_FLAG_OPEN_REPARSE_POINT|syscall.FILE_FLAG_BACKUP_SEMANTICS|FILE_ATTRIBUTE_REPARSEPOINT|MAXIMUM_ALLOWED

does not help.
Alex

Hmm, how about this?
le.PutUint32(rdbbuf[16:20], 0x00000001) // SYMLINK_FLAG_RELATIVE

Hmm, how about this?

I tested it on windows 7 VM  downloaded from microsoft.
But nothing changed.

Finally, it works on my windows 10 and windows 7.
https://gist.github.com/hirochachacha/f5b20c319790ee02b64bd3a9a94bdf5b

Finally, it works on my windows 10 and windows 7.
https://gist.github.com/hirochachacha/f5b20c319790ee02b64bd3a9a94bdf5b

Yes that works for me too on Windows 7. Thank you very much.
But I still get
C:\Documents and Settings\brainman>u:\test -test.v -test.run=Readlink
=== RUN   TestReadlink
--- FAIL: TestReadlink (0.02s)
        readlink_test.go:35: A specified privilege does not exist.
FAIL

on Windows XP.
I am also worried about you using a lot of unsafe code (building Windows structs by writing into binary.LittleEndian). This could introduce memory corruption in "os" test binary.
I would leave test for go1.8. But feel free to send a CL yourself - if others want to proceed with it, I will help along too.
Thanks again. I will stop thinking about this bug now. :-)
Alex

on Windows XP.

As you know, Windows XP doesn't support symlink, I guess it's also impossible to create symlink.
So, I think we should skip the test by supportsSymlinks variable, practically.

I am also worried about you using a lot of unsafe code (building Windows structs by writing into binary.LittleEndian). This could introduce memory corruption in "os" test binary.

We can avoid binary.LittleEndian by unsafe hack (e.g *(*uint32)(unsafe.Pointer(&bs[0])) = uint32(10), or cast to some struct)
on windows PC, that is what we done in syscall package. But yes, unsafe is unsafe...

I would leave test for go1.8. But feel free to send a CL yourself - if others want to proceed with it, I will help along too.

I see. It's bigger test than I expected, which mean, it contains unknown bugs, potentially.

Thanks again. I will stop thinking about this bug now. :-)

Thank you for your confirmations. :)

@hirochachacha please check https://go-review.googlesource.com/#/c/25320/ for the test. We cannot submit the changes until go1.7 is released, but we can review code now. Thank you.
Alex

I think we should share correct behavior of the function at first.
Here is mklink's behavior on windows 10. ( I hope it is applicable to other versions)

Command
PrintName
SubstituteName
Flags

mklink link test
test
test
1

mklink link \work\test
\work\test
\work\test
1

mklink link C:test
C:\work\test
??\C:\work\test
0

mklink link C:\work\test
C:\work\test
??\C:\work\test
0

mklink link \\localhost\work
\\localhost\work
??\UNC\localhost\work
0

mklink link test /J

mklink link \work\test /J

mklink link C:test /J

mklink link C:\work\test /J
C:\work\test
??\C:work\test

So,  I think CreateSymbolicLink should behave like this:
func CreateSymbolicLink(link, target string) {
  ...
  // build reparse data buffer
  volume := filepath.VolumeName(target)
  switch len(volume) {
  case 0:
    // set PrintName to target
    // set SubstituteName to target
    // set Flags to 1
  case 2:
    target = filepath.Abs(target)
    // set PrintName to target
    // set SubstituteName to "\??\" + target
  default: // isUNC
    // set PrintName to target
    // set SubstituteName to "\??\UNC" + target[1:]
  }
  ...
}

And,
func CreateMountPoint(link, target string) {
  ...
  // build reparse data buffer
  target = filepath.Abs(target)
  // set PrintName to target
  // set SubstituteName to target
  ...
}

@alexbrainman Btw, can you make a symlink on windows XP if you skip SeCreateSymbolicLinkPrivilege?
If yes, we may be possible to set malformed data (e.g PrintNameOffset beyond buffer size) by DeviceIoControl, that can be useful to input validation tests.

Ah.. why do we need to test our own implementation of symlink in the first place?
Our issues are just Readlink related.

I think we should share correct behavior of the function at first.

Please do not comment my code here. Do it on Gerrit https://go-review.googlesource.com/#/c/25320/ Otherwise I will lose your comments. Thank you.

can you make a symlink on windows XP if you skip SeCreateSymbolicLinkPrivilege?

Windows XP does not have CreateSymbolicLink.

why do we need to test our own implementation of symlink in the first place?
Our issues are just Readlink related.

I don't understand your question. Please try again.
Alex

Windows XP does not have CreateSymbolicLink.

Yes. Can we emulate CreateSymbolicLink by DeviceIoControl?
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365511(v=vs.85).aspx says,
reparse point supports user-defined data.

I don't understand your question. Please try again.

I will comment on gerrit.

Can we emulate CreateSymbolicLink by DeviceIoControl?

That is what my CL 25320 is effectively doing already. Isn't it? I don't understand what more do you propose we do.

I will comment on gerrit.

I will answer there. Thank you.
Alex

That is what my CL 25320 is effectively doing already. Isn't it? I don't understand what more do you propose we do.

Yes it is except windows XP. Again, can we emulate CreateSymbolicLink on windows XP?
You said:

Yes that works for me too on Windows 7. Thank you very much.
But I still get
C:\Documents and Settings\brainman>u:\test -test.v -test.run=Readlink
=== RUN   TestReadlink
--- FAIL: TestReadlink (0.02s)
readlink_test.go:35: A specified privilege does not exist.
FAIL
on Windows XP.

before.
If you skip privilege error, is it possible to make a symlink on windows XP?

Again, can we emulate CreateSymbolicLink on windows XP?

I was afraid you will say that. :-)
Do you know for certain how CreateSymbolicLink should be implemented on Windows XP? Microsoft didn't implement it - that makes it this idea even more questionable. Many parts of Windows XP, probably, do not expect "symbolic links" to exit. What will users do, if they OS will get confused?
I think it is bad idea to implement CreateSymbolicLink by hand. Even for testing, this is questionable. But at least we're doing it on OS versions that have CreateSymbolicLink implementation already. And we're doing it in a "controlled" environment - during our tests. And I don't see alternative to test our bugs.
Alex

I'm not talking about correct CreateSymbolicLink emulation.
I think Readlink should not panic by any input data.
IMPO, Readlink should validate input data itself without relying on OS's implicit behavior.
(because it's not on spec)
If window XP doesn't reserve symbolic tag, there are possibility to make same structure as a malformed data. And if we transfer that file to windows 10 (I don't know it is possible or not),
we can propagate malformed data.  Or there is a something easier way to make malformed input on windows 10. I just want an evidence for necessity of validation.

OS's implicit behavior

If invalid data is given to DeviceIoControl, windows 10 return ERROR_INVALID_REPARSE_DATA.
But it doesn't well explained. Maybe some versions are not.

FWIW, here are part of Readlink.
	rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE)
	var bytesReturned uint32
	err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil)
	if err != nil {
		return -1, err
	}

	rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0]))

I'm worry about unsafe casting without validation.

I think Readlink should not panic by any input data.

I agree. But I don't understand the rest of your argument. Sorry.

I'm worry about unsafe casting without validation.

What validation do you propose we add?
Alex

@alexbrainman

If window XP doesn't reserve symbolic tag, there are possibility to make same structure as a malformed data. And if we transfer that file to windows 10 (I don't know it is possible or not),
we can propagate malformed data. Or there is a something easier way to make malformed input on windows 10. I just want an evidence for necessity of validation.

I've retried it.
Here, I call "an invalid symlink" as a reparse point its SubstituteNameOffset exceeds  PathBuffer's size.
First, I tried BackupWrite to create an invalid symlink instead of using DeviceIoControl on Windows 10. But results are nothing changed. It can create a normal symlink, can't create an invalid symlink. So I gave up making an invalid symlink on Windows 10.
Second, I tried to create an invalid symlink on Windows XP, and it succeeded.
Third,  I mounted the drive (which contains invalid symlinks) on Windows 10.
I called os.Readlink with an invalid symlink, and I saw ERROR_INVALID_REPARSE_DATA.
Summary:

DeviceIoControl validate both input/output data. Therefore, syscall.Readlink doesn't panic even without validation. (If DeviceIoControl's validation covered all cases. As I said MSDN doesn't explain validation behaviors)
On Windows XP, it can panics. (I know os.Readlink on XP isn't useful, though)

So, I failed to collect good evidences for implementing our own validation.
I still think we should validate it, and there are similar issues that their CLs are without testing.
#16475 #15653
I'll let you decide what to do.

What validation do you propose we add?

ensure that input data size is greater or equal to 20 (header size)
ensure that input data size is greater or equal to 8 + ReparseDataLength
ensure that XXXOffset, XXXLength are even number.
ensure that XXXOffset+XXXLength doesn't exceed PathBuffer's size

Thank you.

@alexbrainman

I am sorry, but I don't understand your point. Thank you for all that explanation, but I don't see what all this relates to. If it relates to my CL 25320, then comment my code there. If you are discussing solution to this current issue, then I didn't even think about that. I think we need some test first.
Alex

@nkaethler initially said:

Also note that

MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024

So the following cast : (*[0xffff]uint16) seems to be risky, since that will exceed the size of the buffer that was allocated.

So I thought validation is part of this issue.


Remove temporary usage of a personal Thrift fork

The PR #2780 introduced the usage of a personal fork for Apache Thrift Go libraries to address a memory problem with the agent. Once a new version of Thrift is released that includes the fix, we need to revert that and use the official library again.

Looks like Thrift 0.14 is now released: https://github.com/apache/thrift/releases/tag/v0.14.0
Any takers?

I can take a look at this.

@jpkrohling is there a way to confirm that this new thrift tag fixes issues #2638 and #2452? I also tried the reproducer in https://github.com/jaegertracing/jaeger/issues/2638#issuecomment-742592854 but I see the following output:
$ go run main.go
error while processing: *jaeger.Batch error reading struct: *jaeger.Span error reading struct: EOF
memory usage before: 0 MiB
memory usage after: 0 MiB
finished

I was expecting some non-zero memory usage numbers and no error; but maybe I'm wrong?
@Mario-Hofstaetter, @zigmund: Were you able to confirm that changes in #2780 fixed the memory leak issue?

@albertteoh is there docker image containing https://github.com/jaegertracing/jaeger/pull/2780?
Or I should use jaegertracing/jaeger-agent:latest? Docker hub says it was pushed last time 2 days ago.

jaegertracing/jaeger-agent:latest should indeed contain the fix.

@jpkrohling is there a way to confirm that this new thrift tag fixes issues #2638 and #2452? I also tried the reproducer in #2638 (comment) but I see the following output:
$ go run main.go
error while processing: *jaeger.Batch error reading struct: *jaeger.Span error reading struct: EOF
memory usage before: 0 MiB
memory usage after: 0 MiB
finished

I was expecting some non-zero memory usage numbers and no error; but maybe I'm wrong?

I would also expect something non-zero, but perhaps it's a rounding error? The message printed before that, about the failure to process the batch, is indicative that the problematic package was received and processing stopped. In unpatched versions, this would trigger the excessive memory consumption. In any case, you can also try the reproducer at https://github.com/Mario-Hofstaetter/jaegertracing-jaeger-issue-2638, by @Mario-Hofstaetter.

@jpkrohling running over hour on jaegertracing/jaeger-agent:latest without memory issues.

@albertteoh if you don't mind, I'll take this one as I have some free cycles and we could really have a new release soon :-)

Please go ahead @jpkrohling :)

I'm blocked by https://issues.apache.org/jira/browse/THRIFT-5353. I think we should move forward with the release without this issue here.

Thrift 0.14.1 was released, presumably fixing https://issues.apache.org/jira/browse/THRIFT-5353. We need to try to upgrade to it.


App 'usermanager' could not be found~~~

D:\FasterRunner-master>python manage.py makemigrations fastrunner usermanager
App 'usermanager' could not be found. Is it in INSTALLED_APPS?

fixed


Create2 deployment type should make use of Create2Factory

🐛 Bug Report for hardaht-zksync plugins
💥 Plugin name
hardhat-zksync-deploy
📝 Description
Deploying the same create2 contract with different deployer wallets should result in the same deterministic address. For example, deploying to zksync-testnet and abstract-testnet with two different accounts should still result in the same address.
zksync-testnet
bunx hardhat deploy-zksync:contract --deployment-type create2 --salt 0x7935910912126667836566922594852029127629416664760357073852948630 --network zksync-testnet --contract-name Counter

abstract-testnet
bunx hardhat deploy-zksync:contract --deployment-type create2 --salt 0x7935910912126667836566922594852029127629416664760357073852948630 --network abstract-testnet --contract-name Counter

Using different deployer wallets here will result in two distinct create2 addresses. We should make use of Create2Factory so the deployer wallet is not accounted for. Example script below can be used to determine create2 address regardless of deployer wallet.
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { utils } from "zksync-ethers";
import { hexlify } from "ethers";

const deployScript = async function (hre: HardhatRuntimeEnvironment) {
  console.info(`Running deploy script for the Counter contract`);

  const artifact = await hre.deployer.loadArtifact("Counter");
  const counterBytecodeHash = hexlify(utils.hashBytecode(artifact.bytecode));
  const salt =
    "0x7935910912126667836566922594852029127629416664760357073852948630";
  const create2FactoryAddress = "0x0000000000000000000000000000000000010000";

  const deterministicAddress = utils.create2Address(
    create2FactoryAddress,
    counterBytecodeHash,
    salt,
    "0x"
  );
  console.log("Counter contract address: ", deterministicAddress);
};

export default deployScript;

Rather then having to use the above script, it would be nice to make use of the above mentioned command.
It seems it takes account the deployer address
🔄 Reproduction Steps

Deploy Counter contract using create2 with "wallet A" on zksync-testnet observe the address
Deploy the same contract using create2 with "wallet B" on abstract-testnet observe the address

🤔 Expected Behavior
Deterministic address regardless of deployer wallet
😯 Current Behavior
Different address due to different deployer wallets being used
🖥 Environment

Node version: [e.g., Node 18.16.1]
Operating System & Version: [e.g., Ubuntu 20.04]
Other relevant environment details:

📋 Additional Context
📎 Log Output
Paste any relevant log output here.

Change for create2 and create2Account from ContractDeployer to Contract2Factory is merged and released with a new version of the zksync-ethers 1.15.1.


Support removing label

Sometimes it's useful to not just adding a new label but also removing an existing one.
This PR introduces a breaking change: let me know if it makes sense to keep supporting also the old LABEL_NAME  env variable.

@rciovati Would prefer to make it non-breaking!

@abinoda done, it's still taking into account the old LABEL_NAME. Perhaps it makes sense to change the readme to not point to the master branch but to use some specific tag.

Would like to have this feature to improve the development workflows. 👍


Bump fable dependencies.

For #117 and #118.

to make this changes, ran following commands.
dotnet add ./src package Fable.Browser.Dom --no-restore --version 2.15.0
rm .\src\packages.lock.json

remove these from App.fsproj.
    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
    <RestoreLockedMode>true</RestoreLockedMode>

dotnet clean
fable clean
npm run build
# build success.

restore App.fsproj configuration.
npm run build
# lockfile regenerated successfully.

I'd like to know if there's a simpler procedure.