Added a member test to validate Postel's Law

refs https://github.com/TryGhost/Team/issues/1395

Postel's Law: Be liberal in what you accept, and conservative in what you send
The test is editing a member with the full payload that was received from the API

This is the list of the existing errors:
[
  {
    keyword: 'additionalProperties',
    dataPath: '.members[0]',
    schemaPath: '#/properties/members/items/additionalProperties',
    params: { additionalProperty: 'uuid' },
    message: 'should NOT have additional properties'
  },
  {
    keyword: 'additionalProperties',
    dataPath: '.members[0]',
    schemaPath: '#/properties/members/items/additionalProperties',
    params: { additionalProperty: 'geolocation' },
    message: 'should NOT have additional properties'
  },
  {
    keyword: 'additionalProperties',
    dataPath: '.members[0]',
    schemaPath: '#/properties/members/items/additionalProperties',
    params: { additionalProperty: 'avatar_image' },
    message: 'should NOT have additional properties'
  },
  {
    keyword: 'additionalProperties',
    dataPath: '.members[0]',
    schemaPath: '#/properties/members/items/additionalProperties',
    params: { additionalProperty: 'status' },
    message: 'should NOT have additional properties'
  },
  {
    keyword: 'additionalProperties',
    dataPath: '.members[0]',
    schemaPath: '#/properties/members/items/additionalProperties',
    params: { additionalProperty: 'last_seen_at' },
    message: 'should NOT have additional properties'
  },
  {
    keyword: 'type',
    dataPath: '.members[0].note',
    schemaPath: '#/properties/members/items/properties/note/type',
    params: { type: 'string' },
    message: 'should be string'
  }
]


Creating virtual machines ?

Hi,
Is this Python API also meant for creating VMs like the functionality of VBoxManage ? Or is the API mainly for querying/tweaking created VMs ?
Cheers

You can create VMs with virtualbox.Virtualbox().create_machine()


fix: changed twitter icon to x

The Twitter logo has been changed and the new icon is being used on https://configu.com/ but the same hasn't been updated on the docs site https://docs.configu.com/. [Fixes #576]

Closes #

Hi @sarthak-kumar-shailendra ,
Here are the details for claiming your Hacktoberfest prizes! 🎉 Check out #465  (comment) for more information or simply fill out the form here: Claim Your Swag.
Remember, you only need to fill out the form once for all your PRs. 😊


while loop fails on rocm triton but works on cuda

HI guys
I was working on a kernel that using two level of while loop, but i found the script runs fine on cuda, fail on rocm.
I have written a little piece of code to reproduce it.
This code is doing tensor add operation on multiple tensors, and  compare results with torch.
Since there are multiple tensors, I use one while loop on number of vector and then use another while to loop on vector_size.
each program is working on a BLOCK size of vector adding, after it finish one BLOCK, it add the number of programs, means moving to the next task. And the next task may be in the same vector or not.
import torch

import triton
import triton.language as tl

@triton.jit
def double_while_loop_vector_add(num_vec: tl.constexpr, vec_sizes, vec_a, vec_b, vec_res, BLOCK: tl.constexpr):
    pid = tl.program_id(0)
    num_pids = tl.num_programs(0)

    i = 0
    vec_size_sum = 0
    while i < num_vec:
        v_size = tl.load(vec_sizes + i)
        vec_size_next = vec_size_sum + v_size
        while pid >= vec_size_sum and pid < vec_size_next:
            A_ptr = vec_a + vec_size_sum
            B_ptr = vec_b + vec_size_sum
            res_ptr = vec_res + vec_size_sum

            pid_offset = pid - vec_size_sum
            vec_offset = pid_offset * BLOCK

            offset = pid_offset * BLOCK + tl.arange(0, BLOCK)
            data_a = tl.load(A_ptr + offset, mask=offset < v_size)
            data_b = tl.load(B_ptr + offset, mask=offset < v_size)

            data_res = data_a + data_b

            tl.store(res_ptr + offset, data_res, mask=offset < v_size)

            pid += num_pids     # this line of code seems not working on rocm

        i += 1
        vec_size_sum = vec_size_next

def triton_vec_add(vec_sizes, vec_a, vec_b):
    vec_res = torch.zeros_like(vec_a)
    grid = (100,)

    vec_sizes_tensor = torch.tensor(vec_sizes, dtype=torch.int32, device=vec_a.device)

    double_while_loop_vector_add[grid](len(vec_sizes),
        vec_sizes_tensor,
        vec_a,
        vec_b,
        vec_res,
        BLOCK=64)
    return vec_res

def torch_vec_add(vec_sizes, vec_a, vec_b):
    return vec_a + vec_b

def testcase_double_while(vec_sizes):
    vec_size = sum(vec_sizes)
    device = torch.device(0)
    vec_a = torch.randn(vec_size, device=device)
    vec_b = torch.randn(vec_size, device=device)

    triton_res = triton_vec_add(vec_sizes, vec_a, vec_b)
    torch_res = torch_vec_add(vec_sizes, vec_a, vec_b)

    if torch.allclose(triton_res, torch_res):
        print('Res is SAME.')
    else:
        print('Not SAME')
        print('triton: ', triton_res)
        print('torch: ', torch_res)

if __name__ == '__main__':
    testcase_double_while([96, 24, 128])

The result is SAME at cuda, but not same at rocm. It shows that only the first part of result vector has value, and the other part is zero.

It seems the code pid += num_pids not works.

Hi @kailums, PR https://github.com/ROCmSoftwarePlatform/triton/pull/271 is for this issue. You can apply this change to test your new implementation. Thanks.

Thanks @scxiao . I use your PR branch, and it works fine. And i also test the grouped_gemm kernel on MI200 with docker image: rocm/oai-triton:preview_2023-07-24_98, get perf result:

grouped_gemm_all_gpu.py, 649us
grouped_gemm_cpu_map.py, 596us

