Sign transaction without call

Is there a way to only sign transaction without performing?

I want to get raw signed message from this params
P.s. SignedTransaction is a value class with single String parameter in constructor

Hey @y9san9! I deployed a new version of the library (0.3.2) containing a personalSign method. That's probably what you need. Please let me know if that helps :)

To be honest I don't know how to get message to pass into personal sign. I mean, there I need to encode EIP-1559/Legacy transactions with RLP.
I found a way, just calling custom method eth_signTransaction which takes same params as eth_sendTransaction

Great! Should we close this issue then?


Support for Multipart Array of parts

What: Adding MultipartFormData part arrays

Why: Because in one of our test cases, we needed this feature

How:
We added a new MultipartFormDataPattern just for arrays of parts.
This new MultipartArrayPattern uses the logic of existing MultipartPatterns to generate Files & Content
We added support in multiple places to ensure Specmatic stub & test can generate test cases.
To set the examples in the OpenApi definition, we use an array of externalValue

Checklist:

[ ] Documentation added to the README.md OR link to PR on https://github.com/specmatic/specmatic-documentation
[X] Tests
[ ] Sonar Quality Gate

Issue ID:
Closes: #690
Please let us know how you like our implementation, if everything's okay, we can add documentation for this

@aeoncl welcome back. Hope you had a good holiday. Apologies for the delay in review. We will prioritise this PR shortly.

Thanks @aeoncl, will take a closer look tomorrow.

Hi @aeoncl, we are closing this PR for now, as there has been no activity on it for a while, and the codebase of Specmatic has moved forward quite a lot. If you still intend to complete the implementation of this feature, we'd be happy to accept changes addressing my comments above, either in this PR, or in a new one.
Thankyou for your support and your contributions to this project!

Hey Joel ! Sorry for the late reply, we had a lot of changes going on and i don't have the bandwith to keep working on this right now, Thank you and have a nice day :D


Question: why is scope.$destroy not automatically called on directives with isolate scope?

When I have a restrict: 'E' directive with an isolate scope, I am wondering why the $scope.$destroy() would not be called automatically when the element is destroyed?
I have seen a couple articles about this.  I just wonder if there is a case that an isolate scope should stay after its element is destroyed?
Assuming it is an isolate scope, would it be a bad idea to include in my directive something like:
element.on('$destroy', function(){
    scope.$destroy();
});

Consider a transclude: element directive where element becomes a comment.  Events aren't triggered on comment nodes, so your scope would never have been destroyed.  I don't think this is something we could generalize, but of course you're free to do this in your own code if necessary.
Explicit scope destruction usually isn't needed except in the case of manual ngIf like behavior, or if you're drawing outside the lines of the normal scope hierarchy.

I would also like to note, that the built-in structural directives do already clean up scopes as needed (e.g. ngIf, ngSwitch, ngInclude, ngView etc).
If you are manually removing component from the DOM (e.g. as part of your custom structural directive), you are responsible for cleaning up the scopes (as @dcherman alreayd mentioned).
@plong0, how are the components removed from the DOM in your situation ?

Ah that makes sense why it couldn't be generalized.  Thank you for the replies.
I was using configuration options passed to my directive to generate its children dynamically and then $compile + append() them.  So when the base directive is destroyed or the configuration options changed, I would do generatedElement.remove();
I've refactored the directive to use ng-ifs in its template.  It's ok for now, but it seems like if the configuration options have many more combinations of attributes I need to apply to the children, the template will end up with a big list of very similar directives with different ng-if condiitions and combinations of attributes.

You don't have to use ngIfs. But if you are compiling and inserting stuff, then you are responsible for cleaning up after you remove that.
You can simply call generatedScope.$destroy() after you remove the element. E.g.:
function parentPostLink(scope, elem) {
  var generatedScope = scope.$new();
  var generatedElement = $compile('...')(generatedScope);

  elem.append(generatedElement);
  ...
  // Some time later
  generatedElement.remove();
  generatedScope.$destroy();
  ...

Closing as it's working as expected.


Code quality fix - Constant names should comply with a naming convention.

This pull request is focused on resolving occurrences of Sonar rule
squid:S00115 - Constant names should comply with a naming convention.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:S00115
Please let me know if you have any questions.
Faisal Hameed

Hi @faisal-hameed, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@faisal-hameed, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Reviewed 4 of 4 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Terminal Opens Unexpectedly and captures input

Issue Type: Bug
While writing python, when rapidly typing "#" and a newline, like making a large comment block, something happens were the "#\n"s are piped to the terminal inside of VS Code.  Ive repeated this several times. I looked up the hotkey combo's to check if this is expected behavior and it doesnt seem so.
EDIT: I should include my keyboard just incase thats the problem: It is a Microsoft Natural Ergonomic Keyboard 4000 v1.0
VS Code version: Code 1.25.1 (1dfc5e557209371715f655691b1235b6b26a06be, 2018-07-11T15:43:53.668Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz (2 x 2904)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: disabled_offnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwarevideo_decode: enabledvideo_encode: enabledvpx_decode: enabledwebgl: enabledwebgl2: enabled

Memory (System)
31.86GB (20.74GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (10)

Extension
Author (truncated)
Version

fortran
Gim
0.2.0

gc-excelviewer
Gra
2.1.24

language-julia
jul
0.10.2

fortran
krv
0.4.5

linter-gfortran
krv
1.3.1

rainbow-csv
mec
0.4.2

python
ms-
2018.6.0

csharp
ms-
1.15.2

PowerShell
ms-
1.8.1

vba
spe
1.2.0

This is likely an issue with the python extension https://github.com/Microsoft/vscode-python/


Errors in creating conda envoirnment

I was following the steps in creating the conda env. Initially I have cloned the repository and on navigating to the detection/ folder, I have run conda env create -f conda-gpu.yml but the command terminated by showing the following error:

Could you please look into this issue and suggest any changes?

Hi, thank you for pointing that out. It seems that conda has removed support for that TensorFlow package. I have updated the yml files. You can download it again or just change the tensorflow-gpu==2.1.0rc1 to tensorflow-gpu==2.1.0.

Should I create the conda enviornment inside the detection directory?

I have successfully ran the script. I just wanted to ask where the output will be produced?
the output to python detect.py --cut_size 100 --image_type tif --image_directory samples/ --output_type boxes

If you are trying to use the example image, please change the --image_type from tif to png. Sorry for the typo.

While running the script using png as an argument, I was getting the following tensorflow related error

I also wanted to ask that I had some TEM images with a .bmp extension. How can I use this model to detect nanoparticles on those files?

For the error, please install the tensorflow-gpu following the website in the error message. It differs for every PC and GPU (pay attention to the CUDA version). (You might need to downgrade numpy by pip install numpy==1.19.5)
For the new extension, you can try to convert it to one of our supported extensions, or you can modify the read image code to support that extension.

I have kept a sample TEM image apart from the exp already present but the code doesn't seem to produce any output image and .txt files.
The Image I have used is

Can you suggest any ways to improve it?

You can try to increase the --cut_size, it should match the diameter of nano-particles (pixels) in your input. If this still does not work well, you can try to label and train the model on your own images (since the nano-particles in your image do not particularly look like ours).

I am suddenly unable to run the python script detect.py due to the following error

Could you please specify that the numbers mentioned in the generated .txt file on running the pre-trained yolov3 model on a sample .png file are in pixels or not?
I just wanted to know what do the 4 numbers physically represent which would help me in creating my own dataset?
Could you please provide a reply to my doubt?

Yes, they are in pixels.
Could you please read the documentation carefully? Here is the documentation about the output_type:

There are 5 types of output offered in the tool.
boxes: Output a txt file with basic bounding boxes in each line (x_min y_min x_max y_max)
center: Output a txt file with center coordinates of boxes in each line (x_center y_center)
center_size: Output a txt file with center coordinates of boxes and size in each line: (x_center y_center width*height)
json: Output a json file that is compatible with labeling software "colabler"
benchmark: Output a txt file for mAP calcuation ('particle' confidence x_min y_min x_max y_max)

Actually, the algorithm doesn't detect all the nanoparticles in the TEM image. I was thinking to create a training dataset in order to train the model with that dataset.
The dataset consists of a .bmp image (which can be converted to a png file) and a JSON file for annotation.
The JSON file contains labels and corresponding points which when drawn upon the image form an irregular boundary around the detected particles.

These points when drawn over a sample TEM image look like this:

I have gone through the readme file in the training folder, the training data for this model expects the ImagePath and the starting and end coordinates of the bounding rectangle which is different from this format, Could you please tell me whether it is possible to train the dataset or provide with some guidelines to proceed with the training dataset in order to improve the performance of the model.
Could you please reply to this issue?

If it is different from our format, you can either change your dataset to our format or try to train some other model. I think the latter is more probable since the input data is quite different from ours. Since this issue does not concern any part of our code, I will close this.


sway-fmt-v2 should actually use the newline style utils implemented before

closes #1926.
After formatting is done and the result is collected, we are now applying the newline style to the resulting FormattedCode.

ready for review?


Too many 400 response code for data.flurry.com/v1/flr.do url, after update to 12.1.0 version

After update to 12.1.0 version , I found that success rate for request with url data.flurry.com/v1/flr.do (data.flurry.com) is only 85 %. 15 % of all response code is 400 Client error

In comparison with other analysts-before that, the difference between analysts was about 5 % on active devices / users. But after the update the difference is about 20 % !!!

Hello, would you be able to give us the name of the app and/or the API key that you're using with 12.1.0 SDK for investigation? Thank you.

Hello, please do provide us with the name of the app and/or API key that is being used with the 12.1.0 SDK for further investigation. You can email us the information to<EMAIL_ADDRESS>thank you.

Hi @shumidub, we are now investigating this issue and hope to get more info about that. May I ask which version did you use before 12.1.0 and what date did you observe the error rate started to increase significantly?

Before we used 11.4.0@aar version, now using - 12.1.0
We updated version to 12.1.0 and uploaded application to Google Play on February 11
And from February 11 we start detected poor success rate

any update ?

This issue is still investigation. Part of the problem is caused by race condition of IO in SDK and it will be fixed in next SDK release. Others are caused by weird network issue. It seemed that our network request will be interrupted so that BE cannot receive the entire body, which caused the 400 issue. And we are still working on understanding the root reason and whether it will cause data lost or not.
BTW, did you also observe data lost after upgrade to new version of Flurry? i.e. active user, number of sessions

Ok, thanks.
Yeas, I guess some of data lost.
In comparison with other analysts - with 11.4.0@aar version the difference between other analysts and flurry was about 5 % on active devices / users.
But after the update to 12.1.0 version the difference is about 20 % !!!
But differnence on other analytics between each other (except flurry) was not changed

Hi @shumidub, after investigation, I think I finally figure out what's going wrong. As I mentioned before, some 400 issues are caused by IO race in SDK, which will cause data lost. It will be fixed in next release. But that only covers small part of the issue. Most of 400 issues are caused by junk data generated by SDK and it will not cause your data lost though you will see many 400 response. We will also address the issue in the next release.
You mentioned that Flurry showed less data than other analytics. But I did see an increase of usage compared to previous version when I checked Flurry backend. So may I ask whether there are still data difference? Has it been better or worse?
It will be of great help for us to debug if you could share more data with us. If you are OK with that, could you please let me know? For safety, I will ask our support team to reach out to you via email so that we can communicate in private channel.

Hello, Could I try 12.3.0 version or should wait next version ?

Hi @shumidub,
The latest SDK release (12.3.0) will improve some of the 400 issues that
are caused by the IO race condition but will not fix the entire issue,
you're welcome to use this version of the SDK for now while we work on the
entirety of the issue which will be fixed in the upcoming version.
Thank you for your patience.
On Sat, May 16, 2020 at 7:52 AM Artem<EMAIL_ADDRESS>wrote:

Hello, Could I try 12.3.0 version or should wait next version ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flurry/flurry-android-sdk/issues/14#issuecomment-629658106,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANLUISFBNR7MACD5N7NBQO3RR2SBZANCNFSM4KZB3AMQ
.


Make clear what counts as free or not free?

I'm a bit confused coming from the loading.io site; can you clarify what is covered in the MIT license in this repo, and what one must pay for?

Hi! Codes in this repo is released  under MIT License so you don't have to pay for it. To be explicit, this includes the repo itself (https://github.com/loadingio/loading-bar) and files in it.


Question: How to cancel navigation to the next step?

In case where step has to validate the user input, I need to stay in the same step with error message.
How can I cancel Next click even?
<pfng-wizard #wizard
         [config]="wizardConfig"
         (onCancel)="closeModal()"
         (onNext)="nextClicked($event)"
         (onStepChange)="stepChanged($event)">

nextClicked($event: WizardEvent) {

        if(validationError) {
           // todo: cancel event
        }
    }

Ok I've figured it out
nextClicked($event: WizardEvent) {
        if(validationError) {
           $event.step.config.allowNavAway = false;
        }
    }


Class hp halved

After updating to the newest version, my actors only get half the hp they should get from their class without the con mod added

You can try enabling the stamina variant rule, and then disabling it again.
That fixed the issue for me.


Firelocks are no longer pryable by hand if they are powered

About the PR

Firelocks are no longer pryable by hand if they are powered. If the firelock is unlocked(it is not containing a dangerous environment) then it can still be opened and closed freely.
Why / Balance

Discussion on this is still ongoing with maintainers but I was asked to make this pr ahead of time. I have no opinion on if this is a good change or not, and in my opinion either is acceptable. I am just waiting on maintainer consensus.
The argument I was provided is the following:
Allowing crew to pry open firelocks with their bare hands allows them to expose the rest of the station to dangerous conditions rendering firelocks ineffective. This is compounded by the lack of other tools to further restrict firelocks.
Technical details

This is the same handling airlocks use, but no message is provided.
The beforepry event is modified to indicate whether a tool was used so we can still allow prying when the firelock is powered and something like a crowbar is used.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

tweak: Locked firelocks can no longer be opened by hand when powered.

consider if you are in a spaced room, now firelocks will require you somehow cut power before you get to safety

consider if you are in a spaced room, now firelocks will require you somehow cut power before you get to safety

if you mean the fact that firelocks now will not be pryable when powered, I know I am currently fixing it. I shrimply prematurely made the pr.

It is intended that powered firelocks become un-pryable by hand. It is too easy to pry a powered firelock. Having easily pryable firelocks is bad for the game because in exchange for one main character exercising "agency" in being able to escape, many more players lose agency when they die for reasons outside of their control. This change is better for "net agency".
Furthermore, there is no need for pryable firelocks to escape situations. @Emisse maps stations such that sections that are segmented by firelocks have an alternative route through maintenance most of the time. You are welcome to report cases where this is not true as a mapping issue.

Thanks!


Add ability to clear, overwrite cache; some bug fixes

Kind of a lot going on for one PR, but here's the gist:

Add clear(session::CachedSession) to clear the cache -- it just deletes the file.
Add overwrite keyword to force overwrite the cached result.
Various bug fixes

I'm happy to discuss any of these changes.

This needs some work.

Thanks @crbinz
Feel free to reopen or submit an other PR


[feature] Support watch any k8s resource

User may want to watch their own crd objects, like advanced-statefulset in openkruise.  Current object types is too few.\
Actually, if user config kube-watch controller rbac correcly, we can use k8s.io/client-go/dynamic/dynamicinformer to watch any unstructured object if we know it's gvk info (resources can be found by discovery client)\
By this implementation, pkg/controller/controller.go::Start() function will be more short and clear. We can remove so many if conf.Resource.XXX branch.

Hi @Colvin-Y, can you try this branch and let me know how it works for you?
https://github.com/robusta-dev/kubewatch/pull/76

Hi @Colvin-Y, can you try this branch and let me know how it works for you?
#76
Hi @aantn,
Uhuh，nice PR! implementation is same as what I think. I'd like to try it recently, may this weekend.
Btw, why dont'u refactor controller.go to tidy so many if conf.Resource.XXX case. \

Yes, I think it it possible. It is quite an eyesore right now.

Now supported in the latest version!


docs: add proof doc

I'll pick this up and expand it a bit.

Code changes have been split out to #248.

@tessr I expanded quite a bit on Tim's original draft, rewriting most of it - let me know what you think.


Allow for Backup labeling

https://github.com/longhorn/longhorn/issues/563
This PR extends the longhorn-manager API to allow users to be able to label Backups of Snapshots.
Calls to the snapshotBackup action on a Volume will now properly parse the Labels field of a SnapshotInput in order to validate them, making sure that every Label key conforms to a Kubernetes Qualified Name and that every Label value is non-empty. Additionally, the validation will ensure that none of the provided Label keys are reserved keywords (currently KubernetesStatus, RecurringJobLabel, and ranchervm-base-image). These will be passed to the Engine API, which will then make the appropriate calls with the map of Labels on the longhorn-engine to create the Backup with those Labels.
Additionally, the snapshot subcommand of longhorn-manager, which is used in RecurringJobs, has been modified to read the KubernetesStatus property of a Volume during a Snapshot/Backup, marshal that into JSON, and then set it as an additional Label on the Snapshot or Backup. That means that Snapshots and Backups created by the RecurringJob functionality will now automatically have KubernetesStatus and RecurringJob set as Labels.
As an aside, because the BackupSnapshot method of VolumeManager is still calling SnapshotBackup of Engine API in a goroutine, any errors reported on Backup initialization by that call will not be passed back to the user during the Request, meaning that even if validation passed on the longhorn-manager end and the user receives a 200 OK response from the server, the Backup may not be initialized. This should be fixed in a separate PR.

Moved the reserved Label keys into a single slice instead of generating a new one every time on method call.
Moved validation of Labels into the util package for other methods to use.
Marked failed marshal of KubernetesStatus as a BUG in the log.
Allowed user to specify Labels on a RecurringJob.
Attempt to restore KubernetesStatus on Backup restore, with the LastPodRefAt and LastPVCRefAt fields set to SnapshotCreated.
Modified ParseLabels method to use the same implementation as longhorn-engine.

Check that KubernetesStatus isn't a zero value before setting it on the Backup.
Set KubernetesStatus on only Backups and not Snapshots for RecurringJobs.

Logged error with JSON unmarshal of KubernetesStatus instead of returning an error and stopping the rebuild.
Prevented setting of LastPodRefAt and LastPVCRefAt if the KubernetesStatus could not be unmarshaled.

LGTM. Need integration test.

LastPodRefAt is now only set if the WorkloadsStatus field indicates that it had been referenced by a Pod in the past.
LastPVCRefAt is now only set if the PVCName field indicates that it had been referenced by a PersistentVolumeClaim in the past.

LastPodRefAt and LastPVCRefAt now must also be already empty for them to be set manually.


JAMES-3775 Increase RSpamD scoring stability

RSpamD scoring delegates to many async modules and then aggregate the result. The implicit default task_timeout is 8 seconds which is sometime not long enough to return the full result.
Increasing timeout to a bigger value (say 20s) could let RSpamD enough time to fully score a mail.

On my PC

Can we please run rspamd tests as unstable tests while you investigate this issue / relax assertions to not include scoring?

I investigated the issue and likely it is a bug regarding to RSpamD (reported) and no more we can do at least ATM.

Can we please run rspamd tests as unstable tests while you investigate this issue / relax assertions to not include scoring?

The only place we assert the score (on master) is on a checkHam test which is not observed an unstable score issue.
But sure, relaxing the score there also is better, just in case.

Please rebase @quantranhong1999


Enhancement ideas for regional spot visualisation

Follow-up of #63 / #192
Make the stoppability of the pipeline for interactive visualisation configurable. The CLI program supports image saving and/or interactivity, but the pipeline invocation of this provides no config file hook for allowing the user to say the pipeline should stop for spot visualisation, rather than simply saving the images.

@TLSteinacker WDYT about config for this?
TL;DR
To summarise, I favor something like...
regional_spot_visualisation:
    save_projections: True
    interact: False

where it would be skipping the step if both are False
There are three possible use modes:
a) save 2D projections, no interactivity (current pipeline setup)
b) save 2D projections but also do interactive vis
c) only interactive vis
The CLI for the program to run to do this also supports only using a subset of positions, which in theory could also be configurable, but I wouldn't favor it necessarily. In any case, for the interactive use, the user is going to need to invoke the CLI program anyway, so could specify directly the positions to use by that interface.