Hi @kailums, thanks for the verification. Which input (row#) are these numbers corresponding to?

Hi @kailums, thanks for the verification. Which input (row#) are these numbers corresponding to?

it's row8, with N align to 8.

Bug fixed with PR https://github.com/ROCmSoftwarePlatform/triton/pull/271, so close it.


0.4.19 Staging release

File "C:\Users\mbarl\AppData\Local\Continuum\anaconda3\lib\site-packages\cadCAD\engine\simulation.py", line 39, in policy_scope_tuner     return f(sweep_dict, sub_step, sL, s, kwargs_1=None) TypeError: p_marketing_rate() got an unexpected keyword argument 'kwargs_1'
Working  experiment in version 0.4.18: https://github.com/matttyb80/adoption_funnel
Viewed in notebook: https://github.com/matttyb80/adoption_funnel/blob/master/adoption_funnel.ipynb
Error in 0.4.19, same model new branch: https://github.com/matttyb80/adoption_funnel/tree/4.19
Viewed in notebook: https://github.com/matttyb80/adoption_funnel/blob/4.19/adoption_funnel.ipynb

Hey @matttyb80! v0.4.19 introduces an additional variable length argument **kwargs to all policy and state update functions, I'm assuming as a way to introduce new cadCAD features down the line:
p_marketing_rate(params, substep, state_history, prev_state) -> p_marketing_rate(params, substep, state_history, prev_state, **kwargs)

Thanks @BenSchZA ! You are correct. This does introduce a backwards compatibility issue. But we can move forward with enforcement of this requirement if necessary.

It was introduced in 0.4.18
@BenSchZA
Correct, but it shouldn't require **kwargs.
@matttyb80
It should be optional / backwards compatible.
If its not difficult, move forward with enforcement but i will fix it in a release around EoW

Except that it does require passing **kwargs in the policy functions.
Does not yet require passing **kwargs in the variable functions.
That is to say, now runs by refactoring policy functions and not variable functions.

@matttyb80 @BenSchZA
Then i can simply revert the merge and only include the changes for the hot fix
I corrupted master with dev i though was ok.
My bad yall

This issue exists in staging

@matttyb80 @BenSchZA @aclarkData
try it now
1.
reinstall cadCAD
Option B: Build From Source
https://github.com/cadCAD-org/cadCAD/tree/hot_fix

I think this can be closed.


BuildDate is always the current time

Describe the bug
The build date is always the current time.
To Reproduce
Run argocd-image-updater version twice in a row (at least a second apart).
Expected behavior
The actual binary build date time.
Additional context
This line gets the runtime datetime:
https://github.com/argoproj-labs/argocd-image-updater/blob/71551f9482bca28351efd062332391a3341725f9/pkg/version/version.go#L11
Version
/ $ argocd-image-updater version
argocd-image-updater: v0.11.3+f62b7d7
  BuildDate: 2022-01-23T10:22:17Z
  GitCommit: f62b7d7841a42030fe4c75de1951c46b0e7fca2e
  GoVersion: go1.16.13
  GoCompiler: gc
  Platform: linux/amd64
/ $ argocd-image-updater version
argocd-image-updater: v0.11.3+f62b7d7
  BuildDate: 2022-01-23T10:27:13Z
  GitCommit: f62b7d7841a42030fe4c75de1951c46b0e7fca2e
  GoVersion: go1.16.13
  GoCompiler: gc
  Platform: linux/amd64

Logs
Please paste any relevant logs here

Here's a possible way of injecting build data: https://blog.alexellis.io/inject-build-time-vars-golang/#overridegobuild
version.go
package main

import (
   // ...
)

var BuildDate string

func newVersionCommand() *cobra.Command {
   // ...
}

go build -ldflags "-X main.BuildDate=$(datetime command here)"

ArgoCD does it in a similar fashion:

https://github.com/argoproj/argo-cd/blob/b37eee1054e42c873699460dd5e2447c2f9fe5a6/common/version.go#L8-L30
https://github.com/argoproj/argo-cd/blob/b37eee1054e42c873699460dd5e2447c2f9fe5a6/Makefile#L127-L133

Ah ok, so argocd-image-updater does the same:
https://github.com/argoproj-labs/argocd-image-updater/blob/master/Makefile#L32-L35
It's just being overwritten by time.Now().UTC().Format(time.RFC3339). Is that because it is no longer static, so the linker is not updating it (or it is, and the runtime is still updating it)?

Good catch. It should have been overriden at build-time.
https://github.com/argoproj-labs/argocd-image-updater/blob/71551f9482bca28351efd062332391a3341725f9/Makefile#L35
and later
https://github.com/argoproj-labs/argocd-image-updater/blob/71551f9482bca28351efd062332391a3341725f9/Makefile#L71
But for some reason, it doesn't :thinking:

It's just being overwritten by time.Now().UTC().Format(time.RFC3339). Is that because it is no longer static, so the linker is not updating it (or it is, and the runtime is still updating it)?

If buildDate in the version package is set to a static string (e.g. "unknown"), the override works as expected. Probably we should set it to an empty string, and the return the value of time.Now().UTC().Format(time.RFC3339) in BuildDate() when buildDate is the empty string (so that it will print a date when run by go run ...).

Sounds good @jannfis. Just wondering, should we follow how argocd does theirs, with a static string of unix epoch?
https://github.com/argoproj/argo-cd/blob/b37eee1054e42c873699460dd5e2447c2f9fe5a6/common/version.go#L12
Or is it quite useful to have the current time when using go run?


Service registration found namespace invalidation problem

When I use the service registration discovery function, I configured the namespace, which is the namespace ending in "-test" in the attachment, but I still registered it under the default public. Does this require special configuration? I use it. The nacos version is 1.0.0 and the spring boot version is 2.1.2.RELEASE

modify pic.

refer to this  https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/Nacos-discovery
search for spring.cloud.nacos.discovery.namespace


fix: start new REPL if terminal closed

I realize I need to think a bit more about this, but I'm just leaving this attempt here for now.

This only looks at whether or not a terminal exists with the "REPL" name, not if it is actually running.
When trying to run while no REPL-terminal exists, the sendText(':eval ...') isn't registered by the terminal unless a significant delay is added. 1s works but 100ms does not.

Fixes #258

Yes, the problem is there are two questions:

Does a REPL terminal exist?
And if so, is Flix running in it or not?

I believe (1) is easy, but (2) I have no idea. It might be impossible or maybe its possible?

Unfortunately, (2) doesn't seem to be possible within VSCode, as the terminal is just an opaque write-only process: https://code.visualstudio.com/api/references/vscode-api#Terminal
It's of course possible to communicate with the REPL in other ways like writing to a file or something, but that seems unjustifiably complicated.
But just solving (1) is still an improvement, so I'll leave it like this for now at least.

Conflicted, sorry.
Well-tested? E.g. opening closing multiple terminals etc seems to work?

@magnus-madsen
Yes I think it should be working


When does CNI_COMMAND equal DEL?

I have a bash prototype plugin with two functions activate_network (for when the container starts) and deactivate_network for when then container exits. My environment is as follows:-
rkt version 0.8.0
appc version 0.6.1

and I have the following block at the end of the plugin:-
if [[ "${CNI_COMMAND}" == "ADD" ]]; then
        activate_network
elif [[ "${CNI_COMMAND}" == "DEL" ]]; then
        deactivate_network
fi

When the container starts, $CNI_COMMAND is equal to ADD so networking is setup fine. However on exit, deactivate_network is never run. Am I missing something?

Have you tried running rkt gc? I believe it will only be called at that stage?

@jonboulle Yes I did (rkt gc --grace-period=0s). Unfortunately deactivate_network doesn't seem to be getting called then either.

/cc @eyakubovich

@rushmorem: I just used one of your pasted bash scripts as a plugin and can confirm that DEL works for me when I do a rkt run followed by a rkt gc --grace-period=0s.
I added this to the script
echo --- >> /tmp/dump.txt
echo $(env | grep CNI) >> /tmp/dump.txt
echo --- >> /tmp/dump.txt

And can see the following lines in the file:
---
CNI_ARGS= CNI_COMMAND=DEL CNI_IFNAME=eth0 CNI_NETNS=netns CNI_CONTAINERID=e624be83-d505-4b63-a73f-b8d17223c18d CNI_PATH=/usr/lib/rkt/plugins/net:stage1/rootfs/usr/lib/rkt/plugins/net
---
---
CNI_ARGS= CNI_COMMAND=DEL CNI_IFNAME=eth0 CNI_NETNS=netns CNI_CONTAINERID=fe103d5d-c7f3-45d2-ae51-265848c9aa1c CNI_PATH=/usr/lib/rkt/plugins/net:stage1/rootfs/usr/lib/rkt/plugins/net
---

Please investigate your setup again since it should really work for you too. If you still encounter this problem I would like you to file an issue against rkt because it's the active component in the garbage collection scenario.

Thanks @steveeJ. I must be doing something wrong. Will try again later.

@rushmorem Can we close this or do you have any other questions about the matter?

@steveeJ sorry I haven't had time to test this yet but I suppose we can close it.


Better indication of scrollbars in

Description of the new feature / enhancement
I'm using a dark color scheme and when I open a dropdown with more elements than can be displayed, I don't see any indication that a scrollbar exists in that dialog:

I needed to hover over the right margin to make that scrollbar appear:

It would be nice if that was visible right from the start.
Scenario when this would be used?
This is useful whenever somebody uses the app. (Sorry, not sure what to write here - but could not leave the field empty)
Supporting information
PT 0.49.1
Windows 10 Professional, 64-bit, Release 2009, Build 19043.1288, .NET v4.8.04084

This interface is in need of an update. See issue #2027

That is a side effect of WinUI / Windows design.  Very little we can do about that.  #2027 is moving the control generation from code behind to a XAML file for easier updating.
https://github.com/microsoft/microsoft-ui-xaml may be a better spot for this issue as we just use the stock control


Feed URL
https://www.ehfeng.com/feed.xml
More Info
No response

closed by 46d3e31a796f9f67d70d585bc59622f0a779d524


Fix issue #2292

What type of PR is this? (check all applicable)

[ ] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update
[ ] Other: Replace this with a description of the type of this PR

Description

Related Issues & Documents

Fixes #2292
Documentation (check all applicable)

[ ] This PR requires changes to the Wiki documentation (describe the changes)
[ ] This PR requires changes to the documentation inside the git repo (please add them to the PR).
[x] Does not require documentation changes

Actually I think it works.
My initial problem was that a trailing space was added between <label-layout> and <label-indicators> because even though the indicator was empty, the method xkeyboard::build returned true, therefore the trailing space was not removed.
Now if at least one of the indicators is not empty only then will xkeyboard::build return true, so the space makes sense in that scenario.
I think the calls to builder->space work just as expected.
label-indicator-margin = 1

In the current master branch there would be a trailing space at the end of every screenshot.

@patrick96 I think I fixed both issues.
From what I tested, everything worked as I would expect.
I hope it works because the solution feels pretty nice with my lame skills. :)


Feature Request: highlight text in TextSpan

Add hability to highlight text in TextSpan like BackgroundColorSpan in Android
https://developer.android.com/reference/android/text/style/BackgroundColorSpan.html

this feature was added in the latest release. i close the issue


keyboard mapping

the FN +M key that should give ":" does not work.
the keyboard seems to have been remapped even in pockethome mode

I also experienced this.  I was trying to do ctrl+alt+F7 since I am stuck in a tty to see if it would jump into an x desktop session.

I don't know why the keyboard sometimes loses configuration.
Try running sudo xmodmap .Xmodmap


500ms Content-Length timeout is not enough

We've run into occasional issues getting "request size did not match content length".
It is very sporadic, but ultimately determine that the timeout, which requires the full content is received within 500ms is causing problems.
I'm not sure if this is 500ms for the full content body, or if timeout resets with each packet received. Our payloads are around 1500 bytes, which is often 2 packets.
Scenarios where we end up getting this error:

Server under too much load. In this case, the timeout seems to happen before the packet is processed, although I cannot prove that. However, I would expect if server is overloaded, if the socket service took priority over the setTimeout, we wouldn't be getting these errors more during server overload. (Another possibility, servers are overloaded enough to cause packet loss due to buffer overflow).

network packet loss. If a client is having packet loss issues, the 2nd or 3rd packet of the request may come in more than 500ms after the initial packet. We get this more with users in Asia trying to hit our servers in US.

Would it be possible to make that timeout value configurable? Obviously, we don't want the client to hang forever with open socket because they sent 1 bad request, but in our case, it needs to be a little more patient.

Hi @hunkydoryrepair, thanks for the detailed report!
I forgot we had this 500ms limitation. I think we can increase the default limit + have some detection for aborted requests to avoid waiting forever.
For customization I think we can provide expressify(app, { readBodyTimeout: 3000 }) + process.env.UWS_READ_BODY_TIMEOUT for customization, what do you think?

It's great to see Pixels getting popular! I'd love to see it supporting Colyseus financially if possible 💖 Cheers!

You are suggesting two different solutions, if I understand?
Either one should work, I think, but currently I don't think uWebSockets-express reads anything from environment, so that would be adding a new dependency, so the one to pass parameters to expressify is lighter weight in that sense (although a little more work, possibly).

Addressed by @theweiweiway on https://github.com/colyseus/uWebSockets-express/pull/32 💙


Book class

Merge with #23, but keeping open since this is a fundamental part. of the Book Part of our project.


Who consumes this API?

As some people are using it, we are running out of the free dyno hours on Heroku so the API is down.

Hi!
I just discovered this repository and I was curious about who was using this and what for. Any insights?
Thank you

Hola Ariel!!
Coming back to this after a while! regarding the analytics, I'm afraid that the application has been taken down by Heroku a while ago, and don't have access to the application anymore so cannot extract any analytics from it 😢 🎻
From what I remember, there was some traffic in the API and we were consistently running out of the free dyno hours on Heroku. Actually what happened a while ago is that the folks over at Heruky changed their policy and now there's no such thing as "free dyno hours". Consequently, the app was taken down as there was no payment method associated anymore from the changes.
Don't have time to dedicate to this anymore, but perhaps a better approach these days would be to deploy the API using serverless and have the DB in Supabase or sth like this (if we even needed a DB, tbf we could get away with having the data static on some files, not that we need to write to it often if at all), and avoid the Docker shenanigans altogether 🙈.
Then hosting it on some platform like Vercel which has more sensible defaults and limits would be easy and painless... just giving it a spin around in case someone wants to give it a go...


The tense is wrong

Instead of spent, we should be using spend :)
Description:
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:

[ ] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hi @sherazlodhi,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Also, "hours" should be "weeks" 😉

Someone read the contributing guidelines 🎉 🎉 🎉 🎉
Thanks for the fix.


Contract verification

Closes #892
Introduced changes
This PR builds upon the changes introduced in PR #875. The original PR is still open because the Voyager APIs are not ready yet, but we require the verification feature for the Walnut Debugger. To accommodate this, we have incorporated the changes from PR #875 and made the following additions:

Introduced the WalnutVerificationInterface.
Resolved branch conflicts.
Made minor modifications to ensure compatibility.

Furthermore, to make the PR merge-ready, we have temporarily removed the Voyager and Starkscan interfaces since their respective APIs are not currently available. New verification interfaces can be added once Voyager, Starkscan, or any other provider adds API support for Cairo contract verification.
This Pull Request adds the verify command for the contract verification. More about the details of the contract verification can found here.

Added verify command to the sncast tool
Modified cast/main.rs & created cast/src/starknet_commands/verify.rs mainly

Checklist

[x] Linked relevant issue
[x] Updated relevant documentation
[x] Added relevant tests
[x] Performed self-review of the code
[x] Added changes to CHANGELOG.md

Hey @Arcticae 👋
I am asking for a preliminary review, mainly involving the automated tests — could you shed more light on how to approach them?

I've addressed the PR comments and implemented tests using mock APIs with wiremock. I have used the WALNUT_API_URL env variable to pass the mock server URL to the verify command.
I'll be adding the documentation today.

Hey @Arcticae, I’ve fixed the lint errors

Yes, we need to submit all of the code. This way, it doesn't depend on the Scarb version installed locally.
The warning for the user can be: "You are about to submit your code to the third-party chosen verifier at Walnut, and the code will be publicly available through Walnut's APIs. Are you sure? (y/n)" so it’s clear that the source code can be displayed to all users.

If this is okay with you, then I can implement the warning.

Yes, we need to submit all of the code. This way, it doesn't depend on the Scarb version installed locally.
The warning for the user can be: "You are about to submit your code to the third-party chosen verifier at Walnut, and the code will be publicly available through Walnut's APIs. Are you sure? (y/n)" so it’s clear that the source code can be displayed to all users.

If this is okay with you, then I can implement the warning.

Yes please do that - and also say that it's whole workspace's code, that part is important as well i think

All PR comments have been addressed

RPC url is not need for contract verification process
but
let provider = get_provider(&config.url)?; will throw an error if we don't pass the rpc url.

A package variable must be added inside the Verify struct, refer Declare object

RPC url is not need for contract verification process but let provider = get_provider(&config.url)?; will throw an error if we don't pass the rpc url.

We are aware of that, and we are planning to change it in the future. For now, let's leave it as it is.

Thank you for the review. I'll address the requested changes today

Thank you for the review. I'll address the requested changes today

@barabanovro would you provide me collaborator access to the repository: https://github.com/walnuthq/starknet-foundry/tree/contract_verify, so that I can add a verification interface for voyager

Thank you for the review. I'll address the requested changes today

@barabanovro would you provide me the collaborator access to the repository: https://github.com/walnuthq/starknet-foundry/tree/contract_verify, so that I can add a verification interface for voyager

This PR is almost complete and ready to be merged, which is essential for an event we are attending next week. To avoid any delays, we would prefer to keep this PR as is and not introduce additional complexity. Once it is merged, @rjnrohit, you can proceed with your verification. We hope this works for you!

A package variable must be added inside the Verify struct, refer Declare object

@barabanovro did you address this? I can't find that in code

@ksew1 I have now addressed the comment and added the corresponding tests. Additionally, I have linked the appendix entry in SUMMARY.md.
Regarding the overview of this command under the docs/src/starknet directory, since creating a good doc will take some time, I'm wondering if I could add a proper overview in a separate PR. If it is necessary to include it in this PR, I can certainly add it here

@barabanovro it's fine, you can add a guide in a next PR

@Arcticae What are the next steps to merge the PR?


[Feature Request] Create a 'catalog' of items/equipment and allow dragging/dropping onto an actor

From @cefasheli

Regarding the items, although it is not allowed by the foundry and we do not use all of its functionality, could be interesting to have a place so that we could put some items there and the player could copy it to their sheets.As I said in the discord, I run a campaign that needs to modify the list of equipment a lot and if I give the player the option to choose what he wants in the book this will cause problems. Maybe that place could import a GCS sheet and just show the equipment part.

This could be implemented as an Item or Journal that contains entries that can be dragged onto an actor's sheet.
The suggestion would not require full integration with the character sheet if we can add notes with the OtF formulas for weapons and attacks. For example, a Great Axe could contain the OtF formulas:
[S:"Two-Handed Axe/Mace"|DX-5|S:Axe/Mace-3|S:Polearm-4|S:"Two-Handed Flail"-4 to hit using two hands]
[SW+3 cut]
And the player can use these to roll to hit and do damage.

Oh man... I love that idea.   Actually, I think we can take this a bit further.   As I mentioned in the "shopkeeper" issue https://github.com/crnormand/gurps/issues/286, each piece of equipment could also create other "things" on the character sheet.
We could build an Item editor that allows the user to fill in data for the Item (equipment), and any other "things" that the equipment might provide (melee attacks, ranged attacks, skills, etc.).    And for things that require a "Level", we could accept an On-the-Fly formula (like you described above).  That was a great idea!
The editor could look something like this (this is just a crappy mock up using a rearrangement of the current GUI to show what I mean):

The GM fills in the appropriate information, and creates the Item.   Under the covers, we would create an association from the equipment to the Item, and to all of the "things" it creates, so if the equipment is removed, we can remove the Item and all of those "things".
Also, as part of the "add to character sheet" function, we will probably collapse the OtF skill formulas into the "best" answer for that character, mainly because all of the rest of the system is expecting an integer skill level in those columns.

I'm waiting for it so hard!

It is probably obvious, but this feature would be used as loot or a shop/marketplace in game.

Fortunately, we have that flag already.   Equipment and Notes can be defined as "user generated" (or "don't overwrite this on import").
By defining the Foundry Item with things like "name" "qty" "cost", etc. they may even work in generic "loot"-type modules (which deal with Items).   But in any case, they will be available in the Items tab, and the GM can assign permission to view (I believe) to hide things not yet discovered.

Suggestion, drag itens from one character sheet to another character sheet.

THIS would be awesome. PLEASE, PLEASE, we need this so much :D

For completeness:
The Foundry Item object is defined in the template.json, below (which I had to change... we had it in the wrong position at first... which means you must restart Foundry after you load my changes so that it reloads the template).
In Item-sheet.js, you can access the Item with 'this.object' or 'this.item' (same thing).   The only 2 attributes we need on the Item itself are 'name' and the image.   If you set the item name, i.e. this.item.name = 'bla', then you also need to set the equipment name (and any melee and ranged objects that have been created).   As I mentioned in the video, Item name == equipment name == melee attack name == ranged attack name.   But Skills, Spells and Advantages should probably have their own names.   I don't expect a lot of people to add Skills/Spells/Ads to equipment, but you never know.    Melee/Ranged/Skills/Spells should have an 'otf' atttribute, and if they do, it will be automatically collapsed when applied to an actor.   Advantages don't need one, since they don't have a 'level'.
If the otf doesn't validate, then I just don't apply it, but if you want to validate:
if (!!parselink(otf).action) console.log('valid')

The eqt attributes below are an exact match with the Equipment class (in actor.js).  It is a single object (I didn't think Item's should hold more than one equipment).
The melee (Melee), ranged (Ranged), ads (Advantage), skills (Skill), spells (Spell) objects in the templates are "lists" (exactly how they are in our actor... they are really objects with keys like "00000", "00001").   I did this so that in the user interface, we can just use the 'name' and the 'value' attributes for input field, and it would automatically update.

In doing so, there is no need for a "SAVE" button, since you are editing (and updating) the live Item object.    It makes it a lot easier.
WARNING.   If you have the Furnace module installed, they created a Handlebar helper called {{count}}... which is why I added the second listener for count (and set f_count in the getData() method... so I could use {{f_count}} in the html).
As I commented in https://github.com/crnormand/gurps/issues/328 you could just steal the GCS layout, etc. and present the Item UI like that (with buttons to allow the player to add and delete) and some kind of image display, but I leave this up to you.


cleaning up the cli

See #41

Hello @nrweir! Thanks for submitting the PR.

In the file cw_eval/challenge_eval/spacenet_eval.py, following are the PEP8 issues :

Line 6:37: E261 at least two spaces before inline comment
Line 6:37: E262 inline comment should start with '# '
Line 6:80: E501 line too long (124 > 79 characters)


Change to YAML and Entity upd hunting audit thru azure activity

Fixes #
Proposed Changes

Assuming that there are no functional changes then this is good to go. Per other PR we should make sure that we are not creating more result rows by breaking the results out by IP for example


Flex restrictions

Hello and thank you for this nice project.
I'm thinking of doing a flex PCB for running some UART lines out of a device case but
I'm stuck on how to later connect to the extension from a UART-USB adapter.

Let's say we use OSH Park and work along some limits.
Obviously we need solder mask on both side of the PCB but that is covered

Soldermask Type | SMOBC (Soldermask Over Bare Copper), both sides

We also need two layers of copper and that is also covered.
So the real question is if we can actually find a SOIC connector that can clamp this
extremely thin PCB as the stackup is the following.

So maybe just one side would be available at a time, the other covered by some thickening to make the connection more reliable as otherwise the film might just slip out all the times.
We also have some restrictions on how far from the edge copper should be as the process
of cutting it's different from rigid material.

Board Edge Keepout Copper within 15mil (0.381mm) of a board edge will be fabbed,  but may be damaged during shipping, copper within 6mil (0.152mm) of a board edge will be  removed prior to fabrication

So overall if the connector is not placed very close to the border it should survive the fabrication process and the SOIC clip can still reach it.
I'm interested in the drill holes as for flex pcb there are different limits and the wear and tear might be different.
Is there any other physical requirement for this connector that I haven't gone over?

Hey @edoput , from a quick and dirty look, you will need to cut away the plastic in the cyan box in the image above (the green represents the spring contacts, for contrast), which everyone needs to do unless using very thick PCB substrate. I also think in your case, you may need to cut away some plastic in the magenta box. Looking at the "claws" in the orange box and thinking about your requirements, you may want to cut away one of each opposing pair of claws, so that they interleave and still lock onto the holes, overall. You could just cut away one side of claws but this may not line the pads up with the spring contacts evenly.
If I leave this issue open, will you try something out and let us know what works?