This looks really good. I like the idea that the interactive visualisation can be switched on/off in the config file as we might need it whenever we start a new experiment series with new oligo probes, but then the intensity values should remain quite comparable throughout all experiments with these oligos probes.


Add sample for custom dynamic entity data source

Description
Add initial implementation of a sample for a custom dynamic entity data source.
Note that because the Java callout does not track an entity item's location that part of the test design is not implemented.

Checklist:

[x] Set target branch to main (current release) or v.next (next release)
[x] Request a reviewer
[x] Assign a reviewer
[x] Tag reviewer in comment

Assigning to @01smito01 for a first review please.

Assigning to @colinanderson for an extra review since it is the first time I've used custom data source.

@colinanderson

Did you reference another implementation for this?

Initially I looked at the sample code here: https://devtopia.esri.com/runtime/common-samples/blob/main/designs/AddCustomDynamicEntityDataSource/implementation-details.md

@D-R-Smith based on .Net I wonder if you should move
    try (BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName))) {
      allJsonLines.addAll(bufferedReader.lines().filter(Objects::nonNull).toList());
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }

into the observation processing. Reading all the lines into an array isn't really "connecting" in my mind. If you did that it would be ok to say connect is done immediately so you end up with something like
return CompleteableFuture.completedFuture(null).whenDone((u, t) -> {
  // if no exception start pushing observations
});

@colinanderson I've pushed some changes to the connect / completable future code.

@colinanderson Thanks for the guidance so far - I've pushed the changes from the latest comments.

@colinanderson  Updated to use the DynamicEntityDataSource properties to check for FAILED and to use completeAsync.


Not all races populated from compendium

Hello,
On a fresh dnd 5e game world it looks like the races are not being populated properly from the compendium:

I can select hill dwarf, but not dwarf for example.
Let me know if there's anything else I can proved to debug.
Foundry V.9.242
D&D 1.5.6
Hero Creation Tool 1.5.5
No other modules active

Hi @rhyst ! What races are you missing ? Remember that the SRD does not have all the races from the Player's Handbook, only a single subrace each, and no variant ones. And if memory serves right, those should be all actually: (as a side note, the tool lets you pick only final races, so if a race has subraces (say, Elf), you can't pick it up, only the subraces (continuing with the example of Elf, that would be High Elves only)
In the screenshot I can see:

Dragonborn
Dwarf (Hill)
Elf (High)
Gnome (Rock)
Half-Elf
Halfling (Lightfoot)
Half-Orc
Human
(I see a little bit of extra scroll, I imagine that's the Tiefling)

Ah, I was not familiar with what the SRD is but that makes sense now that I have looked it up. Thank you for your response!


Fixed respect to query.WithCommit() flag for tx.Execute in query service

Pull request type

Please check the type of change your PR introduces:

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 42.96%. Comparing base (1a85c10) to head (64ce8d5).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1365      +/-   ##
==========================================
+ Coverage   41.72%   42.96%   +1.23%
==========================================
  Files         348      285      -63
  Lines       35104    25661    -9443
==========================================
- Hits        14646    11024    -3622
+ Misses      19979    14183    -5796
+ Partials      479      454      -25

Flag
Coverage Δ

go-1.20.x
42.96% <ø> (-0.63%)
:arrow_down:

go-1.21.x
?

go-1.22.x
?

macOS
42.96% <ø> (+1.72%)
:arrow_up:

ubuntu
?

unit
42.96% <ø> (+1.23%)
:arrow_up:

windows
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Deprecate Primer::LayoutComponent in favor of Primer::Alpha::Layout

Description
This deprecates Primer::LayoutComponent in favor of Primer::Alpha::Layout and provides a migration guide.
Integration

Does this change require any updates to code in production?

It doesn't require any, but it does deprecate a component that's used in several places.
Merge checklist

[ ] Added/updated tests
[X] Added/updated documentation
[ ] Added/updated previews

Thanks!


WIP: Host terminal instructions to geospatial GUI software

Updated the sentence to load these GUI modules in Puhti web interface from Host terminal:

GRASS
QGIS
SNAP
SAGA
geoconda (for Spyder)

revisiting geoconda (cleaning up instructions) now

https://csc-guide-preview.rahtiapp.fi/origin/swi-ood/apps/geoconda/


Fixed a couple of the templates where the hyperv-iso builder got mixed up with the post-processors

@dragon788 noticed that there were a few templates where the hyperv-iso builder somehow worked its way into the post-processors. Since it's a builder (and not a post-processor), this resulted in the templates being unable to be validated, and really the templates were just busted.
This PR fixes the two templates that I found with this issue, and also fixed a bunk schema validation in the win7x64-enterprise-cygwin.json template.
This closes PR #192.

Until we integrate packer validate as part of testing, here's some evidence showing the relevant templates now validated after this PR.
$ for name in eval-win7x64-enterprise-cygwin eval-win81x64-enterprise win7x64-enterprise-cygwin; do packer validate $name.json; done
Template validated successfully.
Template validated successfully.
Template validated successfully.


Wildfly build tools 1.0.0.Final

Linux Build 19 is now running using a merge of f13e7542e434a3aa996a0179c7be826257a12d03

Core - Full Integration Build 17 is now running using a merge of f13e7542e434a3aa996a0179c7be826257a12d03

Windows Build 18 is now running using a merge of f13e7542e434a3aa996a0179c7be826257a12d03

Windows Build 18 outcome was SUCCESS using a merge of f13e7542e434a3aa996a0179c7be826257a12d03
Summary: Tests passed: 3101, ignored: 66 Build time: 0:21:28

Linux Build 19 outcome was SUCCESS using a merge of f13e7542e434a3aa996a0179c7be826257a12d03
Summary: Tests passed: 3101, ignored: 66 Build time: 0:24:51

Core - Full Integration Build 17 outcome was FAILURE using a merge of f13e7542e434a3aa996a0179c7be826257a12d03
Summary: Tests failed: 1 (1 new), passed: 2843, ignored: 375, muted: 1 Build time: 0:55:46
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.integration.ejb.client.descriptor.EJBClientDescriptorTestCase.testClientInvocationTimeout: <no details avaliable>


FEATURE Event Modal

To make this pass linting I had to include bootstrap (only import Modal) and the requirement @popperjs/core, so the dist/js/bundle.js file is a quite hefty 388KB.
We could consider turning off linting and relying on the main bundle to have these libraries so we're not pulling them in twice.

removing bootstrap and popperjs reduces the file to roughly 315KB


1.0.61 causes rebuilds after restarting VScode with rust-analyzer

Since updating one of my projects to anyhow 1.0.61

rust-analyzer rechecks anyhow and everything that depends on it on each start of VScode
Running rust build etc. in a terminal rebuilds anyhow and everything that depends on it after rust-analyzer rechecked it

For larger projects with anyhow deep in their dependency chain, these frequent rebuilds can get quite annoying.

Thanks for the report. This was put in as a workaround for the builds just altogether failing (https://github.com/rust-lang/rust-analyzer/issues/12973). There is a fix in https://rust-analyzer.github.io/thisweek/2022/08/15/changelog-142.html#fixes so we can just remove it and count on people to upgrade rust-analyzer.

Could you confirm whether this is gone with 1.0.62?

Yes, working fine now, thanks!


Report the raml filename at end of processing if there are issuesToReport

When raml-cop processes a valid file then it gives a green "VALID" message and shows the filename.
When there are problems with the raml or schema or examples, then raml-cop reports each of those and gives a clue about which file is the origin.
However it would be useful to also report the outer RAML filename at the end with a yellow "Has issues" or some such.
It is not really needed when only processing one file. But when doing raml-cop *.raml it can be difficult to know which raml file had the problems. Normally one can get a clue from the individual messages, but when the issues arise from "example" files, then sometimes the messages do not tell which raml file has the issues.

Agreed. That or maybe some sort of breadcrumb view.
E.g.
$ raml-cop api.raml
[api.raml>lib.raml>datatype.raml:<line>:<column>] ERROR <message>


Support for double precision in PLY.

Adds double support for PLY coordinates.

Thanks for the PR! Good catch with the double/float memory copy.


Update vim README to use setlocal

Vim now supports setlocal on formatprg (which I requested just because of this plugin https://github.com/vim/vim/issues/1380).  Can we update the README:
- autocmd FileType javascript set formatprg=prettier\ --stdin

+ autocmd FileType javascript setlocal formatprg=prettier\ --stdin

Note that users with an old vim using setlocal will still have things work just as they did if they called set formatprg.  Also, this feature has not been released to MacVim yet, but will for their next release.

Could you send a pull request instead of an issue, this way we could merge it if it is something we should do? Thanks!


Support sub-directories within docker-entrypoint-initdb.d

As it stands, the docker-entrypoint-initdb.d folder will only run the scripts from it's root.
I have a scenario where it would be extremely tidy for it to run  all scripts from directories placed in the root also (recursively would be nice too but probably not required).
This makes the managing of a multi-version application deployed in multiple environments much more simplistic. It allows us to group our scripts by folders making them more understandable, readable and easier to avoid the alphabetical ordering of all the scripts (this could be done by the grouping folders).
I can make this change easily enough myself and more than happy to create a pull request to see if others would find it beneficial also.
What do you think team?

https://github.com/docker-library/postgres/pull/606

Maybe we just recommend users mount a script and have it run other scripts in their folders.

Duplicate of #179
I think we are still hesitant to have such a possibly breaking change (even more now with the long precedent of the current behavior).
So the current script users need to create would be a copy lines 145-163 to get the same behavior.
https://github.com/docker-library/postgres/blob/db452338a99764f0141aae60f7267a58f665e6b7/docker-entrypoint.sh#L145-L163
Hopefully #496 will be finished up soon and that should make it easier for the custom script.  Once merged the script would be roughly one line of code.
#!/bin/bash
# script will need to not be executable (chmod -x) so that it gets sourced rather than executed
# that is the current behavior, but this function doesn't exist yet
docker_process_init_files /docker-entrypoint-initdb.d/*/*
# or something else to better control the order of script and sql processing

Thanks for the response @yosifkit .
That's a shame, breaking changes shouldn't always be considered a stopper from releasing a new feature! Especially in a case like this where people probably shouldn't really be putting folders in if they don't expect them to be used.
Maybe it could be reconsidered for the next major version :-), then those updating will know the potential of breaking changes when updating.
Thanks for sending through the potential alternative, I'll keep my eye on that change making it's way through.

Closing since this is not something we want to add.
Since scripts initdb scripts can be sourced (https://github.com/docker-library/postgres/pull/452) and everything in the script is functionalized (https://github.com/docker-library/postgres/pull/496), a custom script in initdb can easily use the docker_process_init_files function to recurse as deeply as desired.
Related issues https://github.com/docker-library/postgres/issues/179, https://github.com/docker-library/postgres/issues/605, https://github.com/docker-library/mysql/issues/192, https://github.com/docker-library/mysql/issues/193


update version in package.json and cargo.toml to 0.20.1

Update the version info of the package to 0.20.1 next tag.

why do we need this?
GitHub actions theoretically will use the release version and override these values just before publishing

GitHub actions theoretically will use the release version and override these values just before publishing

I didn't realize that github action was adding it automatically at release. It does feel weird because the current version values can be misleading. Should I just put 0.0.0 as a placeholder ?

GitHub actions theoretically will use the release version and override these values just before publishing

I didn't realize that github action was adding it automatically at release. It does feel weird because the current version values can be misleading. Should I just put 0.0.0 as a placeholder ?

yes, I think it makes more sense to have 0.0.0 there


[🐞] Tailwind Css Plugin causes weird styling issues

Which component is affected?
Qwik Runtime
Describe the bug
if tailwind is installed for using npm run qwik add tailwind. If you make any change to a component$, it will cause some weird styling issues that wouldn't happen otherwise if you are using css modules instead.  If the server restarts the styling issue goes away until another change is made or all tailwind styles are removed and server restarts.
e.g inside the hero component the text will get small once tailwind is added
Reproduction
https://stackblitz.com/edit/qwik-starter-pprh6b?file=src/components/component.tsx
Steps to reproduce

run npm run dev

create or use a preexisting component with it's respective css module

add a class to change the text color of something

styles update properly and no styling issues

run npm run qwik add tailwind

start server using npm run dev

instead of using the css module class change the text to use tailwind style syntax e.g text-red-500

small production video if my steps to reproduce are unclear
https://user-images.githubusercontent.com/75548271/236893012-d573f0f2-e68c-495e-9d10-9eb10a8c7044.mp4
System Info
System:
    OS: macOS 13.3.1
    CPU: (10) arm64 Apple M1 Pro
    Memory: 85.22 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.15.0 - ~/.nvm/versions/node/v18.15.0/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.5.0 - ~/.nvm/versions/node/v18.15.0/bin/npm
  Browsers:
    Chrome: 112.0.5615.137
    Safari: 16.4

Additional Information
I'm not sure if tailwind's css classes are messing with the base styles that the qwik app is provided with, but I haven't looked too deeply into it.

Hi, is it still an issue with the latest version of Qwik?


Rename TxAuthGenericAlg to TxAuthGenericArg

What is this PR for?
Rename to TxAuthGenericArg from TxAuthGenericAlg.
Overview or reasons
Looking at the spec, Web Authentication: An API for accessing Public Key Credentials Level 1 -> 10.3. Generic Transaction Authorization Extension (txAuthGeneric), I think TxAuthGenericAlg is simply typo.
Tasks
Renamed with IntelliJ's refactoring feature.
Result
Successfully renamed

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

@pinzolo
Thank you very much for your help. However, there is a conflict, so please check this part.


The link to Unrestricted File Upload is broken

The link: Unrestricted File Upload to https://www.owasp.org/index.php/Unrestricted_File_Upload does not work. It results in a 404.
I believe the link should be changed to https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9a5cfa38-0e6c-4346-dafc-84ea5c513fcf
Version Independent ID: c6787f0f-3e9a-6efb-0e6e-5ccb957d3f4a
Content: Upload files in ASP.NET Core
Content Source: aspnetcore/mvc/models/file-uploads.md
Product: aspnet-core
Technology: aspnetcore-mvc
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

They're forwarding for me; but yes, let's definitely avoid the redirect. I'll patch it up.
Thanks @jasekiw!

@guardrex Thanks!


CommonConfig - number of columns

Think about how many columns we need to meet the scalability requirements.
Think about if we want to optimise it for smart contract verifiers

Advice = 20 To fit Integers
Fixed = 11 To fit MainGate, Poseidon, Lookup Tables
We are not optimising for smart contracts

I have one question. @lazovicff
If we are going to use Lookup Table, we should introduce the TableColumn, like MockCommonConfig.
Hence, I think we should use Advice = 20, Fixed =10, TableColumn = 1.
And I add the use of Lookup Table in next PRs.
What do you think?

Yes, sounds good. That is the plan

Chips to update:

Integers
MainGate
Set membership
LessThanEqual

All of these chips should utilise the columns maximally before switching to the next row


Support non-string array in picklist

According to the docs, picklist does not seem to limit the element's type.

For a set of values represented by an array, you can use the picklist schema function.

import * as v from 'valibot';

const Index = [0, 3, 7] as const; // readonly [0, 3, 7]
const IndexSchema = v.picklist(Index); // Error ts(2345)

However, passing a number array shows the following error.

Type readonly [0, 3, 7] is not assignable to type readonly string[].

Thank you for reporting this issue. I will review and improve the documentation. What is your use case for using numbers? Maybe we should extend picklist to all primitive literal values.

I am currently using this type guard inside my application
export const grades = [1, 2, 5, 6] as const;
export type Grade = (typeof grades)[number];
export const isValidGrade = (grade: number): grade is Grade => grades.includes(grade as Grade);

When validating the submitted form data, this is the best I have replicated.
coerce(number([custom(isValidGrade)]), Number);

const grade = parsed as Grade; // type casting is required.

Maybe an union is the right choices in your use case:
import * as v from 'valibot';

const Schema = v.union([
  v.literal(1),
  v.literal(2),
  v.literal(5),
  v.literal(6),
]);

I will nevertheless investigate whether it makes sense to extend picklist.


Update db/structure.sql from Transition

Bouncer and Transition share a database, so we should keep the structure.sql here up to date when we modify the database schema in Transition. It looks like we haven't done this for a while, so there are a few changes, although none which affect tables used by Bouncer.
Generated with rake db:structure:dump in Transition and copied over.
https://trello.com/c/MGtcYgQV/549-fix-limit-on-archive-url-length-when-importing-batches-in-transition

:+1:


Neurocombat on 3D volumes

Hello,
I am working on 3D CT images and trying to apply neurocombat on 3D volumes where my features are voxel intensities. I transformed for each image the 3d array of voxel intensities into a long 1d vector by concatenating the slides. This allows me to create a matrix where each column is one image. Then I applied neuroCombat on the matrix, and transformed back each harmonized column into a 3d array with the original dimensions. However, the background intensities interfere with the results and poses problems for the NeuroCombat model (harmonized results are worse than original images). Could you please tell what is the strategy to follow when features are individual voxels? I would appreciate it if you could direct me to a code example where neurocombat is applied on voxel intensities.

Hi,
I’m experiencing a similar issue. Specifically, I’m having trouble converting a 1D vector back into a 3D volume when saving an image. The resulting matrix contains NaN values. Could you provide a code example to address this problem?
Thank you
Mariana


Refinance refactor

I haven't tested the connector yet, will soon test it

I haven't tested the connector yet, will soon test it

It's done. Right? Testing's still remaining?

It's done. Right? Testing's still remaining?

Tests worked successfully:
Aave v1 to v2
Aave v2 to v1

Tests worked successfully:
Aave v1 to v2
Aave v2 to v1


Update welcome page icon

Update the welcome page to use the new ADS icon.

merging to add to release port request.

Pull Request Test Coverage Report for Build 350488608

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 40.217%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/jupyter/serverInstance.ts
4
73.81%

Totals

Change from base Build 350467978:
-0.01%

Covered Lines:
21119

Relevant Lines:
48257

💛  - Coveralls


typeahead: Remove all sources of white space inside strong element.

We are using white-space: pre which doesn't condense whitespaces, so we need to remove any unintentional whitespaces here.
discussion: https://chat.zulip.org/#narrow/stream/9-issues/topic/channel.20typeaheads.20indented

before
after

Nice, merged, thanks @amanagr!


Add promises to readme

This issue (https://github.com/revelrylabs/elixir-nodejs/issues/61#issuecomment-826358472) had a request to add information to the readme. I added the handling promises example from that issue into the README.md.

thanks @kkreine !


nixos/pantheon: enable xdg desktop integration

Description of changes
This prevents the embarrassing situation in https://github.com/NixOS/nixpkgs/pull/163828 from happening again.
Things done
I am testing this.

@ofborg test pantheon


Update ardoq-tutorial.md with note about expected role values

Added note about which role "values" Ardoq expects

@Oddsor : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@oddsor - Could take a moment to sign the Contributor License Agreement (CLA)? Then, we'll merge the pull request. Thanks.

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


(experiment. Do not merge) may fix mac failures

The sporadic thread.join() failures in mac end2end tests are happening because WorkerThread destructor (in src\cpp\thread_manager\thread_manager.c) is being called twice - in some cases (whats even more alarming is that the destructor seems to recursively call itself a second time - as per the call stack).
Undoing one of the recent changes to thread_manager to see if it fixes the mac failures

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences


Linux ABI for Pointer Masking

The RISC-V pointer masking standard is out for public review:
https://lists.riscv.org/g/tech-announce/message/381
In parallel, Linux patches that add pointer masking to the Linux ABI have been sent to the Linux kernel mailing list:
<EMAIL_ADDRESS>We would like to bring this to the attention of the psABI group and welcome any feedback as part of the public review (the review period ends on April 19). In particular, please let the group know if there are any concerns from a psABI perspective. We believe that the current proposal does not fundamentally diverge from other architectures on Linux, which already allow passing certain tagged user pointers into the kernel via system calls.
The standard does not yet specify semantics associated with these tags. Future work on the ABI side may wish to mandate specific semantics for pointer tags passed across the kernel boundary and/or between processes. For such semantics, RISC-V may want to establish a process (e.g., managed by RVI) to assign tag bits to different use cases, since they represent a constrained resource.

Thanks for the quick response! The reasoning was the following: The pointer masking standard under review is only the base functionality needed for HWASan (other use cases were deferred until later; including the ability of user mode to reconfigure pointer masking itself). For HWASan, pointer masking is configured on a per-process basis. Within the same process, all tagged pointers are handled like any other pointer when, e.g., being passed between libraries (identical to how HWASan works on other architectures).
There are currently no defined use cases beyond HWASan, although it is expected that future extensions and use cases building on top of pointer masking (e.g., the memory tagging standard that is currently getting started) may have psABI implications. This was part of the reason for the last paragraph in my message.
Based on your comment, it sounds like this needs more discussions from the toolchain/psABI side, and so it seems particularly timely to start a conversation now. What would be your preferred way to proceed? (e.g., starting an email thread, discussing on this GitHub issue, some group call?)

I would suggest putting forward a proposal on this issue with what you believe the psABI specification should be.

(and pointing out that libraries and applications, e.g. Qt's QJSValue in Qt Declarative, make assumptions about what they can do with high bits of pointers, so repurposing them for something else has software-visible effects that are hit in the real world)

(and pointing out that libraries and applications, e.g. Qt's QJSValue in Qt Declarative, make assumptions about what they can do with high bits of pointers, so repurposing them for something else has software-visible effects that are hit in the real world)

This is an interesting point, as software using the high bits for its own purposes (unless these are explicitly masked off before dereferencing) without pointer-masking is making false assumptions about its runtime environment.
For me this brings up the opposite question: how should software signal to the runtime that it depends on pointer-masking? And could the PMLEN be a selection criteria for ifunc to use either an optimized implementation that pushes the masking to hardware or fall back to masking in software?

For me this brings up the opposite question: how should software signal to the runtime that it depends on pointer-masking?

It could make sense to put the software's minimum required PMLEN in the ELF header somewhere. I see GCC has an -mlam option for x86, but this is not saved anywhere in the object file. The dynamic linker could use this information to automatically request pointer masking from the kernel.
This raises the question of how the linker should handle objects with different PMLEN requirements: raise an error? max()?

And could the PMLEN be a selection criteria for ifunc to use either an optimized implementation that pushes the masking to hardware or fall back to masking in software?

The software masking operation is two instructions (shift left, shift right, plus loading PMLEN if the number of tag bits used by software is not constant). So anything that adds overhead is going to be more expensive than unconditionally doing the masking in software. I assume you mean using PMLEN in the selection criteria for functions which already use ifunc?

And could the PMLEN be a selection criteria for ifunc to use either an optimized implementation that pushes the masking to hardware or fall back to masking in software?

The software masking operation is two instructions (shift left, shift right, plus loading PMLEN if the number of tag bits used by software is not constant). So anything that adds overhead is going to be more expensive than unconditionally doing the masking in software. I assume you mean using PMLEN in the selection criteria for functions which already use ifunc?

ifunc resolution is a one-time overhead at program startup.  So replacing a hot function that masks pointers using a sll+srl with a function that relies on hardware-masking will not incur any overhead after the initial ifunc resolution.

@SiFiveHolland

I think the implication of 3. is that the psABI should mandate that the high bits of pointers retain their original values across function calls (in other words, software following the RISC-V ABI should always see sign/zero-extended pointers, but without needing to know which address translation mode is in use).

Pass pointer across function is not get sign or zero extension, since we don't have ilp32 on RV64, that's the only combination may happen extension (we don't formally define that ABI variant so I say may).

Also I am not fan of asking dynamic linker to reserve or request pointer masking from the kernel, I suspect dynamic linker can't give right/precise diagnostic message when something wrong, this can be done very easier by constructor function or crt start stuffs rather than dynamic linker IMO.

And could the PMLEN be a selection criteria for ifunc to use either an optimized implementation that pushes the masking to hardware or fall back to masking in software?

The software masking operation is two instructions (shift left, shift right, plus loading PMLEN if the number of tag bits used by software is not constant). So anything that adds overhead is going to be more expensive than unconditionally doing the masking in software. I assume you mean using PMLEN in the selection criteria for functions which already use ifunc?

ifunc resolution is a one-time overhead at program startup. So replacing a hot function that masks pointers using a sll+srl with a function that relies on hardware-masking will not incur any overhead after the initial ifunc resolution.

Right, but functions using ifunc cannot be inlined, so there is only no overhead if the function doing the pointer masking is already out of line. My point was that ifunc will not remove all software pointer masking, since not all functions containing inlined pointer masking operations will be worth duplicating just to remove the shift instructions. I think we are in agreement on this, if you are selecting specific hot functions for ifunc optimization. My initial assumption was still wrong; thanks for clarifying.

I think the implication of 3. is that the psABI should mandate that the high bits of pointers retain their original values across function calls (in other words, software following the RISC-V ABI should always see sign/zero-extended pointers, but without needing to know which address translation mode is in use).

Pass pointer across function is not get sign or zero extension, since we don't have ilp32 on RV64, that's the only combination may happen extension (we don't formally define that ABI variant so I say may).

I'm referring to the sign/zero extension from 48 or 57 bits to 64 bits that is the "ignore transformation" defined by the pointer masking extension. In other words, software should always see "canonical" pointers, though the RISC-V Privileged spec never uses that term.

I'm referring to the sign/zero extension from 48 or 57 bits to 64 bits that is the "ignore transformation" defined by the pointer masking extension. In other words, software should always see "canonical" pointers, though the RISC-V Privileged spec never uses that term.

User mode software mostly don't need to aware that, I only aware ASan need to know that, otherwise the pointer mostly come from kernel, e.g. mmap, then keep the pointer unchanged during the whole life time of the user mode software.
Anyway, we don't need more wording for this on psABI site so far IMO :)

Pass pointer across function is not get sign or zero extension, since we don't have ilp32 on RV64, that's the only combination may happen extension (we don't formally define that ABI variant so I say may).

Just to get a sense of where everyone stands on the ILP32 question of needing to zero-extend (and ideally not having to insert zext.w intructions) the 32bit address before loading from it: would we prefer a solution with pointer-masking (PMLEN=32) or using special ld-instructions (that zero-extend a 32bit address after address-calculation) for ILP32?

I think it'd probably be the latter. Conceptually, pointer masking is an operation that happens at the very last step before a memory access is performed, so any ILP32-related zero extension is conceptually independent from pointer masking, in my view (and makes pointer masking a no-op with the currently defined PMLENs).

I'm referring to the sign/zero extension from 48 or 57 bits to 64 bits that is the "ignore transformation" defined by the pointer masking extension. In other words, software should always see "canonical" pointers, though the RISC-V Privileged spec never uses that term.

User mode software mostly don't need to aware that, I only aware ASan need to know that, otherwise the pointer mostly come from kernel, e.g. mmap, then keep the pointer unchanged during the whole life time of the user mode software.

The problem is that there are specific cases where user software leaving the pointer unchanged is not sufficient.
Say for example you have a user program that uses malloc() to allocate a buffer, JITs some instructions into it, casts the address of the buffer to a function pointer, and calls the function pointer. This is perfectly valid with the existing ABI.
Now say you have a libc where the malloc() implementation generates and returns tagged pointers, and the free() implementation checks the tag to catch double-free errors. The ABI problem is that you cannot link the above user program to this libc implementation, because the "call the function pointer" step will crash if the pointer is tagged.

Anyway, we don't need more wording for this on psABI site so far IMO :)

I would want to be able to point to some text in the psABI to clarify that the above libc implementation is not conforming. But I'll defer to the opinion of the psABI maintainers.

Now say you have a libc where the malloc() implementation generates and returns tagged pointers, and the free() implementation checks the tag to catch double-free errors. The ABI problem is that you cannot link the above user program to this libc implementation, because the "call the function pointer" step will crash if the pointer is tagged.

I have been working on HWASan, and me and people on my team agree we wouldn't support that. Allocating a buffer from malloc and using it for code seems like a bad idea for various reasons. One of them is around W^X, you would need to mprotect malloc memory to make it non-writable and executable, which is not something you should do (and you'd have to mess around to get something properly around in the first place). People should just use mmap if they want memory for code.

Hi everyone! Closing the loop on this as we are wrapping up public review for pointer masking. It sounds like we agree that, for the most part, psABI will not require to cover pointer masking. The main open question is whether we would consider passing tagged pointers across boundaries psABI conforming or not, which may be worth documenting.
If we define it to be non-conforming, HWAsan environments would effectively have their own psABI, but be mostly compatible with standard compiled software as it is the case on other architectures today (with the exception of some software that uses tag bits for other purposes). If we define it to be conforming, we would likely need to define that a psABI compliant function calls must not modify the top bits of pointers.
Based on Florian's comment, it sounds like both should be possible.

It sounds like we agree that, for the most part, psABI will not require to cover pointer masking.

Yes from my point of view as psABI chair, we may need some wording for pointer masking on psABI in future, but it's not  now since we don't have clear usage and request for that yet.

I gonna close this issue, feel free to reopen or open a new one if needed.


comparingOnlyFields get data of all fields

When using comparingOnlyFields with usingRecursiveComparison assertions, all of my entity fields are loaded, but only want I want is compared.
The problem is that if I have Lazy fields that are not in my comparison list, they will be loaded, and a LazyException will be thrown.
Only wanted fields should be loaded in the comparison map.

assertj core version: 3.24.2
java version: 21
test framework version: jUnit 5.10.2
os (if relevant):

Test case reproducing the bug
We need 2 entities linked by a ManyToOne for example a User with his City
We get the 1st entity and we want to test only his name and his id comparing to a given dto
We will write:
MyEntityDto dto = new MyEntityDto().setName("test").setId(1);
assertThat(myEntity).usingRecursiveComparison().comparingOnlyFields("name", "id").isEqualsTo(dto);
But test will failed with Lazy exception on myEntity.city, even if I don't ask to compare this field.
import javax.persistence.*;

@Entity
public class City {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String postalCode;
}

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String firstName;
    private String lastName;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "city_id")
    private City birthCity;
}

import org.springframework.data.jpa.repository.JpaRepository;

public interface CityRepository extends JpaRepository<City, Long> {
}

public interface UserRepository extends JpaRepository<User, Long> {
}

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;

@DataJpaTest
public class UserRepositoryTest {

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private CityRepository cityRepository;

    @Test
    public void testSaveAndRetrieveUser() {
        // Create and save a City
        City city = new City();
        city.setName("Paris");
        city.setPostalCode("75000");
        city = cityRepository.save(city);

        // Create and save a User
        User user = new User();
        user.setFirstName("John");
        user.setLastName("Doe");
        user.setBirthCity(city);
        user = userRepository.save(user);

        // Retrieve the created user
        User retrievedUser = userRepository.findById(user.getId()).orElse(null);

        // Verify the fields of the retrieved user
        assertThat(retrievedUser).isNotNull();
        assertThat(retrievedUser).usingRecursiveComparison().comparingOnlyFields("firstName", "lastName").isEqualTo(user);
    }
}

I'm hoping to be clear.
Thanks for your time !

Thanks for reporting it, @GuillaumeC!

Indeed, we could try to evaluate if fields are candidates for comparison without accessing their values, I'm not yet 100% sure it is possible, if introspecting a java.lang.reflect.Field forces JPA to load it then it won't work since we have to introspect fields.
I'll test that this week.

@GuillaumeC could you tell us what dependencies we should use to reproduce the test case ?
I'm guessing some spring modules, but which ones exactly and with which versions, thanks !

@GuillaumeC I don't know much about spring boot and so far I haven't been able to compile the test.

Do you know what I'm missing here ?
Maybe It could be easier if you could create a zip with a project reproducing the test if that's not too much work for you ?

I will do it. I need just a little free time to do it.

No rush, take your time and thanks

I'm trying to reproduce with a simple project, but I cannot understand why in my test, my Lazy variable doesn't make any problem (while I see it Lazy), when in my project I have a LazyException throwing.
In the method     Set getActualChildrenNodeNamesToCompare(DualValue dualValue), (RecursiveComparisonConfiguration.java:401)
Gettings node names is ok (getChildrenNodeNamesOf(dualValue.actual)).
After that, a filter is apply shouldIgnoreFieldBasedOnFieldLocation.
Alfter, and before others filters (I don't know why), we get the data values into an DualValue, with method private DualValue dualValueForField(DualValue parentDualValue, String fieldName) (line 430).
In this object, we set the actual value and expected value into DualValue, and when this DualValue is return, in my project, an LazyException is throwned.
But in my mini project, I can see that my value is Lazy with debug, but no exception is thown :-(
In my opinion, shouldBeCompared has to be used before getting field value (for the location part), and after for the value part.
I'm trying a little more to build a project with the Exception throwing.

@joel-costigliola
Seems that DualValue.toString() was called in my project (may be by a log or something like that), when method dualValueForField is returning the DualValue object. toString read values, even if they are lazy, and this is why I have a LazyException.

@joel-costigliola
Sorry for the spam. I DID IT !
demo.zip
To reproduce the case, we need an entity linked to a Set of another entity.
Hibernate calls the hashCode method of the DualValue and it Throws the Lazy Exception.

Awesome, thanks ! I'll try the demo over the weekend
My first thoughts are that if the issue is really the hashCode of DualValue, we could address it by not using values to compute the hash code but only the field location, it would work, but I'm not sure what the impact would be performance wise.

The test succeeds with our latest version but you have to exclude the assertj core version from the spring boot dependency, I changed the pom to
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.assertj</groupId>
					<artifactId>assertj-core</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>3.26.3</version>
			<scope>test</scope>
		</dependency>

@GuillaumeC can you give a try and see if it works on your side ?

@GuillaumeC as you use the spring-boot-starter-parent, you can tune the AssertJ version via the assertj.version build property – more at https://assertj.github.io/doc/#spring-boot

@joel-costigliola @scordio
It's works ! Thank a lot for your time !
So I migrated my project to the last version of assertj with the assertj.version build property.
Have a nice day


Problem with CompositionImageFrame

I tried to use CompositionImageFrame in my project.. the build was successful, but I get a runtime error.. I don't have any idea how to fix it.. this is the exception message:

System.TypeLoadException: Requested Windows Runtime type 'Microsoft.Graphics.Canvas.CanvasDevice' is not registered. ---> System.Runtime.InteropServices.COMException: Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

--- End of inner exception stack trace ---
at System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)
at Microsoft.Graphics.Canvas.CanvasDevice.GetSharedDevice()
at CompositionProToolkit.CompositionGenerator..ctor(Compositor compositor,

Can you please provide more details on this?
Did you add CompositionProToolkit as a NuGet to your project?
Did it also install the Win2d NuGet along with it?
Could you please share how you are using CompositionImageFrame in your code?

after I added reference to Win2d and rebuilt the solution, that error has gone! sorry sir I thought that Win2d dependency will get referenced automatically as I install CompositionProToolkit nugget..
Sir just one more question, does CompositionImageFrame support caching like ImageEx https://github.com/wasteam/waslibs/tree/master/src/AppStudio.Uwp/Controls/ImageEx
in AppStudio.Uwp or the newer version of it, UWPCommunityToolkit
https://github.com/Microsoft/UWPCommunityToolkit/tree/dev/Microsoft.Toolkit.Uwp.UI.Controls/ImageEx
if it does I believe this control would be one of the best Image control for UWP platform..

Well, it is supposed to add a reference to Win2d automatically when you install the CompositionProToolkit NuGet. I tested here on a new blank UWP app. When you add the CompositionProToolkit Nuget it should show the following dialog

ImageCaching feature is not added to CompositionImageFrame yet. This feature is certainly planned for a future release.

Oh I see.. thanks sir, really looking forward to it!


CASM-3717 implement hooks

Summary and Scope
Implements hooks in IUF.

Refactored the sessions.go code into smaller files and more containable corresponding *_test.go files.
There is a corresponding docs-csm change that creates the Argo template for the master_host execution context to run the hook script as part of the Argo workflow.
Added a lot of unit tests to cover the new functionality and some of existing functionality in case I didn't break anything during refactor.

Is this change backwards incompatible, backwards compatible, or a backwards compatible bugfix?
Issues and Related PRs
List and characterize relationship to Jira/Github issues and other pull requests. Be sure to list dependencies.

Resolves CASM-3717
Change will also be needed in https://github.com/Cray-HPE/docs-csm/pull/2954

Testing
Will be testing on frigg today.
Tested on:

<development system>
Local development environment

Test description:
Lots of unit tests
Risks and Mitigations
No
Pull Request Checklist

[x] Version number(s) incremented, if applicable
[x] Copyrights updated
[x] License file intact
[x] Target branch correct
[ ] CHANGELOG.md updated
[ ] Testing is appropriate and complete, if applicable
[ ] HPC Product Announcement prepared, if applicable

@haasken-hpe FYI, I am going to be writing other PRs rebased on top of this one so I can do simultaneous testing on frigg.

Consumed and delivered as part of https://github.com/Cray-HPE/cray-nls/pull/137


add option to specify a naptan dataset other than the online download

Would be great : )

@aclong Sure, should be quite an easy fix. 👍🏻


Check Gtk version on Linux

Wouldn't this only work if the -dev package is installed on debian derivatives and other distros that don't include headers et al by default?

Oh yea.. I got used to Arch that I forgot about the split with the other distros... don't worry I have a plan B that requires try catch :)

Cool, looking forward to it.

What do you think?

Oh lord

I would rather just see a solution for this via https://github.com/mono/xwt/issues/591

Oh lord

It's a good way of doing it... what's wrong with it?

I would rather just see a solution for this via mono/xwt#591

It's gonna take them a long time to do it, just look at how much activity all the other issues had O o. My way on the other hand works, and can be used until they implement a way.
PS. I can't launch TrueCraft with Gtk 2 because I don't have gtk2 webkit installed on my system.
PPS. I use Eto.Forms instead of Xwt these days.

It's a good way of doing it... what's wrong with it?

I'm not a fan, it seems hacky and fragile.

It's gonna take them a long time to do it, just look at how much activity all the other issues had O o. My way on the other hand works, and can be used until they implement a way.

I'm suggesting that you implement it and send them a PR :)

PS. I can't launch TrueCraft with Gtk 2 because I don't have gtk2 webkit installed on my system.

Well, install it or just run the client directly.

PPS. I use Eto.Forms instead of Xwt these days.

Well, TrueCraft uses Xwt.

I'm not a fan, it seems hacky and fragile.

Hacky, yes, fragile, no.

I believe this is now obsoleted by #271?

Well kind of forgot I had this opened... tho I do know of a non hacky way to do this now,
@SirCmpwn Just a warning, webkitgtk is being removed from a lot of distros because it is unseccure, Arch Linux already dropped it, so if you are planning on using Gtk 3 you need to use webkit2gtk, which Xwt is not using.

Of course now I remember why I didn't want to use GTK3. Thanks, @cra0zy.

https://github.com/mono/xwt/issues/713

I'll just point out that I updated Etos Gtk 3 backend to webkit 2, might be useful if you want to do it on the Xwt side: https://github.com/picoe/Eto/pull/747 (or if you want to switch to Eto :P)

I have it compiled on two (Solus) systems using gtk3 and the launcher and webview works fine. The only problem it had was an ssl certificate. which even Firefox complained about going to truecraft.io.
In the 'Xwt.Gtk3.dll.config' by default it uses libwebkitgtk-3.0.so.0

I have it compiled on two (Solus) systems using gtk3 and the launcher and webview works fine. The only problem it had was an ssl certificate. which even Firefox complained about going to truecraft.io.
In the 'Xwt.Gtk3.dll.config' by default it uses libwebkitgtk-3.0.so.0

That is webkit 1 library for gtk 3, and it is already gone from Arch Linux, the webkit 2 library is libwebkit2gtk-4.0.so.37...

Okay Thanks for the correction.


Update connections.py

Why?
this solves a fairly edge case problem with the Athena max query length that can be reached when doing seed tables that have long descriptive string columns.
Why like this?
It's the least invasive and doesn't change the seed methodology so won't break any current implementations. Ideally seed tables wouldn't use insert into commands anyway
open for feedback
Description

Models used to test - Optional

Checklist

[ ] You followed contributing section
[ ] You added unit testing when necessary
[ ] You added functional testing when necessary

closing as we've moved to using the spark adapter


mount volumes within ro volumes causes permanent machine mount failure

TL;DR - doing this in your docker-compose.yml:
volumes:
       - ./abcd:/abcd:ro
       - ./defg:/abcd/defg:ro

will permanently break volume mounts in your current docker-machine and all subsequently created docker-machines on the same host, until the host is rebooted.
Output of docker version:
Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Tue Apr 26 23:44:17 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 23:54:00 2016
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 3
 Running: 1
 Paused: 0
 Stopped: 2
Images: 36
Server Version: 1.12.0
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 59
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null bridge host overlay
Kernel Version: 4.4.16-boot2docker
Operating System: Boot2Docker 1.12.0 (TCL 7.2); HEAD : e030bab - Fri Jul 29 00:29:14 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 995.9 MiB
Name: newm
ID: ZWTS:ZUF2:VZOL:IDVC:WUWH:J3IK:GCR7:JT4G:QDTV:IYG4:RBBQ:ZC4R
Docker Root Dir: /mnt/sda1/var/lib/docker
Debug mode (client): false
Debug mode (server): true
 File Descriptors: 24
 Goroutines: 43
 System Time: 2016-08-12T10:27:29.323758623Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
 provider=virtualbox

Additional environment details (AWS, VirtualBox, physical, etc.):
Running docker on OSX 10.11.5 locally.
Steps to reproduce the issue:
1 - create docker-compose.yml
version: '2'
services:
  crashtestdummy:
     container_name: testcont
     volumes:
       - ./abcd:/abcd:ro
       - ./defg:/abcd/defg:ro
       #  ^^^ this line is the problem, mounting within a ro mount
     image: nginx

2 - create test data
mkdir abcd && touch abcd/foo
mkdir defg && touch defg/bar

3 - build
Pulling crashtestdummy (nginx:latest)...
latest: Pulling from library/nginx
51f5c6a04d83: Pull complete
a3ed95caeb02: Pull complete
51d229e136d0: Pull complete
bcd41daec8cc: Pull complete
Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
Status: Downloaded newer image for nginx:latest
Creating testcont

ERROR: for crashtestdummy  oci runtime error: rootfs_linux.go:53: mounting "/mnt/sda1/var/lib/docker/aufs/mnt/db0db52cc8e9b82a60cef552707ffe6e37f738f1fe57efaf87a95cac618edc60/abcd/defg" to rootfs "/mnt/sda1/var/lib/docker/aufs/mnt/db0db52cc8e9b82a60cef552707ffe6e37f738f1fe57efaf87a95cac618edc60" caused "mkdir /mnt/sda1/var/lib/docker/aufs/mnt/db0db52cc8e9b82a60cef552707ffe6e37f738f1fe57efaf87a95cac618edc60/abcd/defg: read-only file system"
Attaching to

4 - create a new machine
$ docker-machine create --driver virtualbox new4
$ eval $(docker-machine env new4)

5 - fix docker-compose.yml
version: '2'
services:
  crashtestdummy:
     container_name: testcont
     volumes:
       - ./abcd:/abcd:ro
       - ./defg:/defg:ro
     image: nginx

6 - build
Pulling crashtestdummy (nginx:latest)...
latest: Pulling from library/nginx
51f5c6a04d83: Pull complete
a3ed95caeb02: Pull complete
51d229e136d0: Pull complete
bcd41daec8cc: Pull complete
Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
Status: Downloaded newer image for nginx:latest
Creating testcont

7 - attach and inspect the mounts
docker exec -it testcont bash
root@c84386f82b63:/# ls -l /abcd
total 0
root@c84386f82b63:/# ls -l /defg
total 0
root@c84386f82b63:/#

Describe the results you received:
All mount points are now broken for this docker machine (and all docker machines created after this point) until the host system is rebooted.
Existing docker machines created before this point continue to work normally.
If I fix the docker-compose.yml file, create a new docker machine and repeat the above steps, there are no errors about mount points failing, they just aren't mounted at all.
Describe the results you expected:
The second mount point described in the docker file should be broken, the other should be fine.
Resolving the issue in the docker-compose.yml file should fix the problem when the container is rebuilt.
Additional information you deem important (e.g. issue happens only occasionally):
This is reproducible every time for me.
docker-inspect on the second machine shows the mounts should be fine, no errors were reported, but the volumes are simply not mounted.
"Mounts": [
            {
                "Source": "/data/docker-crash-test/defg",
                "Destination": "/defg",
                "Mode": "ro",
                "RW": false,
                "Propagation": "rprivate"
            },
            {
                "Source": "/data/docker-crash-test/abcd",
                "Destination": "/abcd",
                "Mode": "ro",
                "RW": false,
                "Propagation": "rprivate"
            }
        ],

This might actually be a security issue, if a user can knock out the ability for all subsequently created machines to mount volumes... could cause a denial of service for machines the user wouldn't otherwise have access to. Maybe.

This looks like an expected issue; you're bind-mounting abcd at /abcd inside the container, but making it read-only. The defg subsequently tries to create a mount at /abcd/defg, however, because /abcd/ is read-only inside the container, it's not possible to create a mount-point there, so it fails.

I don't see the reproduction steps for;

All mount points are now broken for this docker machine (and all docker machines created after this point) until the host system is rebooted.

could you include that information?

@stampycode I am not able to reproduce, but I see an error in your report;
mkdir abcd && touch foo
mkdir defg && touch bar

You're creating foo and bar next to the directories abcd and defg, not inside those directories;
tree
.
├── abcd
├── bar
├── defg
└── foo

2 directories, 2 files

Changing this to;
mkdir abcd && touch abcd/foo
mkdir defg && touch defg/bar

Makes those files inside the directory;
tree
.
├── abcd
│   └── foo
└── defg
    └── bar

2 directories, 2 files

Then, trying to reproduce:
docker run --rm --name=should-fail -v $PWD/abcd:/abcd:ro -v $PWD/defg:/abcd/defg:ro alpine sh -c 'ls -la /abcd && ls -la /abcd/defg'

docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/mnt/sda1/var/lib/docker/aufs/mnt/10a42a2de16f355b22b7c3ae70f443b25133dbeb6cb0bcc7e287eb43c84ede8d/abcd/defg" to rootfs "/mnt/sda1/var/lib/docker/aufs/mnt/10a42a2de16f355b22b7c3ae70f443b25133dbeb6cb0bcc7e287eb43c84ede8d" caused "mkdir /mnt/sda1/var/lib/docker/aufs/mnt/10a42a2de16f355b22b7c3ae70f443b25133dbeb6cb0bcc7e287eb43c84ede8d/abcd/defg: read-only file system".

docker run --rm --name=should-not-fail -v $PWD/abcd:/abcd:ro -v $PWD/defg:/defg:ro alpine sh -c 'ls -la /abcd && ls -la /defg'
total 4
drwxr-xr-x    1 1000     50             102 Aug 12 11:50 .
drwxr-xr-x   26 root     root          4096 Aug 12 11:54 ..
-rw-r--r--    1 1000     50               0 Aug 12 11:50 foo
total 4
drwxr-xr-x    1 1000     50             102 Aug 12 11:50 .
drwxr-xr-x   26 root     root          4096 Aug 12 11:54 ..
-rw-r--r--    1 1000     50               0 Aug 12 11:50 bar

Second container runs well, and shows that the bind-mounts are correctly mounted, and contents is there

@thaJeztah  - sorry, that was an error in my description, have updated.

my output from your cmd in a new machine:
$ docker run --rm --name=should-not-fail -v $PWD/abcd:/abcd:ro -v $PWD/defg:/defg:ro alpine sh -c 'ls -la /abcd && ls -la /defg'
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
e110a4a17941: Pull complete
Digest: sha256:3dcdb92d7432d56604d4545cbd324b14e647b313626d99b889d0626de158f73a
Status: Downloaded newer image for alpine:latest
total 4
drwxr-xr-x    2 root     root            40 Aug 12 11:14 .
drwxr-xr-x   26 root     root          4096 Aug 12 12:27 ..
total 4
drwxr-xr-x    2 root     root            40 Aug 12 11:14 .
drwxr-xr-x   26 root     root          4096 Aug 12 12:27 ..

What directory are you running that from (on your OS X host)? Is it a subdirectory of /Users? Because only /Users is shared with the VirtualBox machine

I am running this in a subdir of /data/ - which has worked fine up until I discovered this problem.
Honestly hadn't thought that might be an issue.

interestingly, it starts working again if I copy and run from /Users:
$ docker run --rm --name=should-not-fail -v $PWD/abcd:/abcd:ro -v $PWD/defg:/defg:ro alpine sh -c 'ls -la /abcd && ls -la /defg'
total 4
drwxr-xr-x    1 1000     50             102 Aug 12 12:32 .
drwxr-xr-x   26 root     root          4096 Aug 12 12:32 ..
-rw-r--r--    1 1000     50               0 Aug 12 12:32 foo
total 4
drwxr-xr-x    1 1000     50             102 Aug 12 12:32 .
drwxr-xr-x   26 root     root          4096 Aug 12 12:32 ..
-rw-r--r--    1 1000     50               0 Aug 12 12:32 foo

If you bind-mount from another location, docker creates an empty directory on the VirtualBox VM's filesystem, and bind-mounts that directory. If you once had a container that used that location, and wrote files to it, those files are bind-mounted the next time, so perhaps it looked like it worked, but only because the "old" files were present in the VM. Spinning up a new Machine would not have those files, so you'd see an empty directory.
Note that Docker for Mac (https://www.docker.com/products/docker#/mac) is a lot more flexible in this area, and solves issues like permissions, and inotify not working in VirtualBox; you can also share "any" directory on your host, by adding paths;

... now I can't get mounts working outside of /Users at all... it was working this morning...
le sigh
going to install Docker for Mac.

The error is pretty plain here:

It's creating a missing (or not missing, either way doesn't matter here) /abcd dir and then mounting the host path onto it, with readonly
It's attempting to create a missing /abcd/defg in /abcd and failing because /abcd is readonly.

This could probably be fixed (in github.com/opencontainers/runc).. but also curious why you don't put ./defg in ./abcd to begin with.
It's not a security issue since the user already has access to docker. If a user has access to Docker they have root access to your system.

@cpuguy83 The reasoning behind not putting ./defg inside ./abcd to begin with, is because this is simulating putting defg inside the /vendor dir of my application, where both abcd and defg are components only available locally - I don't keep one inside the other to reduce the risk of deleting the dependency through an aggressive composer install or similar, and because there are multiple applications that depend on this dependency.
I would normally have solved this with symlinking the defg dir within the vendors dir in all the local applications - but following symlinks outside of the base docker container dir wasn't supported last time I checked.
This is a local development 'hack' that I use to save myself having to copy the dependency dir to multiple locations.
I'm not aware of how Docker is used securely from a sandboxing perspective, but I would expect that if a server is hosting a docker machine that I have access to via shared key, cert, etc. that I don't automatically have root access to the host server.... and that I wouldn't be automatically granted access to other machines on the same server if I don't have the certs/keys for them - so if I were able to crash my own docker-machine and cause all other docker-machines on the same host to start to fail, would that not constitute a DoS security issue?

@stampycode Any person with access to the docker socket has full root access to the host.

@stampycode access to the docker socket is equal to having root access on the host, for example:
docker run -it --privileged --pid=host debian nsenter -t 1 -m -n sh

gives you a root shell on the host

did not know that.
Thanks guys :)

The error is pretty plain here:

It's creating a missing (or not missing, either way doesn't matter here) /abcd dir and then mounting the host path onto it, with readonly
It's attempting to create a missing /abcd/defg in /abcd and failing because /abcd is readonly.

In my case I'm mounting the project directory as read-only, and trying to mount certain subdirectories as read-write has failed. Are there any plans to fix this?

@teohhanhui are the subdirectories themselves already present in the "project" directory, or are they not present, and docker is trying to create a directory as the mount point?

They do not exist, but these are directories that are only supposed to exist within the container. And that's why the project directory is mounted (from host) as read-only.

So that's the issue; docker cannot create a directory to use as mount point to mount the directory from the host there. Create (empty) directories for those paths in your project and it probably works.
It won't be fixed as it's not a bug


Which Method Calls the User Info endpoint?

Just another quick question here.
Which method calls the user info endpoint? I using manager.getUser(), which I see returns an object with the tokens, but it doesn't seem to call the user endpoint and store the claims returned by the identity provider.

The library does it automatically for you. It will enrich the user profile if requested to do so during the authorization process. You can enable it via the setting loadUserInfo. See documentation and code.

Great, thanks again!