I didn't know it would generally require modifications to the clip, good to know.
I'm looking for more off the shelf solutions (just running a flex cable with more pins that I need) but if
I ever get around to designing my flex pcb I'll put it on and see if it works.

I'll close the issue then. Feel free to reopen if you have anything to report.


[f5-config.py] nova_console f5 monitor should be using TCP instead of HTTP

Do NOT include any confidential information, this issue will be created on a public repo
This section is completed by the issue reporter
On which version(s) do you encounter this issue?
Please provide the output to 'git describe --all' for  all deployments where you have confirmed it occurs.
What type of issue is this? Please tick the appropriate box.

[x] bug - existing functionality that does not work for you as documented
[ ] feature - new functionality that you would like to see added

What is the expected behavior?
The f5-config.py script generates commands to create a working f5 monitor for the nova_console service
What is actually happening?
The f5-config.py script is generating commands that creates a monitor using HTTP, which results in an unhealthy monitor(see screenshot):

What were you attempting to do when you encountered this error (give as much detail as possible)?
Run LEM's f5_deploy.sh script and bring up a healthy virtual server for the nova_console service.
How can we reproduce this issue?
Clone RPCO master branch and configure it. Execute the dynamic_inventory.py script and feed the output file(openstack_inventory.json) into the LEM's f5_deploy.sh script.
The f5_deploy.sh script will not create a working nova_console virtual server due to a faulty monitor.
How can we verify your issue is addressed?
The nova_console service will have a healthy virtual server after the f5_deploy.sh script is invoked.
If you are using or know of a workaround please describe the necessary steps?
Change the monitor manually to use TCP via the BIGIP UI.
What is your evaluation on the importance of this issue, and why?
prio-3. There is an easy workaround nor is development halted.
This section is completed during the issue resolution process. If you are reporting an issue, please do not modify the section below.
Which branches are impacted by this issue?
Remove branches that are not impacted.
For each pull request, update the branch line to reference it.

[ ] master

Upgrade impact. Consider the impact on moving between major, minor and patch releases.

[x] This change does not impact upgrades
[ ] This change addresses a potential upgrade impact
[ ] The upgrade impact is being tracked by another issue.

The issue tracking the upgrade impact is:
Testing impact

[ ] An issue/pull-request has been create or exists to track the testing gap, and is referenced below
[ ] This change includes additional testing
[x] This change is tested by the existing setup

Additional testing links:
Release note

[ ] This change includes a release note.
[x] This change does not require a release note.

Doc Impact
Does your change require documentation?

[ ] Yes, and I submitted an issue to Docs issues
[ ] Yes, and I contributed a documentation patch to docs-rpc
[x] No documentation required for this change

Additional documentation links (please add links if you have ticked yes):

FYI - This will need to be backported to the newton-14.0 branch before it's closed.

UPDATE: This needs one more review, then a backport. PR for the master branch is here: https://github.com/rcbops/rpc-openstack/pull/1672


Bearer Token Authentication not working in Azure Function Isolated Process

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
Unable to get HotChocolate authorization working when running as an Isolated Process Azure Function, query always receives a "The current user is not authorized to access this resource." response.
In the example shown here I have registered an API via Azure AD and have confirmed that authentication works correctly using HotChocolate 12.15.0 running as a standard .NET 6 Web API.
Steps to reproduce

Using the Azure Function Isolated template 'graphql-azf-ip' in 13.0.0-preview.70, add authorization and jwt configuration to program.cs:

using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Authentication.JwtBearer;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .AddGraphQLFunction(b =>
    {
        b.AddAuthorization();
        b.AddQueryType<Query>();
    })
    .ConfigureServices( s =>
    {
        s.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                var AzureADTenantId = "EXAMPLE";
                var AzureADClientId = "EXAMPLE";
                options.Authority = $"https://login.microsoftonline.com/{AzureADTenantId}/";
                options.Audience = $"api://{AzureADClientId}";
            });
    }
    )
    .Build();

host.Run();

Decorate Person Query with [Authorize] attribute:

using HotChocolate.AspNetCore.Authorization;

namespace AzureFunctions;

public class Query
{
    [Authorize]
    public Person GetPerson() => new Person("Luke Skywalker");
}

public class Person
{
    public Person(string name)
    {
        Name = name;
    }

    public string Name { get; }
}

In Banana Cake Pop, configure Bearer Authorization with valid token and run following query:

{
  person {
    name
  }
}

Relevant log output
Result:

{
  "errors": [
    {
      "message": "The current user is not authorized to access this resource.",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "person"
      ],
      "extensions": {
        "code": "AUTH_NOT_AUTHENTICATED"
      }
    }
  ]
}

Additional Context?
No response
Product
Hot Chocolate
Version
13.0.0-preview.70

Did you solve your problem?
Having some documentation around Azure Functions and how to implement authentication would be great.

We think that running in AzureFuction is not a good idea as it has to many limitations. A better alternative here are Azure Container Apps which allows you to run full Hot Chocolate but still have the same scaling and pricing benefits as with AzureFunctions.

Sad to hear. Especially with isolated I think many of the previous limitations do not apply anymore as they were used with the in-process model.
While container apps provide similar scalability and have pricing benefits in comparison with App Service they are still more expensive than a Function.
Also additionally you would need to maintain more infrastructure (like container updates, some additional networking options, etc) which results in more operational workload.

Sad to hear. Especially with isolated I think many of the previous limitations do not apply anymore as they were used with the in-process model.

There are now more limitations as the isolated functions proxy the result through which lead to streams capabilities of GraphQL not working.
This also leads to issues with BCP...
But there are so much more issues like a custom service container that does not behave like the standard service container and many, many so many more things.
Also from the operational side its a nightmare.
In my experience the lambdas from AWS are more streamlined and do not impose these limitations. The moment Microsoft releases functions I hoped they would go more towards the AWS model. But to be honest ... Container Apps are right there from how it should work. The abstraction of a container is the better one, especially when dealing with streams and long running connections.

Also this issue ... why does it not just work? Its standard ASP.NET core functionality on which HotChocolate builds.

I've spent quite a lot of time building microservices using Azure Functions and found them to be a really good option for a lot of scenarios.
But having recently begun building a hotchocolate project using container apps and Aspire to orchestrate fusion and my subgraphs I'm finding the more functionally rich environment and detailed configuration and logging tools to have really improved the development and deployment process.
If Azure functions had been included in Aspire it's possible I would have gone down that route, but while it's a shame that feature parity for hotchocolate on isolated functions likely won't be possible, I definitely understand why the team made that decision.

This is the point, why did they not just take standard ASP.NET core and just added in binding functionality and you would have an awesome experience. Also Aspire is a major factor, it combines so nicely with container apps its a much better experience.

I've spent quite a lot of time building microservices using Azure Functions and found them to be a really good option for a lot of scenarios.

There are scenarios where they are a good fit ... like async message processing. But I find them really sub par for everything that has to do with web APIs.


Test README Auto Update

It looks good. It work well.
./github/workflows/documentation.yml
result: https://github.com/moneyforward-i/terraform-aws-itmc-integration/pull/1/commits/4758701892f0c08fbe37162156ba94183d1460f0


Document the benchmarks

The documentation website says "In benchmarks Wisp can outperform Go, NodeJS, and Elixir Phoenix + Cowboy."
Which benchmarks are these? What was the code? What was the performance? What was the methodology?

Here you go: https://github.com/rawhat/http-benchmarks


Playground not working

Trying to get the demo in Playground to work on Firefox but it's not working.
At first I saw nothing (between the title and the code block).
Then I got the text ( Change the code in the editor below and see the output update instantly.
« Open side menu » ).
However, clicking on 'Open side menu' does nothing.
Am getting a TypeError on the console ... (See attached image). Looks like the library isn't loading at all.
Firefox 44.0.
Ubuntu 14.04.1, x86_64
I've tried the same thing with Chrome (48.0.2564.103 (64-bit)).
Same thing.

Yeah this has been borked for a while, I've literally just removed it from the code as part of the v3 documentation update.
v3 should be live by the end of the week.


Support eXm segmentation

Hello,
This is the second part of my changes with the eXm segmentation support.
Regards,
Benjamin Vangansewinkel
http://sitecoreblog.blogspot.be/

Hi again,
I have spent 2.5 days to find a nasty StackOverflowException but I finally found it and fixed it!
I also have create an alternative to the IDTable system by storing the values in Memory. I have refactored a bit to be able to use your old system or my memory provider like this we still have the choice.
But the MemoryProvider really make a huge difference in term of optimization!
Regards,
Benjamin Vangansewinkel
http://sitecoreblog.blogspot.be/

Sorry the generated package wasn't the correct one!


Dramatically slow

Hello! Any ideas to use multi-threading or etc to faster the set-up/init time? The set-up time grows from 6s(iphone 6s) to 30/40s (iphone 5c/4s)!
What can be a problem? How to solve the time spreading?
Anyway tnx for response!

Yes true, while adding show storyboard segue.......

I calculated execution time and achieve following results:
Tests were made in simulator even with power of Intel Processor MBP mid 2012 and the most long-execution functions are:
transform3d() Time: 6.02006912231445e-06
tableView(_:willDisplayCell:forRowAtIndexPath:) Time: FROM 1.69873237609863e-05  TO 9.80496406555176e-05
Can the execution time be so much longer if we use different fonts and other font-work in SB when configuring the folding cells? Anybody tested? Cause I heard from colleagues that thing is eating performance a lot...

@Luccifer I've gone deeper in profiling and found out that such slow behavior related with not existing font loading. I changed all fonts to system and now it takes only one second to init.

@Satchitananda, thanks a lot! I love check this today's evening, if it's so, you will be my hero :D

Yep! It's worked! Now is quite fast!


Expand the mc admin user docs

mc admin user is missing a lot of the commands and subcommands that are available.

[ ] Convert mc admin user page to a list of available subcommands
[ ] Add pages for each sub command (and their sub-subcommands)
[ ] Follow the format of the mc ilm / mc ilm tier style
[ ] Ensure all information in mc admin user sts info command is included, per PR #16878

Follow the structure of the existing MinIO Client commands. (Not all mc admin commands have been converted to that structure yet.)


Add support for inactive task history filtered by deploy ID

Inactive tasks can be filtered by deploy ID in the UI; adding support for this in the client as well.

🚢


Improve Prerequisite section

On each url in the Prerequisites section, point to the corresponding section of the setting up section

On section: Setting up
We cover installation process:
Podman Under sub-section: Starting Podman Machine

linux: no
Mac: no
Windows: yes -> Install podman desktop and will guide you to install podman

Minikube Under sub-section: Starting kubernetes

Mac: no
Windows: yes
linux: no

Helm Under sub-ection: Installing Helm

linux: yes
windows: yes
mac: yes

At the moment we have the installation process on the prerequisites section.
We can add another section called Installation as installing and starting the services is mixed in one place in an inconsistent way. Even if sometimes on the installation section we only have just the link from the prerequisites, I think that creating a separate installation section will be easier for people to follow, which can also be combined easier with the instructions for installing some of the packages from a usb stick.
(super minor but) at the end of each sub-section in the installation, we can add a link for jumping back to the prerequisites section for having a clear overview of what the user has installed or not.

@pacostas I think we've completed this and it would be closed?


feat: Enhancing Application Performance with Next.js Server Components

What feature?
Greetings,
I hope this message finds you well. I would like to raise an important point regarding our Next.js application's performance optimization.
Current Situation:
Currently, the entire layout of our Next.js application is treated as a Client Component. This means that all the interactivity logic, including the search functionality (e.g., <SearchBar /> in Projects page), is bundled and sent to the client-side.
Proposed Optimization:
To improve our application's performance, we should follow a more efficient approach. Instead of making the whole layout a Client Component, we can enhance it by moving the interactive logic, like the search functionality, into a dedicated Client Component (e.g., <SearchBar />). Meanwhile, we will keep the main layout as a Server Component.
Benefits:
By adopting this approach, we gain the following advantages:

Faster Initial Load: The initial HTML rendering is done on the server, leading to faster page loads for users.

Reduced Client-Side Payload: By moving the interactive logic to a separate Client Component, we only load the necessary JavaScript for that specific functionality on the client-side. This results in a smaller and more optimized JavaScript bundle.

Action Plan:
Let's work together to refactor our Next.js application accordingly. By making use of Server Components for the main layout and Client Components for interactive parts like the search functionality, we can significantly enhance our application's performance without sacrificing functionality.
Thank you for considering this optimization. If you have any questions or need further clarification, please feel free to ask.
Best regards,
Tushar
Add screenshots
.
Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSoC'23 contributor
[X] I want to work on this issue

We're already working on backend part and almost finished. We just need a bit more time to test and make sure everything works well. After that all data will come from db & there will be a form to add projects

We're already working on backend part and almost finished. We just need a bit more time to test and make sure everything works well. After that all data will come from db & there will be a form to add projects

Hi @priyankarpal,
Thank you for the update! It's good to know that the backend work is nearly complete. But in this issue, I wanted to discuss an optimization proposal for our Next.js App Router, which won't affect the ongoing backend development or the project form implementation.
The main feature of our Next.js App Router that we'll focus on is utilizing React Server Components. By strategically using server components and designating only interactive parts as client components, we can enhance our website's performance. This approach will improve SEO, achieve faster page loads, and reduce the JavaScript bundle size.
I'll handle the conversion of pages to server components and ensure client components are used efficiently for interactivity.
For more details about React Server Components and their implementation, you can refer to the official documentation: https://nextjs.org/docs/getting-started/react-essentials
Please feel free to ask any questions or seek clarification.
Thank you for considering this optimization proposal. Let's work together to enhance our Next.js App Router and provide an improved user experience.
Best regards,
Tushar

ok ok but make sure to work on previous issue first

ok ok but make sure to work on previous issue first

Hey @priyankarpal, regarding issue #1875, I'd like to propose using the Next.js Metadata API for better SEO. However, before we proceed with its implementation, we need to address this issue first. Could you please assign it to me? Once it's done, I'll take care of the SEO improvement. Thanks!


Update setup.py

Increment micro version by 1, so that push to PyPI action would succeed.
Ref. the Build wheel action

@holgern @skjerns

thanks! my bad, forgot that.


Some groundwork for pipelining the store

This PR contains some fairly simple groundwork in preparation of pipelining the WritableStore. It might be good to merge that now since it touches things in quite a few places outside the store. Pipelining proper should then mostly happen within the store.
The biggest functional change in this PR is that the WritableAgent caches the block pointer and cursor in memory rather than getting it from the database.

Two points, which became easier to address after https://github.com/graphprotocol/graph-node/pull/3085:

I think we can make the ownership of the writable agent more precise, by having the instance manager own it directly rather than have the store serve as a registry of writable agents (TIL this is the multiton pattern). It's the only place that calls writable_store, except for the polling block stream which still calls deployment_synced on it. But that's moving to the instance manager after #3047, and it could be moved to its own trait anyways.

The instance manager is the only place where the block cursor and ptr are queried, at block stream construction. We could change this to be queried only at subgraph startup, and have the instance manager keep track of the latest block cursor and ptr it sent to the store (on apply and revert of block operations), rather than querying the writable agent for it. Btw, well noticed that the firehose cursor isn't updated on revert_block_operations, this seems wrong, ping @maoueh.

Yep indeed, that's wrong. We should update the cursor in this case also definitely.

1. I think we can make the ownership of the writable agent more precise, by having the instance manager own it directly rather than have the store serve as a registry of writable agents (TIL this is the [multiton](https://wiki.c2.com/?MultitonPattern) pattern). It's the only place that calls `writable_store`, except for the polling block stream which still calls `deployment_synced` on it. But that's moving to the instance manager after [Make Firehose subgraphs have their sync status be updated correctly #3047](https://github.com/graphprotocol/graph-node/issues/3047), and it could be moved to its own trait anyways.

The problem with this is that writable stores are also constructed in tests - I had an initial go at that, and they are all over the place when it comes to constructing writable stores. But in the tests, the pattern will need to be

make some changes to the store
wait for those changes to actually hit the database
perform some queries to make sure the db is in the expected state

I suspect there's some utility we can add to the test-store to make that all easier that would mimic the instance manager's handling of writable stores, but it's still something I need to figure out.

2. The instance manager is the only place where the block cursor and ptr are queried, at block stream construction. We could change this to be queried only at subgraph startup, and have the instance manager keep track of the latest block cursor and ptr it sent to the store (on apply and revert of block operations), rather than querying the writable agent for it. Btw, well noticed that the firehose cursor isn't updated on `revert_block_operations`, this seems wrong, ping @maoueh.

I like that - we could change it so that block cursor and ptr are returned from start_subgraph_deployment, and can't be queried through a WritableStore anymore.

Which leaves the question: in terms of this PR, what should change in it? Just remove the commit store: Make SubgraphStore.writable idempotent and change things after this has been committed?

@lutter I'd be fine to merge this with that commit removed, but how does that leave the WritableAgent, will it be dead code?

@lutter I'd be fine to merge this with that commit removed, but how does that leave the WritableAgent, will it be dead code?

I just rebased the branch to latest master.
Thinking some more about making SubgraphStore.writable idempotent (a 'multiton'), I don't think there's a safe way to make sure that writable is called at most once for any given deployment. And once we write async to the store, having two WritableStore instances for the same deployment will result in fireworks/incorrect data. IMHO, making writable not idempotent is just too dangerous since it's too easy to violate the constraint "call this only once for any given deployment for the lifetime of the process" in the future, and you'll get no warning that the constraint was violated.

Do you think it's actually feasible to error in SubgraphStore::writable if there are outstanding references to the writable agent, by checking the ref count? That would be a strong invariant check.

Do you think it's actually feasible to error in SubgraphStore::writable if there are outstanding references to the writable agent, by checking the ref count? That would be a strong invariant check.

We'd still need a map from deployment id to that agent/writable; at the very least, we'd need to keep a HashSet of deployment ids for which we already made a WritableStore. It will also not work for tests which call writable(..) all over the place; I think it's best to keep maintaining a map to ensure idempotency.

@lutter Yes, I was thinking of how we could leverage the map to check an invariant that's truly useful. Having two instances of WritableAgent would be suspicious, but having two references to the same agent would also be suspicious. So the multiton doesn't prevent misuse, it just allows a different misuse. The misuse of two references is actually the scary one to me, because the inconsistencies it can create are more subtle and therefore harder to catch in tests.
But I'll defer to you if you prefer to keep the current approach which deals with WritableAgent through references. I'd perhaps suggest moving the mutex to a wrapping WritableAgent(Arc<Mutex<InnerWritableAgent>>) so that you can write &mut self methods. And then you could consider having a misuse check that errors if the mutex is already held by another thread when trying to acquire it.


Add files via upload

@OleksandrMaliukh First stage of verification passed, official domain is kvpu.co.ua as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@OleksandrMaliukh Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Use pcall for threads

Adding threads to the trove throws an error if the thread expires, using pcall will silence the error caused by trying to do task.cancel on a finished thread.

Also I don't see why there is no @rbxutil/trove yet ?


"Hello, do you have a sample code for launching training

"Hello, do you have a sample code for launching training to predict cryptocurrency prices (preferably with 200 input parameters)"

?


Use error exit code for filtered ls with no result

This allows using gopass ls to determine whether an entry is present in scripts. Presence can thus be tested without decrypting secrets.
Closes #897.

Codecov Report

Merging #983 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #983      +/-   ##
==========================================
+ Coverage   63.64%   63.66%   +0.03%
==========================================
  Files         171      171
  Lines        9881     9880       -1
==========================================
+ Hits         6288     6290       +2
+ Misses       2802     2800       -2
+ Partials      791      790       -1

Impacted Files
Coverage Δ

pkg/action/list.go
49.28% <100%> (+3.56%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dec28c3...1cf24fc. Read the comment docs.


Document Beta distribution

We need documentation for the beta functions in functions.mli
and I guess we probably don't need to suffix them with '_func' either :smile: ?

This was done in https://github.com/hammerlab/oml/commit/aa90e826e7ab8631bd5ae529d3e0a369d5d46846 and  https://github.com/hammerlab/oml/commit/3dcaf5bc453afcc1ca69f61dcd2ddaca79b19842


React: On Masthead - search bar, enter keyword and delete it by mouse select, search bar closes

Detailed description
Issue: On Masthead - search bar, enter keyword and delete it by mouse select, search bar closes
Additional information

@RobertaJHahn Hi! Id like to work on this issue.

@mcastre thank you for participating in Hacktoberfest! Looking forward to seeing your PR and feel free to reach out in slack with any questions!

@jeffchew PR has been opened. #4221

Thank you, our team will review this! Want to also quickly check, are you an IBMer?

@jeffchew not exactly sure what you mean by an IBMer

@jeffchew not exactly sure what you mean by an IBMer

Sounds like you're not then! Would you be able to fill out the following CLA (contributor license agreement):
Carbon for IBM.com CLA individual.pdf
Can you also e-mail to<EMAIL_ADDRESS>in additional to mailing to us?
We will start reviewing this PR, thank you again!

Sure! Do you want me to fill out the pdf and email it to that email address?

Yes please, thank you!

@jeffchew ok i sent the agreement to that email

@mcastre thank you, we received it!
Our team reviewed your PR and there was some feedback, can you take a look?


fixed explore button problem

I have fixed this explore button problem
I have add css and also made some changes in html file

Good Job


Upgrade appears successful but error reported

PS C:\WINDOWS\system32> npm install -g npm-windows-upgrade
C:\Users\oadeboye\AppData\Roaming\npm\npm-windows-upgrade -> C:\Users\oadeboye\AppData\Roaming\npm\node_modules\npm-windows-upgrade\bin\npm-windows-upgrade.js

<EMAIL_ADDRESS>added 72 packages in 35.295s
PS C:\WINDOWS\system32> npm-windows-upgrade -p -v 6.7
npm-windows-upgrade v6.0.1
Checked system for npm installation:
According to PowerShell: C:\Program Files\nodejs
According to npm:        C:\Users\oadeboye\AppData\Roaming\npm
Decided that npm is installed in C:\Program Files\nodejs
Upgrading npm...

Upgrading npm (fallback method)...
You wanted to install npm 6.7, but the installed version is 6.7.0.
A common reason is an attempted "npm install npm" or "npm upgrade npm". As of today, the only solution is to completely uninstall and then reinstall Node.js. For a small tutorial, please see https://github.com/felixrieseberg/npm-windows-upgrade#usage.
Please consider reporting your trouble to https://aka.ms/npm-issues.
Debug Information:
http_parser: 2.8.0 | node: 8.11.3 | v8: 6.2.414.54 | uv: 1.19.1 | zlib: 1.2.11 | ares: 1.10.1-DEV | modules: 57 | nghttp2: 1.32.0 | napi: 3 | openssl: 1.0.2o | icu: 60.1 | unicode: 10.0 | cldr: 32.0 | tz: 2017c | os: win32 x64 | OS Name: Microsoft Windows 10 Enterprise
OS Version: 10.0.17134 N/A Build 17134
PS C:\WINDOWS\system32> npm -v
6.7.0
C:\Users\uname>npm -v
5.6.0
C:\Users\uname>
C:\Users\uname>
C:\Users\uname>npm -v
6.7.0
C:\Users\uname>

I think this is the same issue as this: https://github.com/felixrieseberg/npm-windows-upgrade/issues/136


HTTPS traces cannot be observed

HTTPS traces cannot be observed？
By the way, can you only retrieve outbound traces? Can't inbound work?

What can be observed now is the data that is used as a client to call HTTP. If used as a server, the called data is not available.
Of course, I guess that's how the code was designed. But this approach requires installing agents on every device that may need to call HTTP APIs


Missing modules

I got this error message while building.
[100% 41/41] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja
out/soong/.bootstrap/bin/soong_build -t -l out/.module_paths/Android.bp.list -b
out/soong -n out -d out/soong/build.ninja.d -globFile out/soong/.bootstrap/build
-globs.ninja -o out/soong/build.ninja Android.bp
error: device/nokia/msm8998-common/gpt-utils/Android.bp:17:1: "libgptutils.msm89
98" depends on undefined module "generated_kernel_headers"
08:29:06 soong bootstrap failed with: exit status 1

We already dropped Kernel Header Generator

We already dropped Kernel Header Generator

What can I do to fix the issue?

What can I do to fix the issue?

you fixed bro?

you fixed bro?

I had to add the cross-compiler in device.mk. The error seems to be fixed.

I had to add the cross-compiler in device.mk. The error seems to be fixed.

Can you explain what you did a little more? I'm having this issue too.


TASK/POST to Searchasaurus with Overwrite Param

Overwrite is True by default.
If true, if file exists it is overwritten
and if it doesn't, it is created.
If false, if file exists it is not overwritten
but if it doesn't, it is created.

Created test file server_test.go to test my changes.
Test now runs on CircleCI.

Changed all instances of Responce to Response.

Minor space formatting also fixed for consistency.

BCK-2261

Hey @mariamsawires thanks for tagging me! I unfortunately don't know GO at all. I looked at it and it kind of makes sense, but I would not feel comfortable approving it.

hey @jzbahrai ok no problem! Thanks for letting me know :)


Low stability reported by AFL

While using libxdc to gather the basic-block information AFL reports low stability score. Currently I register a bb callback and feed the dst address received in that function to AFL as a location that was instrumented. Stability seems to be howering around ~18%. In my setup interrupts are blocked and the code being fuzzed is tiny with no external calls. The low stability score only pops up while using PT+libxdc, breakpoint based tracing yields stability in the ~95% range.

You can't use the bb callback for that. First of all the BB callback doesn't really have a src and dst address, and secondly it will only be triggered once after the bb was disassembled. After that, the bb will be taken from the cache, and no more callbacks will be issued (which obviously will cause low stability). If you absolutely need to do this, please use the edge callback. But we heavily recommend to use these functions only for debugging purposes, as the mechanism we use internally will be significantly faster (at least some 2x).

OK, so I tried using the AFL map as the bitmap directly and I was resetting that between runs. But low stability still.

Can pick one of the inputs from the queue, and dump the trace data a few times? Maybe install a trace hook that prints each edge taken,  and see if the edges look sane. If you dump the traces, you can use the intel decoder to create a ground truth for the edges taken, and have a look at where they diverge.

This might have been due to me only partially resetting the bitmap that AFL sends after each iteration. With that getting memset completely to 0 for each iteration I get 100% stability with breakpoint based tracing, ~60% stability with PT. Still not sure why it's lower with this method though, it should be also close to 100%.

Well that's a step in the right direction. If you dump some of the traces, we can figure out if the problem is within libxdc or if there is something else happening that's causing the nondeterminism outside of libxdc.

Ah, I think I know what's wrong. When I'm resetting the forks I thought I've moved back the PT output_mask buffer's starting point to 0, but I suspect it wasn't actually doing it because I never updated the MSR (thought it will pick up the value on VMENTRY). So we were actually only picking up new coverage trace information when the buffer wrapped, which also explains why it took a while before all paths were seen with PT based coverage :)


Remove redundant SourceBuildTrimNetFrameworkTargets property

Part of dotnet/source-build#3503

@dotnet/razor-compiler anyone want to object to this? If not, feel free to merge


Verification of Information Retrieval from API (stakerslist)

I am using ‘https://api.astar.network/’ to verify information.
Among them, I am using stakerlist (https://api.astar.network/api/v3/astar/dapps-staking/stakerslist/) to calculate the total amount staked in each dApp. However, it seems that this value has not changed since August 19, 2024. Is the original information that the API, such as the indexer, is providing being updated?

Hi @tksarah, please check again. There was an issue with the indexer

Thank you @bobo-k2
Yes, I have confirmed that it is fixed.


malloc_usable_size/tc_malloc_size hangs under debug malloc when custom operator new implementation calls malloc_usable_size

attempting to use malloc_usable_size() with tcmalloc_debug simply hangs here:
#0  pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94
#1  0x00007f10b280bb27 in MallocExtension::instance () at src/malloc_extension.cc:207
#2  0x00007f10b28159e9 in tc_malloc_size (ptr=0x1010020) at src/debugallocation.cc:1419
(gdb) f 1
#1  0x00007f10b280bb27 in MallocExtension::instance () at src/malloc_extension.cc:207
207	  perftools_pthread_once(&module_init, InitModule);
(gdb) p module_init
$1 = 1
(gdb) p InitModule
$2 = {void (void)} 0x7f10b280b580 <InitModule()>
(gdb) f 0
#0  pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94
94		jmp	6b
(gdb) l
89		orl	%fs:PRIVATE_FUTEX, %esi
90	# endif
91	#endif
92		movl	$SYS_futex, %eax
93		syscall
94		jmp	6b
95
96		/* Preserve the pointer to the control variable.  */
97	3:	pushq	%rdi
98		cfi_adjust_cfa_offset(8)
any ideas on what could be going wrong here..

Most likely some other thread is doing that MallocExtension::instance work and is stuck somewhere.
Please post backtraces of all threads. E.g. by telling gdb: thread apply all bt

the reason seems to be this: there are over-rides for "malloc" and "new" but NOT for "malloc_usable_size": both the malloc and new overrides use malloc_usable_size() .
so in tcmalloc:  size_t malloc_usable_size(void* p) __THROW      ALIAS(tc_malloc_size);
extern "C" PERFTOOLS_DLL_DECL size_t tc_malloc_size(void* ptr) __THROW {
return MallocExtension::instance()->GetAllocatedSize(ptr);
}
static void InitModule() {                                                                                current_instance = new MallocExtension;                                                                                #ifndef NO_HEAP_CHECK                                                                                HeapLeakChecker::IgnoreObject(current_instance);                                                                                #endif                                                                                │
}
so the malloc() override invokes malloc_usable_size() which invokes tc_malloc_size() which invokes
"new" override which invokes malloc_usable_size()
hence it is going into a recursive loop as above.
the only way seems to be to override malloc_usable_size() so that
current_instance = new MallocExtension; does not get invoked inside of tcmalloc_size()
implementing malloc_usable_size using the malloc_chunk_ptr from libc malloc fails with tcmalloc debug poisoning.
any suggestions.

Indeed. Thanks for reporting it.
Using placement new in this place looks like right fix. I.e. similar to: https://github.com/gperftools/gperftools/commit/185bf3fcc36f8cb3839abdfe652f615bfb5306d1

Actually, I'm not able to see how tc_new may call tc_malloc_size under debug or production tcmalloc. Can you please post full backtraces?

Also please consider using latest version of tcmalloc since we're not using pthread_once in this place since gperftools 2.2

OK, we have done the over-ride for malloc and new which calls into malloc_usable_size.
so our malloc() override invokes malloc_usable_size() which invokes tc_malloc_size() which in turn invokes our "new" override which invokes our malloc override and then it again invokes malloc_usable_size()
the following code in tcmalloc -> src/malloc_extension.cc
204       current_instance = new MallocExtension;
is causing the recursive loop.
gperftools 2.2 did not help either: it is breaking with the similar recursive loop here:
#0  tcmalloc::ThreadCache::InitModule () at src/thread_cache.cc:274
#1  0x00007ffff62c7d59 in tcmalloc::ThreadCache::GetCache () at src/thread_cache.h:408
#2  0x00007ffff62c0661 in (anonymous namespace)::do_malloc (size=size@entry=88) at src/tcmalloc.cc:1188
#3  0x00007ffff62e50fe in do_malloc (size=88) at src/sampler.h:146
#4  Allocate (type=-271733872, size=40) at src/debugallocation.cc:529
#5  DebugAllocate (type=-271733872, size=40) at src/debugallocation.cc:1027
#6  do_debug_malloc_or_debug_cpp_alloc (size=40) at src/debugallocation.cc:1200
#7  tc_malloc (size=40) at src/debugallocation.cc:1214
#8  0x0000000000429210 in alloc (alloc_func=0x4068f0 __libc_malloc@plt, size=8, instr_p=0x7ffff62d9e9e <InitModule()+14>) at ../../src/dfs-server/base/memtrack.cpp:134
#9  0x00000000004295d4 in operator new (size=8) at ../../src/dfs-server/base/memtrack.cpp:281
#10 0x00007ffff62d9e9e in InitModule () at src/malloc_extension.cc:204
#11 0x00007ffff62d9f99 in InitModule () at src/malloc_extension.cc:212
#12 MallocExtension::instance () at src/malloc_extension.cc:213
#13 0x00007ffff62e45e9 in tc_malloc_size (ptr=0x13385c0) at src/debugallocation.cc:1451
so how do we override tc_malloc_size() so that it does not call "new" ? since that is getting into this this recursive stack.

Thanks. Now it makes sense. Placement new for MallocExtension should fix the problem.
Do you want to try doing that yourself ?

can please tell me the diff ?

What diff you want me to tell ?

using the Placement new for MallocExtension  and where ?

actually using Placement new in
tcmalloc -> src/malloc_extension.cc
204 current_instance = new MallocExtension;
will perhaps not work. since "new" is overridden to invoke malloc_usable_size () right ?

It will work. Placement new will not call your implementation but just call constructor passing it whatever address is passed to placement new

ok, can you let me know the change in malloc_extension.cc:204 .thanks

So thinking about this more...
We can certainly plug this specific issue quite easily. But a lot of things can really happen during initialization time. If not in current version, it can appear later.
I think your app would be safer it if starts with your logic disabled and then enables it during init time. Something along this lines:
bool setup_malloc_tracking() {
   // ensure things are inited
  char *rv = new char;
  malloc_usable_size(rv);
  delete rv;
  return true;
}

// false by default
static bool enable_malloc_tracking = setup_malloc_tracking();

void *operator new(size_t size) {
  void *rv = tc_new(size);
  //only account-for/check if we're sure malloc is fully initialized
  if (enable_malloc_tracking) {
     size_t real_size = malloc_usable_size(rv);
     if (!allow_alloc(real_size)) {
        delete rv;
        return maybe_throw_oom();
     }
  }
  return rv;
}

actually since we need to track every allocation and we have over-ridden the weak symbols the above solution does not seem to work as is; the same recursion appears as follows
#0  operator new (size=8)  [over-ride new]
#1  0x00007ffff5ea4e9e in InitModule () at src/malloc_extension.cc:204
#2  0x00007ffff5ea4f99 in InitModule () at src/malloc_extension.cc:212
#3  MallocExtension::instance () at src/malloc_extension.cc:213
#4  0x00007ffff5eaf5e9 in tc_malloc_size (ptr=0xe6e060) at src/debugallocation.cc:1451
#5  0x000000000042907a in setup_malloc_tracking ()
#6  0x000000000042963a in operator new (size=8)  [over-ride new]
#7  0x00007ffff5ea4e9e in InitModule () at src/malloc_extension.cc:204
#8  0x00007ffff5ea4f99 in InitModule () at src/malloc_extension.cc:212
#9  MallocExtension::instance () at src/malloc_extension.cc:213
#10 0x00007ffff5eaf5e9 in tc_malloc_size (ptr=0xe6e020) at src/debugallocation.cc:1451
#11 0x000000000042907a in setup_malloc_tracking()
#12 0x000000000042963a in operator new (size=8)  [over-ride new]
#13 0x00007ffff5ea4e9e in InitModule () at src/malloc_extension.cc:204
#14 0x00007ffff5ea4f99 in InitModule () at src/malloc_extension.cc:212
#15 MallocExtension::instance () at src/malloc_extension.cc:213
#16 0x00007ffff5eaf5e9 in tc_malloc_size (ptr=0xe46020) at src/debugallocation.cc:1451
......
#19 0x00000000004292ce in malloc (size=568) at ../../src/dfs-server/base/memtrack.cpp:160
#20 0x00007ffff50bc4fd in __fopen_internal (filename=0x7fffffffd520 "/proc/net/psched", mode=0x7ffff4c355b0 "r", is32=1) at iofopen.c:73
#21 0x00007ffff4c0ecfe in get_psched_settings () from /lib64/libnl.so.1
#22 0x00007ffff7deb503 in call_init (env=0x7fffffffe5b8, argv=0x7fffffffe5a8, argc=1, l=) at dl-init.c:82
#23 _dl_init (main_map=0x7ffff7ffe208, argc=1, argv=0x7fffffffe5a8, env=0x7fffffffe5b8) at dl-init.c:131
#24 0x00007ffff7ddd45a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
as long as we have "malloc" invoking "new" through the "malloc_usable_size()" we have this issue
for malloc_extension.cc:204 InitModule() :
current_instance = new MallocExtension;
what are the other options __libc_malloc() (constructor init??)

My point was that your code should not call malloc_usable_size until initialization is complete. In this case, clearly this is not the case.

so you would want malloc_usable_size(rv); to be invoked at least once so that init goes through the first time right ?
if that is true, it seems to be not possible with the following construct since malloc_usable_size() ends up invoking new () before it gets a chance to set the enabled_memtrack flag since we need to track every allocation.
from your example..
static bool enabled_memtrack = false;
void setup_memtrack() {
// ensure things are inited
char *rv = (char *)tc_new(sizeof(char));
malloc_usable_size(rv);
enabled_memtrack = true;
delete rv;
}
and malloc_usable_size() invokes malloc_extension.cc:204 InitModule() :
current_instance = new MallocExtension;
void* operator new (std::size_t size) throw(std::bad_alloc)
{
if (unlikely(!enabled_memtrack)) {
setup_memtrack();
}
override new-code
}
is there explicit InitModule() call which is exposed by tcmalloc() that can be used in this situation ?

No we won't export InitModule since it is implementation detail.
Also your code is far from what I've suggested. You're invoking infinite new recursion yourself in this code.

ok, in the above code, the recursion is as follows:
#0  operator new (size=8) at
#1  0x00007ffff5ea4e9e in InitModule () at src/malloc_extension.cc:204
#2  0x00007ffff5ea4f99 in InitModule () at src/malloc_extension.cc:212
#3  MallocExtension::instance () at src/malloc_extension.cc:213
#4  0x00007ffff5eaf5e9 in tc_malloc_size (ptr=0xe460a0) at src/debugallocation.cc:1451
#5  0x000000000042908b in setup_memtrack ()
#6  0x0000000000429693 in operator new (size=8)
#7  0x00007ffff5ea4e9e in InitModule () at src/malloc_extension.cc:204
#8  0x00007ffff5ea4f99 in InitModule () at src/malloc_extension.cc:212
#9  MallocExtension::instance () at src/malloc_extension.cc:213
#10 0x00007ffff5eaf5e9 in tc_malloc_size (ptr=0xe46060) at src/debugallocation.cc:1451
#11 0x000000000042908b in setup_memtrack ()
#12 0x0000000000429693 in operator new (size=8)
#13 0x00007ffff5ea4e9e in InitModule () at src/malloc_extension.cc:204
#14 0x00007ffff5ea4f99 in InitModule () at src/malloc_extension.cc:212
#15 MallocExtension::instance () at src/malloc_extension.cc:213
#16 0x00007ffff5eaf5e9 in tc_malloc_size (ptr=0xe46020) at src/debugallocation.cc:1451
#17 0x000000000042908b in setup_memtrack ()
#18 0x00000000004292b7 in _libc_malloc@plt>, size=568, instr_p=0x7ffff50bc4fd <__fopen_internal+29>)
#19 0x0000000000429327 in malloc (size=568)
#20 0x00007ffff50bc4fd in __fopen_internal (filename=0x7fffffffd520 "/proc/net/psched", mode=0x7ffff4c355b0 "r", is32=1) at iofopen.c:73
#21 0x00007ffff4c0ecfe in get_psched_settings () from /lib64/libnl.so.1
#22 0x00007ffff7deb503 in call_init (env=0x7fffffffe5b8, argv=0x7fffffffe5a8, argc=1, l=) at dl-init.c:82
#23 _dl_init (main_map=0x7ffff7ffe208, argc=1, argv=0x7fffffffe5a8, env=0x7fffffffe5b8) at dl-init.c:131
#24 0x00007ffff7ddd45a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
from the notes above, enabled_memtrack = true;  needs to be after malloc_usable_size(rv); has been invoked at least once right ?
the recursive call to new() seems to be from malloc_usable_size() as seen above ..

and finally the following version of setup with tc_new or new overriddern by tc_new ends up with malloc_usable_size returning 0
bool setup_malloc_tracking() {
if (enable_malloc_tracking) {
return true;
}
// ensure things are inited
char *rv = (char *)tc_new(sizeof(char));
size_t sz = malloc_usable_size(rv);
assert(sz >= sizeof(char));
free(rv);
return true;
}
as it hits :
size_t MallocExtension::GetAllocatedSize(const void* p) {                                                                                assert(GetOwnership(p) != kNotOwned);                                                                                return 0;                                                                                │
}
it looks like malloc_usable_size() with tcmalloc() needs to be fixed for te above situation..

At this point we're increasingly risking larger misunderstanding. We'll need small program that demonstrates issues that you're seeing.
On other note, it looks like you're trying to do that tracking even very early during program initialization. If true (and I'll be able to see that in your small test program), please note, that we are not supporting it.
At Couchbase we've been doing memore usage tracking via malloc hooks and consequently it is something that activates after main is called.

yes, our program simply overrides malloc/new/free (weak symbols).
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <assert.h>
#include <malloc.h>
#include
#include
extern "C" {
void* __libc_malloc(size_t size);
}
void *alloc(void *(*alloc_func)(size_t), const size_t size, const void *instr_p)
{
void *ptr = (*alloc_func)(size);
if (!ptr) {
return ptr;
}
size_t sz = malloc_usable_size(ptr);
assert(sz >= size);

return ptr;

}
//! \brief  standard malloc substitution
void *malloc(size_t size)
{
return alloc(__libc_malloc, size, __builtin_return_address(0));
}
void* operator new (std::size_t size) throw(std::bad_alloc)
{
return alloc(__libc_malloc, size, __builtin_return_address(0));
}
int main() {
printf("tcmalloc issue");
}
g++ tc.c -ltcmalloc_debug
and run it :  you have the recursion with tcmalloc and the core..
the recursive issue arises because new invokes malloc which invokes malloc_usable_size and then it in turn invokes new inside tcmalloc.
so at couchbase the malloc hooks (__malloc_hook = my_malloc_hook)  thing work with tcmalloc  and how does that work for "new"?

Can you attach the program instead? Or upload it somewhere? I.e. so that I don't have to deal with includes.
Regarding malloc hooks, I'm talking about https://github.com/gperftools/gperftools/blob/master/src/gperftools/malloc_hook_c.h#L72

attached ..

Sorry, but your attachment doesn't work.

R u not able to download it. The code is the same as pasted above. (Just putting the braces in the #include)

Not able

#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <assert.h>
#include <malloc.h>
#include
#include
extern "C" {
void* __libc_malloc(size_t size);
}
void *alloc(void *(*alloc_func)(size_t), const size_t size, const void *instr_p)
{
void *ptr = (*alloc_func)(size);
if (!ptr) {
return ptr;
}
size_t sz = malloc_usable_size(ptr);
assert(sz >= size);

return ptr;

}
//! \brief  standard malloc substitution
void *malloc(size_t size)
{
return alloc(__libc_malloc, size, __builtin_return_address(0));
}
void* operator new (std::size_t size) throw(std::bad_alloc)
{
return alloc(__libc_malloc, size, __builtin_return_address(0));
}
int main() {
printf("tcmalloc issue");
}

the above code (pasted again since attachment does not seem to work) reproduces the issue with tcmalloc . g++ tc.c -ltcmalloc_debug

also do not see ways to establish MallocHook:: hooks for memalign and its children. so the suggested hook-path also does not seem to work for all cases.
other than malloc_usable_size (which maps to tc_malloc_size) is there any other interface (equivalent of GetAllocatedSize())  that is exposed. do not see.
given a ptr 'X'  managed by tcmalloc, is there a particular offset from that pointer 'X' where the usable-size is stored (similar to libc malloc) ? if so, we can calculate the size reading bytes from that offset. (until this issue is fixed). please let me know.

Please find some way to get code verbatim to my end. Please don't make me cut and edit this thing.
BTW markdown does seem to support clean way to past code.

#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <assert.h>
#include <malloc.h>
#include <cstddef>
#include <new>

extern "C" {
  void* __libc_malloc(size_t size);
}

void *alloc(void *(*alloc_func)(size_t), const size_t size, const void *instr_p)
{
    void *ptr = (*alloc_func)(size);
    if (!ptr) {
        return ptr;
    }

    size_t sz = malloc_usable_size(ptr);
    assert(sz >= size);

    return ptr;
}

//! \brief  standard malloc substitution
void *malloc(size_t size)
{
    return alloc(__libc_malloc, size, __builtin_return_address(0));
}

void* operator new (std::size_t size) throw(std::bad_alloc)
{
    return alloc(__libc_malloc, size, __builtin_return_address(0));
}

int main() {
    printf("tcmalloc issue");

ok the above is verbatim.

As I've described above malloc_usable_size will not work early during program initialization. Not that it's impossible to support, but I don't see compelling use-case for that and it has cost.
As I've advised above, just don't rely on malloc_usable_size until program initialization is complete.
Regarding hooks. Memalign does invoke new hook.
Regarding offsets. No metadata for small allocations is stored separately, there is no simple offset to read usable size from.

ok,  good that we agreed that with tcmalloc malloc_usable_size will not work early during program initialization. not relying on malloc_usable_size in tcmalloc env is the only option then :) will look into other options. thanks.

Closing bug as won't fix.


merge dev to main for v1.1.0

Copying notes from 'develop':
TR now calls a new wrapper (for getting SZA from MAPL) for all passive tracers using GMI dry deposition (e.g. Be7, Be10, Pb210). It is slightly non-zero-diff for these tracers.
This PR is zero-diff for the 4 tracers that are automatically configured to run by the 'setup' scripts.
It is non-zero-diff for Pb210, which is included in R21C.
Also, CI uses new BASELIBS.
This code requires CHEMISTRY release v1.13.1 or later

CI failing again, since this needs a  recent CHEMISTRY tag.

Superpowered in.


Merge Change from Upstream (Boxen/puppet-nginx)

/domain @while1malloc0

This will be consumed when we merge the Boxen upstream changes. They upgraded the version of the nginx module they use, so I wanted to get our fork up to date as well.

domain lgtm

<< domain lgtm


Allow newer versions of several requirements

signxml is pinning the max version of several requirements of libraries that have all updated past the max version. This PR upgrades them all.
For a library used in other projects, it may be advisable to remove the max version and let the library user themselves manage the max versions in their own requirements files (and let the library user deal with the conflicts themselves; they're smart enough to figure it out). This will get rid of the need for the PR every time a library upgrades in backwards compatible ways.

Codecov Report

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

@@           Coverage Diff           @@
##           master      #84   +/-   ##
=======================================
  Coverage   95.32%   95.32%
=======================================
  Files           3        3
  Lines         599      599
=======================================
  Hits          571      571
  Misses         28       28

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2e0a260...d59a5bf. Read the comment docs.

Yes, I think this is a tricky question that ultimately relates to whether the maintainer should do the due diligence of testing before indicating that the new dependency version is safe to use with the maintainer's library (here I'm interpreting major version numbers per the semver standard) or let stuff potentially break and rely on users to sort it out.

See https://github.com/XML-Security/signxml/commit/6529b6812e9ee76e9ce7d1e948da289269a1e6f6. If you want to make the pyasn1 dependency explicit, please open another PR.


Replace TOML config with YAML config

This replaces reading TOML configuration with reading YAML configuration.

LGTM :+1:


Automated cherry pick of #8369: fix: use correct worker

Cherry pick of #8369 on release/3.4.
#8369: fix: use correct worker

Codecov Report

Merging #8370 into release/3.4 will increase coverage by 3.15%.
The diff coverage is 13.71%.

@@              Coverage Diff               @@
##           release/3.4   #8370      +/-   ##
==============================================
+ Coverage         6.22%   9.37%   +3.15%
==============================================
  Files              759     221     -538
  Lines           117145   29097   -88048
==============================================
- Hits              7289    2728    -4561
+ Misses          109197   26114   -83083
+ Partials           659     255     -404

Flag
Coverage Δ

#aFlag
9.37% <13.71%> (+3.15%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/baremetal/utils/raid/raid.go
11.90% <ø> (ø)

pkg/cloudcommon/db/db_dispatcher.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/domain.go
2.73% <0.00%> (+0.07%)
:arrow_up:

pkg/cloudcommon/db/metadata.go
5.06% <0.00%> (-0.04%)
:arrow_down:

pkg/cloudcommon/db/metadataresource.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/namevalidator.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/project.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/scoperesource.go
0.00% <ø> (ø)

pkg/cloudcommon/db/standalone.go
1.79% <0.00%> (-0.37%)
:arrow_down:

pkg/cloudcommon/db/virtualresource.go
0.00% <0.00%> (ø)

... and 477 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a10b194...062301f. Read the comment docs.


Export default patterns vector

This is useful for interactive tools on top of this crate to show the user the available patterns.

thanks! :)


Feat/refactor button

Storybook changes:

adds controls addon to enable conditional enabling/disabling of controls

Button changes

rendering as anchor tag wasn't working correctly, now fixed
made icon a prop of Button so we can simply export and import Button (implementation to be discussed with Eileen and Steven)
added iconAlign to also allow controlling of icon position through props
removed the arbitrary stories that load in slightly different variants of the button which can also be achieved using the controls
fine-tuned and expanded on the existing controls with conditionals, descriptions etc.

Closed this in favour of https://github.com/kadena-community/kadena.js/pull/655
Seemed easier to just create a new PR rather than clean up this one.


Top App bar, back nav, web view nav

Initial pass at top app bar and navigation integration

@br-jared-stockton - updated per your comments; let me know if I missed something


Avoid Overriding an Explicitly Disabled Megacheck

What's the rationale for this?

I've been running some tests to speed up our lint (which is generally wonderful! thanks!) but is a bit slow, and it's sort of frustrating that the software overrides a very specific and clear intention on my part to (at least test) what happens if I run the megacheck components separately. (My working theory is that parallelism will compensate for duplicated work and lead to shorter wall clock time, but it's difficult to test.)

You should check out golangci-lint, it is much faster than gometalinter.

I ran some tests last night, but we have a custom linter and from my initial testing, golangci-lint tends to be comparably slow if you enable all of the same linters that we were running with the metalinter.


Reimplement merkleeyes

To provide a semi-useful demo app for tutorials,
to document the process to do so with the git comments and commits,
and to allow us to deprecate merkleeyes app in the repo....
I implemented a simple k-v store interface as a basecoin/basecli app.
Please take a look.

Overall looks good - main concern is just understanding etc let's add even a readme to the module folder explaining that maybe. - Actually generally maybe each module should actually have a module describing what's happening?! I'm a fan of having the markdown descriptions popup when I'm browsing a codebase in github


Contributor test

@all-contributors please add @Yuanxingzhu for translation

@all-contributors please add @Yuanxingzhu for translation