Needs an additional section of advantages

Article needs to tell me why do I want to use partitioning vs not using partitioning. You hint at it but don't declaratively state why.
Is it because there's less chance of degradation of service and I gain the benefit of transactions?

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

ID: 14b28704-f660-c413-a0fe-cb1d469fe35c
Version Independent ID: 403df162-e673-527f-8e72-8abf43d8b5cc
Content: Create partitioned Azure Service Bus queues and topics
Content Source: articles/service-bus-messaging/service-bus-partitioning.md
Service: service-bus-messaging
GitHub Login: @axisc
Microsoft Alias: aschhab

@TheSaltyKorean Thank you for your feedback! We will review and provide an update as appropriate.

@spelluru Any thoughts here?

@KetanChawda-MSFT - I think it makes sense to have a section on advantages of using partitioning.
@axisc - Ashish - Shall I work with you on this? Thanks.

@spelluru Thanks for confirming.
@TheSaltyKorean I have assigned the issue to the content author to evaluate and update as appropriate.

Apologies for the late response on this.
Transaction support is not dependent on partitions. So that is not the criteria/advantage of enabling partition support. I'd hold off on adding the advantages section for this.
Partitions spreads the workload across different backend nodes so that in the event one of the multi-tenant setups is overloaded (standard is multi-tenant), the other backend node can pick up the workload.
Transactions in partitioned entities require that all the messages in the same transaction be processed on the same partition.
@TheSaltyKorean - please feel free to reopen if you still have questions on this. If you have higher throughput and availability requirements, I'd recommend considering Service Bus Premium tier for your setup. Premium provides dedicated resources for your namespace, so you are shielded from noisy neighbor situations that may happen in a multi-tenant setup.
Premium doesn't support partitioning, but does support transactions.
#please-close


Display unrecognised types with typeid(o).name() instead of {?} ?

Catch currently reports types it doesn't know how to report as "{?}" (in StringMakerBase).
xUnit++ reports  these cases using typeid(T).name(), limited in length.
In lest, instead of reporting "{?}" I now do: return std::string("[type: ") + typeid(obj).name() + "]";
Would something similar be useful for Catch too?

Example:
struct MyType { bool operator==(MyType const &) const { return false; } };

TEST_CASE( "Error involving MyType", "[fail]" ) {
    MyType a, b;
    REQUIRE( a == b );
}

MSVC:
unknown-type.cpp(15): failed: Error involving MyType: a == b for [type: struct MyType] == [type: struct MyType]

GNUC:
unknown-type.cpp:15: failed: Error involving MyType: a == b for [type: 6MyType] == [type: 6MyType]

This is a bit old, but unlikely to be implemented in Catch Classic, as we try to support compiling without RTTI (don't look at me, I think its stupid).


Merge opae-libs to opae-sdk master

Coverage remained the same at 81.48% when pulling efbb7a784e863ef5591f7a8760a2b0a028d37773 on aravuri/pull_libs_max10 into 1e06181d8c3edc15c12ff30cf32111cffaa5fb41 on master.


Enemy ledge turn

Add logic for making enemies turn around when they hit a floor ledge.

Add LedgeDetector component, that generates events.
Should be able to configure which corners to detect ledges for,
and when to trigger depending on which side the entity is standing on.
Generates events which include which corner was detected.

Delelte corner detector entities when entity is deleted or entity switches variant.

Working.
Entity config example
See the ledge detector component in the example for some doc comments.
See the variant's OnLedgeDetect events for usage example.
Basically, when you add the LedgeDetector component to an entity,
it will produce ledge detector events, which can be listened to with the OnLedgeDetect event.
Ledge detecting on its own does nothing, except generate those events.
@hoichael
Merged in master.


MultipartReaderStream not supported?

I'm accepting an excel file from the web, which is inside a multipart/form-data boundary in HttpContext.Body, which I begin reading, but when I pass the MultiPartSection.Body to ExcelReaderFactory.CreateReader, I get various different exceptions - some claiming "file signature is invalid", while others that the position value was -10, or a large positive number.
Any plans to support this? I think you only need to support a StreamReader, as the section is usually wrapped with that stream for ease of use, but if you can - you can accept the Stream object directly.

We can use a FileMultipartSection to mitigate this issue.


[Feature] Replace custom components with tremor 1.5.0 update

Update tremor to 1.5.0
Replace custom components with tremor's
Reimplement Modal, Popover with headless ui
Description
Replaces custom components with tremor's components from the 1.5.0 update.
Reimplements Modal and Popover with headless ui instead of radix
Removes unused dependencies.
Fixes #48
Type of change

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

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

[ ] Test A
[ ] Test B

Checklist:

[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have update the CHANGELOG
[X] New and existing unit tests pass locally with my changes

@dmytro-tinybird Something not quite working with the date range picker. If you try to select a range in the calendar view, it bugs out - see screenshot below. The charts up, so I think it is setting the date, just not displaying properly in the widget


TAP:Fix build to use correct ROMFS

@LorenzMeier. @bkueng
master - build_tap-v1_default/src/firmware/nuttx/firmware_nuttx
text    data     bss     dec     hex filename
662668    4656    9360  676684   a534c
using correct ROMFS -
text    data     bss     dec     hex filename
601228    4656    9360  615244   9634c
I much prefer the way I handled nuttx configuration this in [nuttx_v3] (https://github.com/PX4/Firmware/blob/nuttx_v3/cmake/configs/nuttx_tap-v1_default.cmake#L2-L4)
So eventual this hack will come out, but it is needed now.

Rebased and applied.


fix: NPE when deleting Barber service #18

The program was throwing a NullPointerException (NPE) when attempting to
delete a BarberService object that was null.
The issue has been resolved by slightly modifying the method in BarberServiceController. Additionally, the existing test method has been fixed, and a new test method has been added to handle cases where the BarberService object is null.

#18 Is the same issue when  NPE when to update a BarberService and the object is null.

Do not forgot update version in Javadocs

Approved


Grafana operator dashboard

Added Grafana operator.
Added Prometheus operator(workaround bug for CRD too long error), Added prometheus CRD, RBAC, operator and Prometheus app as separate argoCD apps.
Added Grafana datasource and dashboards.

Hi Kanthi, an immediate comment. Can you squash your commits into a single commit so that the log is cleaner when you merge? I'll start reviewing the code meanwhile.


StackLayout a11y review

changes for ADA consideration:
Added direction to stack to control direction at breakpoints.
### new examples for review:
- [x] [Default](https://storybook.saltdesignsystem.com/?path=/docs/core-layout-stacklayout--default-stack-layout)
- [x] [With separators](https://storybook.saltdesignsystem.com/?path=/story/core-layout-stacklayout--stack-layout-with-separators)

Checked with Stella and she is happy with the component changes.


Fix formatting for all Cognitive Services JSONs.

No spec change. This change simply formats all JSONs to 2-space indents.

Hi, Travis failures seem to be unrelated to my changes

No modification for AutorestCI/azure-sdk-for-python

No modification for AutorestCI/azure-sdk-for-node

No modification for AutorestCI/azure-sdk-for-ruby


Placeholder propose a demo catalog to choose the presentation to run

Discussed option to retrieve the demo documentation from one of more git based on the reachability.

We may test reachability of the internal git and fallback on an external demo catalog for external demos.
After pulling the catalog, YAP will render a card presentation to choose from
Fallback to render the hello word application

As first task, Vine to investigate and propose the look and feel for the catalog cards and searches (we may consider to reuse the label to expedite the search as in the ADT web).

Created https://wwwin-github.cisco.com/APJ-GSP-ADT/YAP-Zoo/blob/master/demoCatalog.json as proposed structure for the demo catalog to render the first card in the list

update the modal to handle more information

This demo something orchestrates the dCloud demo 'Crosswork Network Controller 5.0 with CDG 5.0 and NSO 6.1.0 v1 as an OSS layer via the platform Restconf API.Use Cases- Configuration Compliance- VPN lifecycle and service assurance- Intent NetworkingRequirements- Active session to Crosswork Network Controller 5.0 with CDG 5.0 and NSO 6.1.0 v1 dCloud demo in Ready state- Anyconnect to the dCloud session to access CNC endpoint


fix: link path problem

Fixed a problem where the link path separator would be a backslash instead of a slash on Windows.
[CustomerCreateInput!](\docs\api\admin\graphql\inputs\customer-create-input) -> [CustomerCreateInput!](/docs/api/admin/graphql/inputs/customer-create-input)

Thank you for the fix.
I am working on more resilient support for Windows in PR #289 that should cover this issue too.
However, I keep your PR open until #289 is merged (hopefully soon, now that I have access to a Windows host).

@hatai - Good news! The big Windows fix PR is ready. I did some basic tests under Windows 10, but some more tests would be welcome.
If you have some time please look at #289 for more details.

The issue with the solution you proposed is that is it fixing one symptom but not the root problem.
In a nutshell, the issue is due to the fact that I use NodeJS (path)[https://nodejs.org/api/path.html] for generating URL path. That is not so much of an issue with macOS or Linux since they are using POSIX path syntax.
The magic behind the path API is that it automatically switch between path.posix or path.win32 API depending which OS you are running.
As a short term solution, in #289, you can see that I have force the use of path.posix for all URL related operations (see https://github.com/edno/graphql-markdown/pull/289/files#diff-92cce0cb22d70a3bca04314e4aa8ad6dd742f7030ceaab2ffd35ad13cde99c55R1).
The ideal fix would make use of the URL API (see https://nodejs.org/api/url.html#url_url_resolve_from_to), which will come at least with version 2 of the package.

@hatai - As mentioned in my previous PR, the latest merge (in release 1.4.1 should cover this PR.


Server fails to start after updating Docker to v0.29

Describe the bug
After updating to the latest version (v0.29) of Docker, the server fails to start. The stderr.txt file in the Steam/log folder shows the following error: src/tier0/threadtools.cpp (3830) : Assertion Failed: Failed to create thread (error 0x1), The complete content in stderr.txt is as follows:
02/28 00:10:26 Init: Installing breakpad exception handler for appid(steam)/version(1705108307)/tid(31)
src/tier0/threadtools.cpp (3830) : Assertion Failed: Failed to create thread (error 0x1)
assert_20240228001026_4.dmp[34]: Uploading dump (out-of-process)
/tmp/dumps/assert_20240228001026_4.dmp
assert_20240228001026_4.dmp[34]: Finished uploading minidump (out-of-process): success = no
assert_20240228001026_4.dmp[34]: error: libcurl.so: cannot open shared object file: No such file or directory
assert_20240228001026_4.dmp[34]: file ''/tmp/dumps/assert_20240228001026_4.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''

To Reproduce
Steps to reproduce the behavior:

Pull the latest image
Backup the old server using docker exec palworld-server backup
Recreate the new container using docker-compose up -d
See error

Expected behavior
Server restart successfully.
Actual behavior
Server can not start and steamcmd get Assertion Failed error
Screenshots

container status

container log

stderr log

OS information

OS:  Linux debian11 5.10.0-8-amd64 SMP Debian 5.10.46-4 (2021-08-03) x86_64 GNU/Linux
Palworld Version:  <IP_ADDRESS>
Docker Image Version:  latest(v0.29)

Hardware information

CPU:  4 core Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
Memory:  12GB

docker-compose.yml contents
version: '3'
services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      ports:
        - 8211:8211/udp
        - 27015:27015/udp
        - 25575:25575/tcp
      environment:
         - TZ=Asia/Shanghai
         - PUID=1000
         - PGID=1000
         - PORT=8211 # Optional but recommended
         - PLAYERS=8 # Optional but recommended
         - MULTITHREADING=true
         - PLAYER_STOMACH_DECREASE_RATE=0.200000
         - PALYER_STAMINA_DECREASE_RATE=0.200000
         - PLAYER_AUTO_HP_REGEN_RATE=2.000000
         - PAL_STOMACH_DECREASE_RATE=0.200000
         - PAL_STAMINA_DECREASE_RATE=0.200000
         - PAL_AUTO_HP_REGEN_RATE=2.000000
         - COLLECTION_OBJECT_RESPAWN_SPEED_RATE=0.500000
         - BASE_CAMP_WORKER_MAXNUM=20
         - PAL_EGG_DEFAULT_HATCHING_TIME=0.000000
         - DEATH_PENALTY="None"
         - WORK_SPEED_RATE=2.000000
         - UPDATE_ON_BOOT=false
         - RCON_ENABLED=true
         - RCON_PORT=25575
         - ADMIN_PASSWORD="********"
         - COMMUNITY=false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         - SERVER_NAME="********"
         - BACKUP_CRON_EXPRESION=0 4 * * *
         - BACKUP_ENABLED=true
         - DELETE_OLD_BACKUPS=true
         - OLD_BACKUP_DAYS=7
         - AUTO_UPDATE_CRON_EXPRESSION=0 */2 * * *
         - AUTO_UPDATE_ENABLED=true
         - AUTO_UPDATE_WARN_MINUTES=15
      volumes:
         - ./palworld:/palworld/

Container/Host Logs
****EXECUTING USERMOD****
usermod: no changes
Server installation not detected.
****Starting Installation****
tid(31) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'

Additional context
My previously used docker image version is v0.24.0, and it works perfect.

Same issue here

If you delete your steamapps folder inside the palworld directory and restart the server, do you still have the same issue?
Please make sure you backup your folder before doing so.

I executed docker-compose up -d in a brand new folder (without the palworld folder in it) and still have this problem.

I can't seem to reproduce, if you use the thijsvanloef/palworld-server-docker:v0.28.2 image does it work?

I'm sorry, but the v0.28.2 version doesn't work for me either.
Also, this seems to be a steamcmd issue, because when I tried to install the Palworld game using a steamcmd image, it also showed this error.

I checked out the steamcmd repo and noticed that two weeks ago the latest docker image of steamcmd was upgraded from Debian 11 to Debian 12. After that, I pulled the Debian 11 image provided by steamcmd using docker pull cm2network/steamcmd:steam-bullseye. And I successfully installed, and launched the Palworld server.
Could you please provide an image based on the steamcmd:steam-bullseye version to fix this issue?

@burkewm If needed, you can temporarily avoid this issue by using the image I just built based on steamcmd:steam-bullseye using docker pull cruisetian/palworld-server-docker:v0.29-bullseye, it works fine for me.

Sadly I am not planning on supporting older versions of debian


Integration with Travis

This resolves https://github.com/konmik/solid/issues/7
Continuous integration will make people trust your library and even remove the need to run the tests locally, travis will run it against multiple android versions in parallel on emulator and report the failures if any.
To enable it, after you merge this, you are gonna need steps 2 and 3 from this guide.
After that, you are gonna have pretty checks for all pull requests, so you can figure out if it is safe to merge them. For instance, see here, PRs which passed the tests have this green tick, ones which failed are marked with red crosses.
Also, you might want to add this fancy status image to your project readme.md, so everyone will see that your project is passing the tests and in healthy state.
I've tested this configuration on my fork and it works fine: https://travis-ci.org/karlicoss/solid/builds/120713399
P. S. choice of APIs is kinda arbitrary, I just picked the minimum one available on emulator, the target API, and other more or less at random. Anyway, it's free to run multiple, they are being run on parallel.

Wow, it works! :)
One thing is that travis didn't have a luck running all of the tests for the first time (there were some apk uploading issues) so I will need to keep my eye on it for every master branch update.
Thanks! :)


Compiling OpticX

Hi, I am following your procedure to install CompoundRay on a 20.04 ubuntu machine. The cmake gives me an output, with Vulkan missing and OpenEXR missing. I am not sure whether this is critical and how to install the missing dependencies.
The output of cmake is:
`
sutil OPTIXIR
ptx_files = /home/neurobio-bielefeld/Downloads/NVIDIA-OptiX-SDK-7.5.0-linux64-x86_64/SDK/build/lib/ptx/./sutil_generated_sphere.cu.optixir;/home/neurobio-bielefeld/Downloads/NVIDIA-OptiX-SDK-7.5.0-linux64-x86_64/SDK/build/lib/ptx/./sutil_generated_whitted.cu.optixir
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Warning at lib/DemandLoading/docs/API/CMakeLists.txt:32 (message):
Doxygen not found.  Skipping DemandLoading library documentation.
CMake Warning at lib/ImageSource/CMakeLists.txt:53 (message):
OpenEXR not found (see OpenEXR_ROOT).  Will use procedural texture in
optixDemandTexture.
-- Could NOT find Vulkan (missing: VULKAN_LIBRARY VULKAN_INCLUDE_DIR)
-- Using X11 for window creation
-- Configuring done
-- Generating done
-- Build files have been written to: /home/neurobio-bielefeld/Downloads/NVIDIA-OptiX-SDK-7.5.0-linux64-x86_64/SDK/build
`

Hi,
Neither of these are critical, and I'd really only expect Vulkan to be more necessary to build against if you were running on an AMD graphics card, OptiX should handle all GPU bindings fine itself.
The lack of OpenEXR won't really effect anything for the use purposes outlined in the paper and any standard use cases, although I will add some build instructions (and maybe an example) soon.


Option to change User type

Make it poissible to "upgrade"/"downgrade" or just "change" User from user type, like from User to Admin.

@jonasdekeukelaere this will be very difficult imo because different user types can have wildly different properties.

And problaby an issue for https://github.com/sumocoders/Framework too I think


Make slug inferring work again

I just remembered that when I overhauled the data model I never got around to making https://github.com/jacobobryant/platypub/issues/26 still work. It's more difficult now since everything related to posts must be done generically. I did include something in the config for this, but platypub doesn't actually do anything with that yet. I also am not really sure how exactly that should work. probably needs more thinking.

I saw :slugify in the config.edn so I see you have plans :)
I submitted a PR that seems to be apply to Posts and not Pages, I'm not really sure why?

From https://github.com/jacobobryant/platypub/pull/53#issuecomment-1208522826:

mm--yes, it is hacky :). Ideally we wouldn't want platypub code (i.e., anything under src/) to ever reference any specific field names like :slug or :title. For a proper solution we'd want to change the case in params->custom-fields (for reference) to a cond or something. Then we can handle "special" types, e.g. in this case if the type is a vector that starts with :slugify, like [:slugify :com.platypub.post/title], then the return value of the cond should be the value of the second keyword ((:title params)) passed through the title->slug function (maybe rename to slugify or ->slug).
If we want to add any other inferred field types later on, we can follow the same pattern.
Also I suppose we could change the default theme so it also uses [:slugify :com.platypub.post/title] for the type of :com.platypub.page/path. It should work fine as long as the theme knows to change some-path to /some-path, which I think it already does.
I'll go ahead and merge, but I'll leave the issue open and quote this there.


CVE-2019-10149

someone will have to rebuild and republish this package bundling 4.89-2+deb9u4 or higher.

here is a link to the advisory: https://www.openwall.com/lists/oss-security/2019/06/05/4
here is a link to the debian security tracking page: https://security-tracker.debian.org/tracker/CVE-2019-10149

(right now the image bundles deb9u3 which they show as vulnerable.)

since nothing has happened here, i have built an updated image (with no changes from master) and pushed it to docker hub here.

Thank you.
PS: IMHO the correct link would be this.

Apologies everyone, this has been resolved and a new image pushed to docker hub.


Add out-of-the-box config handling

What
While building an app and deploying it to a Kubernetes cluster, I ended up implementing custom config parsing & handling for both the pre-defined config for operator.RunnerConfig and app.SpecificConfig.
I believe this should be simplified and the SDK should provide (and generate) a way to parse & handle at least the pre-defined configs, but ideally also provide helpers for parsing & handling specific configs (for those, devs will still have to define flags / env vars / etc. manually).
Why
To remove friction and reduce the amount of footguns. Having a standard way of parsing configs will also help us with providing generic Jsonnet / Helm libraries for deploying app operators.

A few extra bits, related to config:

We should provide a generic logging config and handle it in the SDK
We should wire up tracing config in operator.Runner (Yes it's global but I think it's OK to always initialize it there by default. If necessary, devs can pass e.g. Enabled: false to disable tracing initialization in the runner).


Add iOS 14.x (14.3 is the most needed) Firmware Bundles

Due to incompatible SEP and Baseband, most of the firmware bundles for A9, A10, A11 are useless. We need ios 14 firmware bundles. It’s hard to create your own firmware bundle as well.

iPhone 9,4 and 10,6 is what I need.

I'll take a look at creating some. As for creating your own firmware bundles, I'm working on a script to create them, so that should make the process a lot easier. I haven't tested iOS 14 custom restores though, so i'll need to do that as well.

Update: pushed the script.


itest fails due some vertx-web quickstart

This PR fixes this
https://github.com/fabric8-quickstarts/vertx-web/pull/58

Its a bit chicken and egg so need to disable it in the tests and then when a new release is out we can enable it back again. I added a TODO in the source code linking to this ticket

Okay when upgrading to next archetype release we can then revert that PR above

enabled test again


Error when using this mod on a LAN server

When i try to use this mod on a LAN server with my brother who doesn't have the mod installed (he is using Vanilla Minecraft), he gets this error when he tries to join my world:
**Connection Lost
Unsupported (vanilla?) client!
This server requires modded client to join!**
I'm using Quilt Loader on version 1.20.1 of Minecraft.

I'll look into that, thanks for letting me know! :)

@0x4C656168 Thank you for the reply!

Heya! Do you have any other mods installed?
I was able to replicate the issue, but only when "Quilted Fabric API" is installed. Using Fabric API instead worked for me.

@0x4C656168 Yes, i do have many other mods installed, but i believe this error still occurs even with Immersive Thunder on it's own. Also, It's interesting that you mentioned that you only get this error when using Quilted Fabric API, maybe that is the issue?

Could you try replacing QFAPI with Fabric API? I was not able to find a different way to fix this issue :/

I think you should be able to use the Fabric API with the Quilt Loader.
So instead of using Fabric Loader + Fabric API, you could use Quilt Loader + Fabric API. Have you tried that?

@0x4C656168 So, I tried to run Quilt Loader with Fabric API, but the game cant run because a few mods require QFAPI to work, such as:
-Customizable Player Models
-Visual Overhaul
-InvMove
-Effective
-Lambda Better Grass
So, unless i remove those mods, sadly QFAPI will be required for me.

Hey, sorry for not checking back in. I was not able to find a simple solution for the problem and don't have the time to further investigate. I'm sorry :/


Munit coverage is not working while using this extension

The munit coverage part where it shows the % of test coverage is showing as "N/A" while using this connector anywhere in the project. If removed then the coverage is working fine. Any pointers/help on this please?
@aalleva @ge2hernan @jgalati-mulesoft

Hi John,
This is technical debt on the connector ( munit ). It's fine what you're
doing by removing it from coverage scope on your app.
Regards,
On Wed, Nov 24, 2021 at 4:48 PM johnmathew234 @.***>
wrote:

The munit coverage part where it shows the % of test coverage is showing
as "N/A" while using this connector anywhere in the project. If removed
then the coverage is working fine. Any pointers/help on this please?
@aalleva https://github.com/aalleva @ge2hernan
https://github.com/ge2hernan @jgalati-mulesoft
https://github.com/jgalati-mulesoft
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mulesoft-catalyst/logger-mule-extension/issues/1, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AIL4OZUDP6VCD37GNQJRQMTUNU6O5ANCNFSM5IW34GKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--
http://www.mulesoft.com/
Hernán Gegenschatz, Sr. Services Engineer
Juana Manso 999 6th floor, Buenos aires
https://maps.google.com/?q=Juana+Manso+999+6th+floor,+Buenos+aires&entry=gmail&source=g,
C1107CBS, Argentina
O 54 11 5353 4497 <54.11.5353.4497>  M 54 11 2728 7602 <541127287602>
https://www.linkedin.com/company/mulesoft https://twitter.com/mulesoft
https://www.facebook.com/MuleSoft https://videos.mulesoft.com/ We're
hiring! http://www.mulesoft.com/careers
NOTICE: This e-mail may contain confidential information. Any pricing
information contained in this communication is confidential MuleSoft
information. If you are not the addressee or the intended recipient please
do not read this e-mail and please immediately delete this e-mail message
and any attachments from your network mail system. If you are the addressee
or the intended recipient and you save or print a copy of this e-mail,
please place it in an appropriate file, depending on whether confidential
information is contained in the message, and please treat all MuleSoft
confidential information with heightened protection.

Sorry i didn't get your point @ge2hernan. Can you please tell me how to solve it?

I understood that you had followed this to remove the connector file from
your project coverage:
https://docs.mulesoft.com/munit/2.3/munit-maven-plugin#ignoring-a-flow-or-a-file
Your app coverage scope should be just the new code you develop and not
code from dependencies.
Regards,
On Wed, Nov 24, 2021 at 5:02 PM johnmathew234 @.***>
wrote:

Sorry i didn't get your point @ge2hernan https://github.com/ge2hernan.
Can you please tell me how to solve it?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mulesoft-catalyst/logger-mule-extension/issues/1#issuecomment-978181997,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIL4OZXDSPQQYDO2A6SVBNTUNVAERANCNFSM5IW34GKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--
http://www.mulesoft.com/
Hernán Gegenschatz, Sr. Services Engineer
Juana Manso 999 6th floor, Buenos aires
https://maps.google.com/?q=Juana+Manso+999+6th+floor,+Buenos+aires&entry=gmail&source=g,
C1107CBS, Argentina
O 54 11 5353 4497 <54.11.5353.4497>  M 54 11 2728 7602 <541127287602>
https://www.linkedin.com/company/mulesoft https://twitter.com/mulesoft
https://www.facebook.com/MuleSoft https://videos.mulesoft.com/ We're
hiring! http://www.mulesoft.com/careers
NOTICE: This e-mail may contain confidential information. Any pricing
information contained in this communication is confidential MuleSoft
information. If you are not the addressee or the intended recipient please
do not read this e-mail and please immediately delete this e-mail message
and any attachments from your network mail system. If you are the addressee
or the intended recipient and you save or print a copy of this e-mail,
please place it in an appropriate file, depending on whether confidential
information is contained in the message, and please treat all MuleSoft
confidential information with heightened protection.

Hello @ge2hernan,
Thanks for the above response. But I didn't mean ignoring a file/flow as you mentioned. What I meant is if I never use this logger at all, I have my coverage issue fixed. Moreover, we cannot ignore a connector/dependency specifically.

Right, we can just exclude files or flows. Did you try excluding
mule-logger.xml as indicated in the link?.
Regards
On Thu, Nov 25, 2021 at 1:14 AM johnmathew234 @.***>
wrote:

Hello @ge2hernan https://github.com/ge2hernan,
Thanks for the above response. But I didn't mean ignoring a file/flow as
you mentioned. What I meant is if I never use this logger at all, I have my
coverage issue fixed. Moreover, we cannot ignore a connector/dependency
specifically.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mulesoft-catalyst/logger-mule-extension/issues/1#issuecomment-978814578,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIL4OZR7MPPMWMHXS6OJECDUNWZZ7ANCNFSM5IW34GKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--
http://www.mulesoft.com/
Hernán Gegenschatz, Sr. Services Engineer
Juana Manso 999 6th floor, Buenos aires
https://maps.google.com/?q=Juana+Manso+999+6th+floor,+Buenos+aires&entry=gmail&source=g,
C1107CBS, Argentina
O 54 11 5353 4497 <54.11.5353.4497>  M 54 11 2728 7602 <541127287602>
https://www.linkedin.com/company/mulesoft https://twitter.com/mulesoft
https://www.facebook.com/MuleSoft https://videos.mulesoft.com/ We're
hiring! http://www.mulesoft.com/careers
NOTICE: This e-mail may contain confidential information. Any pricing
information contained in this communication is confidential MuleSoft
information. If you are not the addressee or the intended recipient please
do not read this e-mail and please immediately delete this e-mail message
and any attachments from your network mail system. If you are the addressee
or the intended recipient and you save or print a copy of this e-mail,
please place it in an appropriate file, depending on whether confidential
information is contained in the message, and please treat all MuleSoft
confidential information with heightened protection.

@ge2hernan , yeso. I tried ignoring both the files module-logger.xml and module-logger-catalog.xml. But it did not solve the issue.

Ok, thanks John.  I'm sorry to read that.
I'll try to work on adding munits to the project in the following weeks,
but I can't commit to it.
If you'd like, you're welcome to try to add them to the project. Let me
know if you want to contribute so that I can give you permissions.
Regards
On Thu, Nov 25, 2021 at 12:27 PM johnmathew234 @.***>
wrote:

@ge2hernan https://github.com/ge2hernan , yes. I tried ignoring both
the files module-logger.xml and module-logger-catalog.xml. But it did
not solve the issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mulesoft-catalyst/logger-mule-extension/issues/1#issuecomment-979302480,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIL4OZRIHZXI4EO725R7GHDUNZIVNANCNFSM5IW34GKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--
http://www.mulesoft.com/
Hernán Gegenschatz, Sr. Services Engineer
Juana Manso 999 6th floor, Buenos aires
https://maps.google.com/?q=Juana+Manso+999+6th+floor,+Buenos+aires&entry=gmail&source=g,
C1107CBS, Argentina
O 54 11 5353 4497 <54.11.5353.4497>  M 54 11 2728 7602 <541127287602>
https://www.linkedin.com/company/mulesoft https://twitter.com/mulesoft
https://www.facebook.com/MuleSoft https://videos.mulesoft.com/ We're
hiring! http://www.mulesoft.com/careers
NOTICE: This e-mail may contain confidential information. Any pricing
information contained in this communication is confidential MuleSoft
information. If you are not the addressee or the intended recipient please
do not read this e-mail and please immediately delete this e-mail message
and any attachments from your network mail system. If you are the addressee
or the intended recipient and you save or print a copy of this e-mail,
please place it in an appropriate file, depending on whether confidential
information is contained in the message, and please treat all MuleSoft
confidential information with heightened protection.


Fix SIL checked_cast_br optimization to obey the consumptionKind.

This is a theoretically SIL optimizer bug that won't be reached in
practice. Nevertheless the code is wrong as written.

@swift-ci smoke test and merge.


docs: Add documentation for feature DEPLOYMENT.md

Improve the Deployment doc, the current documentation guide on deployment doesn't specify how to get fauset and deploy successfully:

Thank you @OnahProsperity !


Conty is broken, I guess.

Alpine Linux Edge. See title. Terminal output is below.
./conty_lite.sh ls /bin /home/cysk/.local/share/Conty/conty_lite.sh_cysk_f471f2e/utils/squashfuse3: error while loading shared libraries: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory /home/cysk/.local/share/Conty/conty_lite.sh_cysk_f471f2e/utils/squashfuse3: error while loading shared libraries: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory Mounting the image failed!
Not an expert in the slightest, so I'll just try not to comment anything that is wrong.

Thanks for the report, i'll investigate.

I just tried to run Conty (latest conty_lite.sh) on Alpine Linux (first on 3.16, then on Edge) and it works fine for me, i was unable to reproduce the problem. Really weird that it happens for you. Did you, by any chance, modified conty_lite.sh somehow?


Start Selenium Server should use the port given to the library when it is taken into use

Originally submitted to Google Code by @yanne on 14 Jan 2010

Then user would not need to enter host and port information twice

Originally submitted to Google Code by @pekkaklarck on 3 Feb 2010

Ought to be fixed in r277.


extract payg data after setup to prevent a race condition

What does this PR change?
When setting up PAYG, the job which extract the data run every 10 minutes.
When the container start up for the first time, it will not find the data and will behave like a standard installation.
To prevent this race condition, call the extract script - if installed - after setup to have the data early available.
Test coverage

No tests: manual

[x] DONE

Changelogs
Make sure the changelogs entries you are adding are compliant with https://github.com/uyuni-project/uyuni/wiki/Contributing#changelogs and https://github.com/uyuni-project/uyuni/wiki/Contributing#uyuni-projectuyuni-repository
If you don't need a changelog check, please mark this checkbox:

[ ] No changelog needed

If you uncheck the checkbox after the PR is created, you will need to re-run changelog_test (see below)
Before you merge
Check How to branch and merge properly!

I tested it manually and it worked.
@admd also a candidate for merging.


Infinite loop in Tilda Tooling

On schemas with tables refering to each other in a loop, for example, an employee table with a foreign key to itself for a manager, the tilda tooling goes into an infinite loop and blows the stack in the browser.

Using the Unit Test sample schema definition /Tilda/ut/tilda/data_test/_tilda.TildaTest.json, we can see this issue. It locks the browser, so make sure you pop up the debugger before selecting a schema.


NVSHAS-6910: Manual trigger of Updater job cases NV to create a group for the container.

The case is duplicated by following similar command:
"kubectl create job --from cronjob/neuvector-updater-pod manual-run-jay.says.do.5 -n neuvector"
The syntax will create a user-defined POD name: "manual-run-jay.says.do.5"
Our current method can not identify that they were one of our pod names.
(1) enhance the identification method to cover this case.
(2) "cri-o driver": add image labels into container labels.

Messing up branches. Need to re-submit a PR again.


Added : Modularization as a best practice

Hey, Thank you for sharing your learning :-). Glad to merge it.

Should I add your points to the article too?

Should I add your points to the article too?

Yeah sure


chore: boost to thespace

is this view a brand new one from scratch, or does it have a comparison to an existing

@tx0c similar to this one: https://github.com/thematters/matters-server/blob/develop/db/migrations/20220621013529_update_hottest_feed_boost_list.js
Just added thespace to matty user list


T85: Remove all references to goshawk version numbers from the JS Client API

Remove all references to goshawk version numbers from the JS Client API
Add a root for sparrowhawk to the default environment
Add tests for Ref functions to avoid coverage warnings
Bump to 0.2.3

On Wed, Feb 15, 2017 at 09:39:25AM -0800, kybernetikos wrote:

@@ -1,6 +1,6 @@
{
"ClusterId": "myCluster",

"Version": 1,

"Version": 22,

fat fingered, but then I ran gos, so I can't make it smaller again...

Wot? Just nuke your db!

@msackman such a cavalier attitude to data

On Wed, Feb 15, 2017 at 11:40:29AM -0800, kybernetikos wrote:

@msackman such a cavalier attitude to data

Pretty sure the js-client repo is not the ideal location for you to
store your own local config ;)


KeyError: 'storageSize'

Hi!
Thanks for the script, I'm receiving this error when trying to execute a medium set of courses (>500) with 1 (one) week of recordings parameter:
Traceback (most recent call last):
  File "Collab.py", line 26, in <module>
    grabaciones = ut.listaGrabaciones(grabacionesJson)
  File "/usr/local/opt/PyCollab/Utilidades.py", line 18, in listaGrabaciones
    recordinglist.append({"recording_id" : recordings['results'][x]['id'], "recording_name" : recordings['results'][x]['name'], "duration":recordings['results'][x]['duration'], "storageSize":recordings['results'][x]['storageSize'],"created": recordings['results'][x]['created']})
KeyError: 'storageSize'

Thanks for any assistance =D

that 'storageSize' value depends of Blackboard API response, it is not presented on all recording as value , I fixed this on new release of script


Add the option to provide input_content to files

We want to be able to pass raw content directly, for
intance to template files from terraform.
We add the option of input_content
Note: I did not test this! :warning:

For the time being we have the workaround of creating a temporary_file module like htis:
# Content input
variable "content" {
  description = "The content of the file"
}

# This is a workaround for shoreline that does not allow to pass the
# content for a file, but a local file, preventing use of templated files.
#
# Problem is: terraform does not support temporary files for plan+apply \
# easily, causing a bunch a trouble during plan+apply. The workaround
# is leverage a datasource+resource:
# - To allow the file to be generated during the `terraform plan` phase,
#   we create the file with a datasource.
# - To have the file during the `terraform apply` phase, we use the
#   local file resource.
#
# As a temporary location, we use the .terraform/ dir of the current project,
# that is usually ignored in git and full of other temporary files.
#
# This implementation depends on `jq` to be installed to parse the
# "external" datasource input.
#
data "external" "temporary_file" {
  program = [
    "bash",
    "-c",
    <<-EOF
    mkdir -p ${path.root}/.terraform/tmp
    json="$(cat)"
    content="$(echo "$json" | jq -r .content)"
    TMPFILE="$(echo "$json" | jq -r .file)"
    echo "$content" > "$TMPFILE"
    echo "{}"
    EOF
  ]

  query = {
    # the file path is based on the md5 of the content, to ensure
    # the content is changed each time.
    file    = "${path.root}/.terraform/tmp/${md5(var.content)}"
    content = var.content
  }
}

resource "local_file" "temporary_file" {
  content  = var.content
  filename = data.external.temporary_file.query.file
}

output "temporary_file" {
  value       = data.external.temporary_file.query.file
  description = "The generated temporary file"
}

So that we can define other module shoreline_content_file:
# This is a workaround for shoreline that does not allow to pass the
# content for a file, but a local file, preventing use of templated files.
#
# Uses the workaround from the module temporary_file
#
#
module "temporary_file" {
  source  = "../temporary_file"
  content = var.content
}

resource "shoreline_file" "file" {
  name             = var.name
  description      = var.description
  destination_path = var.destination_path
  resource_query   = var.resource_query
  input_file       = module.temporary_file.temporary_file
  md5              = md5(var.content)
  enabled          = true
}

output "shoreline_file" {
  value = {
    id         = shoreline_file.file.id,
    input_file = shoreline_file.file.input_file,
  }
}

# Content input
variable "content" {
  description = "The content of the file"
}

# Inputs as per https://registry.terraform.io/providers/shorelinesoftware/shoreline/latest/docs/resources/file#required
variable "destination_path" {
  type        = string
  description = "Target location for a copied distributed File object"
}

variable "name" {
  type        = string
  description = "The name/symbol for the object within Shoreline and the op language (must be unique, only alphanumeric/underscore)."
}

variable "resource_query" {
  type        = string
  description = "A set of Resources (e.g. host, pod, container), optionally filtered on tags or dynamic conditions."
}

variable "description" {
  type        = string
  description = "A user-friendly explanation of an object."
  default     = null
}

@timrc-shore

This has bee merged with changes as pull #67.
https://github.com/shorelinesoftware/terraform-provider-shoreline/pull/67


Capstone Module 1

In this pull request I was able to:

Create 2 pages, home and about,  for the mobile version using bootstrap, flexbox, and Sass.
Adapt the 2 pages to the desktop version here I also use grid for the layout of the speaker's section.
Create dynamically with JavaScript the speaker's section.
Implement the user interaction links and create a  mobile menu with javascript.
Record a video describing your project.
Deploy the project with GitHub Pages.

All the mandatory changes were implemented.


Add main/module fields to package.json

With package root imports relies on the main/module fields, see https://github.com/jacogr/test-noble-packaging (parcel/webpack bundles correctly, browserify needs the main field otherwise it doesn't find it)

Same with noble hashes pls

@noble/hashes do work since we don't import from root, rather via lib/blake2 etc. Or at least, the above linked repo only complains on secp256k1. (However, it we ever do export everything from index.ts as well, the same should be applied)

Any chance of this being released please?  It should fix builds that use browserify.

1.3.3


Env vars not passed properly to tests

It seems the env vars we use for testing aren't being passed properly when getting the test config. This results in tests always using the default in the codebase instead of the passed in env var

seems to have been a typo in env var name


SEGFAULT Issue Related to Fiber Usage in ngx_mruby Development

mruby version:3.2.0
Hello. I am developing with ngx_mruby and I have encountered a SEGV issue related to Fiber and would like to consult with you about it.
  mrb_value fiber_class = mrb_obj_value(mrb_class_get(mrb, "Fiber"));
  handler_proc = mrb_obj_value(mrb_closure_new(mrb, rproc->body.irep));
  if (mrb->exc) {
    ...
  }

  fiber_proc = (mrb_value *)ngx_palloc(r->pool, sizeof(mrb_value));
  *fiber_proc = mrb_funcall_with_block(mrb, fiber_class, mrb_intern_cstr(mrb, "new"), 0, NULL, handler_proc);
  ...

  handler_result = mrb_fiber_resume(mrb, *fiber_proc, 0, NULL);

A SEGV occurs when performing operations such as redirects in Nginx, moving back and forth between the Nginx context and the mruby context. The error appears at the following location.
Program received signal SIGSEGV, Segmentation fault.
0x00005555557a1ae3 in fiber_switch (mrb=0x555555ad01c0, self=..., len=0, a=0x0, resume=true, vmexec=true) at /home/pyama/src/github.com/matsumotory/ngx_mruby/mruby/mrbgems/mruby-fiber/src/fiber.c:260
260     value = c->stbase[0] = MRB_PROC_ENV(c->cibase->proc)->stack[0];

Here is the state during the first execution. At this point, c->cibase->proc->flags equals 1536.

com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_module.c:841
841    if (mrb_test(ngx_mrb_start_fiber(r, state->mrb, code->proc, mrb_result))) {
(gdb) p *code
$40 = {code = {
  file = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED",
  string = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED"},
 code_type = NGX_MRB_CODE_TYPE_STRING, n = 0, cache = 1, proc = 0x555555b35500, ctx = 0x555555b8f0e0}

ory/ngx_mruby/mruby/mrbgems/mruby-fiber/src/fiber.c:260
260     value = c->stbase[0] = MRB_PROC_ENV(c->cibase->proc)->stack[0];
(gdb) p c->cibase->proc->flags
$42 = 1536

For the second execution, c->cibase->proc->flags equals 512.

com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_module.c:841
841    if (mrb_test(ngx_mrb_start_fiber(r, state->mrb, code->proc, mrb_result))) {
(gdb) p *code
$45 = {code = {
  file = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED",
  string = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED"},
 code_type = NGX_MRB_CODE_TYPE_STRING, n = 0, cache = 1, proc = 0x555555b35500, ctx = 0x555555b8f0e0}
(gdb) c
Continuing.

Breakpoint 2, fiber_switch (mrb=0x555555ad01c0, self=..., len=0, a=0x0, resume=true, vmexec=true) at /home/pyama/src/github.com/matsumotory/ngx_mruby/mruby/mrbgems/mruby-fiber/src/fiber.c:260
260     value = c->stbase[0] = MRB_PROC_ENV(c->cibase->proc)->stack[0];
(gdb) p c->cibase->proc->flags
$46 = 512

As a result, it seems that the following process is diverged and NULL is returned.
https://github.com/mruby/mruby/blob/master/include/mruby/proc.h#L69
#define MRB_PROC_ORPHAN 512
#define MRB_PROC_ORPHAN_P(p) (((p)->flags & MRB_PROC_ORPHAN) != 0)
#define MRB_PROC_ENVSET 1024
#define MRB_PROC_ENV_P(p) (((p)->flags & MRB_PROC_ENVSET) != 0)
#define MRB_PROC_ENV(p) (MRB_PROC_ENV_P(p) ? (p)->e.env : NULL)

If you have any information necessary to resolve this issue, please let me know

Matz, thank you for your response. I added enable_sanitizer 'address,undefined,leak' to the build_config.rb file and executed it. Initially, there was an error related to mruby-userdata, but after fixing that, there were no further outputs or reports from the sanitizer.
Starting program: /home/pyama/src/github.com/matsumotory/ngx_mruby/build/nginx/sbin/nginx
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
"[3391485] init master process"
"ngx_mruby: STREAM: mruby_stream_init_code"
"[3391485] init worker process from inline code"
"ngx_mruby: STREAM: mruby_stream_init_worker_code"

Program received signal SIGSEGV, Segmentation fault.
0x000055555641b4e1 in fiber_switch (mrb=0x625000002900, self=..., len=0, a=0x0, resume=true, vmexec=true) at /home/pyama/src/github.com/
matsumotory/ngx_mruby/mruby/mrbgems/mruby-fiber/src/fiber.c:260
260         value = c->stbase[0] = MRB_PROC_ENV(c->cibase->proc)->stack[0];
(gdb) p MRB_PROC_ENV(c->cibase->proc)
$1 = (void *) 0x0

Additional information:
It appears that in cases where struct RProc *rp = mrb_closure_new(mrb, rproc->body.irep); is generated as shown, the RProc's upper becomes NULL.
First request:
(gdb) p *code
$2 = {code = {file = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED",
    string = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED"},
  code_type = NGX_MRB_CODE_TYPE_STRING, n = 0, cache = 1, proc = 0x555555b35500, ctx = 0x555555b8f0e0}
(gdb) c
Continuing.

Breakpoint 2, ngx_mrb_start_fiber (r=0x555555ace7e0, mrb=0x555555ad01c0, rproc=0x555555b35500, result=0x555555acf6b8) at /home/pyama/src/github.com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_async.c:50
50        handler_proc = mrb_obj_value(rp);
(gdb) p rp
$3 = (struct RProc *) 0x555555aed150
(gdb) p rp->upper
$4 = (const struct RProc *) 0x555555aed210

Second request:
841       if (mrb_test(ngx_mrb_start_fiber(r, state->mrb, code->proc, mrb_result))) {
(gdb) p *code
$7 = {code = {file = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED",
    string = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED"},
  code_type = NGX_MRB_CODE_TYPE_STRING, n = 0, cache = 1, proc = 0x555555b35500, ctx = 0x555555b8f0e0}
(gdb) c
Continuing.

Breakpoint 2, ngx_mrb_start_fiber (r=0x555555ace7e0, mrb=0x555555ad01c0, rproc=0x555555b35500, result=0x555555d2ee20) at /home/pyama/src/github.com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_async.c:50
50        handler_proc = mrb_obj_value(rp);
(gdb) p rp->upper
$8 = (const struct RProc *) 0x0

It seems that the issue is similar to the one described in this gist.
https://gist.github.com/yyamano/603b6934cafb68d63278f2739bc21c5e

Some questions:

Did this code work properly in the past? Or is this code a new one?
Can you show us the p result from the following?

handler_proc
c
*c
*c->cibase

@pyama86,
I tried the combination of ngx_mruby + mruby 3.2.0 on FreeBSD, and no SEGFAULT occurred.
However, ngx_mruby uses Fiber#resume in mrb_funcall(), which causes a FiberError in fiber_resume() and the HTTP response returns "500 Internal Server Error".
What will happen after applying the following patch?
diff --git a/src/http/ngx_http_mruby_async.c b/src/http/ngx_http_mruby_async.c
index e2bcbb6..17fb1cd 100644
--- a/src/http/ngx_http_mruby_async.c
+++ b/src/http/ngx_http_mruby_async.c
@@ -53,6 +53,11 @@ mrb_value ngx_mrb_start_fiber(ngx_http_request_t *r, mrb_state *mrb, struct RPro
                   "%s NOTICE %s:%d: preparing fiber got the raise, leave the fiber", MODULE_NAME, __func__, __LINE__);
     return mrb_false_value();
   }
+  if (!mrb_proc_p(*fiber_proc)) {
+    ngx_log_error(NGX_LOG_NOTICE, r->connection->log, 0,
+                  "%s NOTICE %s:%d: preparing fiber does not get a proc object, leave the fiber", MODULE_NAME, __func__, __LINE__);
+    return mrb_false_value();
+  }

   return ngx_mrb_run_fiber(mrb, fiber_proc, result);
 }
@@ -68,7 +73,7 @@ mrb_value ngx_mrb_run_fiber(mrb_state *mrb, mrb_value *fiber_proc, mrb_value *re
   ctx = ngx_mrb_http_get_module_ctx(mrb, r);
   ctx->fiber_proc = fiber_proc;

-  resume_result = mrb_funcall(mrb, *fiber_proc, "call", 0, NULL);
+  resume_result = mrb_top_run(mrb, mrb_proc_ptr(*fiber_proc), mrb_top_self(mrb), 0);
   if (mrb->exc) {
     ngx_log_error(NGX_LOG_NOTICE, r->connection->log, 0, "%s NOTICE %s:%d: fiber got the raise, leave the fiber",
                   MODULE_NAME, __func__, __LINE__);

If you are interested in why the changes were made to cause the FiberError, please see the following issue:

#5781
#5855

@matz

Did this code work properly in the past? Or is this code a new one?

No, I am rewriting it in C because in mruby 3.2, it is no longer possible to execute across C and mruby contexts using Fiber.
Here are the results of the print:
(gdb) p handler_proc
$21 = {w =<PHONE_NUMBER>4112}
(gdb) p c
$14 = (struct mrb_context *) 0x555555d36a40
(gdb) p *c
$15 = {prev = 0x555555d37a10, stbase = 0x555555abf880, stend = 0x555555abfa80, ci = 0x555555abfa90, cibase = 0x555555abfa90,
ciend = 0x555555abfc10, status = MRB_FIBER_RUNNING, vmexec = false, fib = 0x555555b34870}
(gdb) p *c->cibase
$16 = {n = 0 '\000', nk = 0 '\000', cci = 0 '\000', mid = 0, proc = 0x555555b34900, blk = 0x0, stack = 0x555555abf880,
pc = 0x555555b9d360 "\035\001\001\037\001", u = {env = 0x555555af8cd0, target_class = 0x555555af8cd0}}
(gdb) p *c->cibase->proc
$17 = {c = 0x555555ade5e0, gcnext = 0x555555b34930, tt = MRB_TT_PROC, color = 4, flags = 512, body = {irep = 0x555555b8ede0,
func = 0x555555b8ede0}, upper = 0x0, e = {target_class = 0x555555af8cd0, env = 0x555555af8cd0}}

Thank you. Could you show us values for both cases, I mean, when proc->upper is a valid pointer, and when it is NULL?

@dearblue
Thank you.
The compilation succeeds, but the tests executed with ./test.sh in the top directory of ngx_mruby did not pass.

@matz
The value entering proc->upper actually appears to be mrb->c->ci->proc, indicating its value.
https://github.com/mruby/mruby/blob/master/src/proc.c#L60
When processing successfully:
Breakpoint 2, ngx_mrb_run (r=0x555555ace7e0, state=0x555555ac99a8, code=0x555555b9baf8, cached=1, result=0x0) at /home/pyama/src/github.
com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_module.c:841
841       if (mrb_test(ngx_mrb_start_fiber(r, state->mrb, code->proc, mrb_result))) {
(gdb) p *code                                                                                $6 = {code = {file = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED",
    string = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED"},
  code_type = NGX_MRB_CODE_TYPE_STRING, n = 0, cache = 1, proc = 0x555555b35500, ctx = 0x555555b8f0e0}
(gdb) c
Continuing.
                                                                                Breakpoint 1, ngx_mrb_run_fiber (mrb=0x555555ad01c0, fiber_proc=0x555555acf6c0, result=0x555555acf6b8) at /home/pyama/src/github.com/mat
sumotory/ngx_mruby/src/http/ngx_http_mruby_async.c:78
78        handler_result = mrb_fiber_resume(mrb, *fiber_proc, 0, NULL);
(gdb) p mrb->c->ci->proc
$7 = (const struct RProc *) 0x555555aed210

When SEGV occurs:
Breakpoint 2, ngx_mrb_run (r=0x555555ace7e0, state=0x555555ac99a8, code=0x555555b9baf8, cached=1, result=0x0) at /home/pyama/src/github.com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_module.c:841
841       if (mrb_test(ngx_mrb_start_fiber(r, state->mrb, code->proc, mrb_result))) {
(gdb) p *code
$8 = {code = {file = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED",
    string = 0x555555b9bb20 "Nginx::Request.new.headers_out[\"Server\"] = \"global_ngx_mruby\"; Nginx.return Nginx::DECLINED"},
  code_type = NGX_MRB_CODE_TYPE_STRING, n = 0, cache = 1, proc = 0x555555b35500, ctx = 0x555555b8f0e0}
(gdb) c
Continuing.

Breakpoint 1, ngx_mrb_run_fiber (mrb=0x555555ad01c0, fiber_proc=0x555555d2eff0, result=0x555555d2ee20) at /home/pyama/src/github.com/matsumotory/ngx_mruby/src/http/ngx_http_mruby_async.c:78
78        handler_result = mrb_fiber_resume(mrb, *fiber_proc, 0, NULL);
(gdb) p mrb->c->ci->proc
$9 = (const struct RProc *) 0x0

I'm not sure if it will be helpful, but here is the code I'm currently working on: link.

The memory address changed because of the compilation, so I'll repost the answer to the previous question.
(gdb) p c
$1 = (struct mrb_context *) 0x555555d36a40
(gdb) p *c
$2 = {prev = 0x555555d37a10, stbase = 0x555555abf880, stend = 0x555555abfa80, ci = 0x555555abfa90, cibase = 0x555555abfa90,
  ciend = 0x555555abfc10, status = MRB_FIBER_RUNNING, vmexec = false, fib = 0x555555b34870}
(gdb) p *c->cibase
$3 = {n = 0 '\000', nk = 0 '\000', cci = 0 '\000', mid = 0, proc = 0x555555b34900, blk = 0x0, stack = 0x555555abf880,
  pc = 0x555555b9d360 "\035\001\001\037\001", u = {env = 0x555555af8cd0, target_class = 0x555555af8cd0}}
(gdb) p *c->cibase->proc
$4 = {c = 0x555555ade5e0, gcnext = 0x555555b34930, tt = MRB_TT_PROC, color = 4, flags = 512, body = {irep = 0x555555b8ede0,
    func = 0x555555b8ede0}, upper = 0x0, e = {target_class = 0x555555af8cd0, env = 0x555555af8cd0}}
(gdb) p c->cibase->proc->upper
$5 = (const struct RProc *) 0x0

I have created a minimal implementation for reproducing the issue, so I'm sharing it with you.
https://github.com/pyama86/fiber-segv

If proc is orphaned, I was wondering if the following would be acceptable. What do you think?
% git diff
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c
index 33913c108..ec5878dd6 100644
--- a/mrbgems/mruby-fiber/src/fiber.c
+++ b/mrbgems/mruby-fiber/src/fiber.c
@@ -257,7 +257,12 @@ fiber_switch(mrb_state *mrb, mrb_value self, mrb_int len, const mrb_value *a, mr
       }
     }
     c->cibase->n = (uint8_t)len;
-    value = c->stbase[0] = MRB_PROC_ENV(c->cibase->proc)->stack[0];
+    if(MRB_PROC_ENV_P(c->cibase->proc) != NULL) {
+      value = c->stbase[0] = MRB_PROC_ENV(c->cibase->proc)->stack[0];
+    } else {
+      value = c->stbase[0] = mrb_nil_value();
+    }
+
   }
   else {
     value = fiber_result(mrb, a, len);

Thank you for the reproducing code!!! That will be a great help.
Let me investigate the real issue. Stay tuned.

Ideally, I would like to be able to solve the problem myself, but I'm afraid my capabilities fall short. I appreciate your support and hope for the best!

I just commit the fix. Could  you confirm if it works?

Thank you for your assistance.
I tried the patch you provided, and it worked perfectly.
I really appreciate it.
Please have a great weekend.

I've resolved the issue regarding SEGV, but another mysterious phenomenon is occurring. When I create two fibers using the same mrb state, the second loop seems to behave strangely. Here's the reproduction code: Link to GitHub
The output looks like this:
./mruby/bin/mruby ./segv.rb
Hello, World1
--> nil
Hello, World1
--> nil
Hello, World1
--> nil
Hello, World2
--> nil
--> nil
trace (most recent call last):
        [2] ./segv.rb:1
        [1] ./segv.rb:1:in new
./segv.rb:1:in initialize: double resume (FiberError)
make: *** [Makefile:3: run] Error 1

Ideally, "Hello, World2" should be printed three times. If there's a possibility of another issue, please let me know, and we can create a separate issue for it.

Currently I remember that mrb_fiber_resume() is not supposed to be called from inside a C function defined as a method.
However, calling the mrb_segv_init() function directly from main(), which is prepared separately, causes the same phenomenon.

Instead of mrb_parse_string() + mrb_generate_code(), use mrb_load_string_cxt() with mrbc_context::no_exec = TRUE and it may work without problems.
     mrbc_context *cxt1 = mrbc_context_new(mrb);
     mrbc_context *cxt2 = mrbc_context_new(mrb);

-    mrb_value str1 = mrb_str_new_cstr(mrb, code1);
-    mrb_value str2 = mrb_str_new_cstr(mrb, code2);
-
     mrb_value fiber_class1 = mrb_obj_value(mrb_class_get(mrb, "Fiber"));
     mrb_value fiber_class2 = mrb_obj_value(mrb_class_get(mrb, "Fiber"));

-    struct mrb_parser_state *p1 = mrb_parse_string(mrb, RSTRING_PTR(str1), cxt1);
-    struct mrb_parser_state *p2 = mrb_parse_string(mrb, RSTRING_PTR(str2), cxt2);
+    cxt1->no_exec = TRUE;
+    cxt2->no_exec = TRUE;

-    struct RProc *proc1 = mrb_generate_code(mrb, p1);
-    mrb_value fiber1 = mrb_funcall_with_block(mrb, fiber_class1, new, 0, NULL, mrb_obj_value(mrb_closure_new(mrb, proc1->body.irep)));
+    mrb_value proc1 = mrb_load_string_cxt(mrb, code1, cxt1);
+    mrb_value proc2 = mrb_load_string_cxt(mrb, code2, cxt2);
+
+    mrb_value fiber1 = mrb_funcall_with_block(mrb, fiber_class1, new, 0, NULL, proc1);
     p(mrb, mrb_fiber_resume(mrb, fiber1, 0, NULL));
     p(mrb, mrb_fiber_resume(mrb, fiber1, 0, NULL));
     p(mrb, mrb_fiber_resume(mrb, fiber1, 0, NULL));

-    struct RProc *proc2 = mrb_generate_code(mrb, p2);
-    mrb_value fiber2 = mrb_funcall_with_block(mrb, fiber_class2, new, 0, NULL, mrb_obj_value(mrb_closure_new(mrb, proc2->body.irep)));
+    mrb_value fiber2 = mrb_funcall_with_block(mrb, fiber_class2, new, 0, NULL, proc2);
     p(mrb, mrb_fiber_resume(mrb, fiber2, 0, NULL));
     p(mrb, mrb_fiber_resume(mrb, fiber2, 0, NULL));
     p(mrb, mrb_fiber_resume(mrb, fiber2, 0, NULL));

Currently I remember that mrb_fiber_resume() is not supposed to be called from inside a C function defined as a method.

Yes, that's correct. So, up until version 3.1, we were creating and running Fibers in Ruby context. However, starting from version 3.2, when we switch back and forth between the C and Ruby contexts using Fibers, exceptions started to occur. Therefore, when transitioning to version 3.2, we are attempting to execute it only within the C context.
Reference: Link to the source code
In our current ngx_mruby implementation, we are generating closures from body->irep. However, when it comes to doing this successfully using the provided method, we would greatly appreciate any advice on the optimal approach.
(In the minimal implementation, we were generating a Proc from a string for convenience.)

By setting mrbc_context::no_exec = TRUE and calling mrb_load_XXX_cxt(), we get a parsed and compiled executable proc object instead of an evaluated result.
Also, by setting mrbc_context::dump_result = TRUE and calling mrb_load_XXX_cxt(), we can remove mrb_codedump_all() since we don't need to call it.
Here is an example patch for one of the three locations found by git grep -wn mrb_generate_code.
diff --git a/src/http/ngx_http_mruby_module.c b/src/http/ngx_http_mruby_module.c
index 76acfbb..11cd1a6 100644
--- a/src/http/ngx_http_mruby_module.c
+++ b/src/http/ngx_http_mruby_module.c
@@ -994,10 +994,11 @@ static ngx_int_t ngx_http_mruby_shared_state_init(ngx_mrb_state_t *state)
 static ngx_int_t ngx_http_mruby_shared_state_compile(ngx_conf_t *cf, ngx_mrb_state_t *state, ngx_mrb_code_t *code)
 {
   FILE *mrb_file;
-  struct mrb_parser_state *p;
+  mrb_value ret;

   NGX_MRUBY_CODE_MRBC_CONTEXT_FREE(state->mrb, code);
   code->ctx = mrbc_context_new(state->mrb);
+  code->ctx->no_exec = TRUE;
 #ifdef NGX_MRUBY_IREP_DEBUG
   code->ctx->dump_result = TRUE;
 #endif
@@ -1007,28 +1008,17 @@ static ngx_int_t ngx_http_mruby_shared_state_compile(ngx_conf_t *cf, ngx_mrb_sta
       return NGX_ERROR;
     }
     mrbc_filename(state->mrb, code->ctx, (char *)code->code.file);
-    p = mrb_parse_file(state->mrb, mrb_file, code->ctx);
+    ret = mrb_load_file_cxt(state->mrb, mrb_file, code->ctx);
     fclose(mrb_file);
   } else {
     mrbc_filename(state->mrb, code->ctx, "INLINE CODE");
-    p = mrb_parse_string(state->mrb, (char *)code->code.string, code->ctx);
+    ret = mrb_load_string_cxt(state->mrb, (char *)code->code.string, code->ctx);
   }

-  if (p == NULL || (0 < p->nerr)) {
-    return NGX_ERROR;
-  }
-
-  code->proc = mrb_generate_code(state->mrb, p);
-  mrb_pool_close(p->pool);
-  if (code->proc == NULL) {
-    return NGX_ERROR;
+  if (!mrb_proc_p(ret)) {
+      return NGX_ERROR;
   }
-
-#ifdef NGX_MRUBY_IREP_DEBUG
-  /* mrb_codedump_all() is not declared in mruby headers. So just follows the mruby way. See mruby/src/load.c. */
-  void mrb_codedump_all(mrb_state*, struct RProc*);
-  mrb_codedump_all(state->mrb, code->proc);
-#endif
+  code->proc = mrb_proc_ptr(ret);

   if (code->code_type == NGX_MRB_CODE_TYPE_FILE) {
     ngx_conf_log_error(NGX_LOG_NOTICE, cf, 0, "%s NOTICE %s:%d: compile info: code->code.file=(%s) code->cache=(%d)",

If you must use mruby 3.2.0 as is, you can create an env object right after code->proc = mrb_proc_ptr(ret) to avoid the SEGFAULT, as far as I checked with https://github.com/pyama86/fiber-segv.
I would like to think there are no side effects.
#include <mruby/proc.h>

static void
proc_attach_env(mrb_state *mrb, struct RProc *proc)
{
  struct REnv *e = MRB_OBJ_ALLOC(mrb, MRB_TT_ENV, MRB_PROC_TARGET_CLASS(proc));
  e->mid = 0;
  e->cxt = mrb->c;
  e->stack = (mrb_value *)mrb_malloc(mrb, sizeof(mrb_value));
  e->stack[0] = mrb_top_self(mrb);
  MRB_ENV_SET_LEN(e, 1);
  MRB_ENV_CLOSE(e);
  proc->e.env = e;
}

// License: Public Domain

Thank you for your suggestion.
However, I feel it is a bit risky to rewrite the parser part of ngx_mruby due to the fact that the Fiber implementation, which worked in mruby 3.1, no longer works in 3.2.
I should have said this from the beginning, but in mruby 3.1, it was possible to resume a Fiber created in a ruby context in a C context like this , but why is this no longer possible in 3.2?
ref: https://github.com/matsumotory/ngx_mruby/blob/master/mrbgems/ngx_mruby_mrblib/mrblib/mrb_nginx.rb#L134

However, I feel it is a bit risky to rewrite the parser part of ngx_mruby due to the fact that the Fiber implementation, which worked in mruby 3.1, no longer works in 3.2.

The current mruby API does not appear to provide a regular means of obtaining a proc object from an irep structure.
There is just mrb_proc_new() and mrb_closure_new() without the MRB_API modifier.
In my opinion, the only way to turn Ruby code into a proc object is to use mrbc_context::no_exec = TRUE + mrb_load_XXX_cxt().

I should have said this from the beginning, but in mruby 3.1, it was possible to resume a Fiber created in a ruby context in a C context like this , but why is this no longer possible in 3.2?

The reason is that there was a problem when Fiber#resume was called like mrb_funcall(mrb, fiber_obj, "resume", 0).

https://github.com/mruby/mruby/issues/5781
https://github.com/mruby/mruby/issues/5855

Thank you for your response. I have one more question at the end.
In our use case, when a user writes the following configuration:
Nginx.redirect 301

Internally, we want to execute it as follows:
Fiber.new {
  Nginx.redirect 301
}

However, with mruby 3.2 and later, since it does not allow Fibers to switch between C and Ruby contexts, am I correct in understanding that this interface is no longer usable?
Regarding the following statement:

In my opinion, the only way to convert Ruby code to a proc object is to use mrb_load_XXX_cxt() with mrbc_context::no_exec = TRUE+.

This statement seems somewhat unrelated, and what we need is to execute the Ruby code written by the user within a Fiber. The reason is that we need to provide non-blocking APIs, and we require the use of Fiber's yield and resume, without wanting users to implement them themselves.

However, with mruby 3.2 and later, since it does not allow Fibers to switch between C and Ruby contexts, am I correct in understanding that this interface is no longer usable?

Please note at the outset that I do not have a clear understanding of the ngx_mruby process flow, so I can't say for sure.
From outside the mruby VM (e.g. main()), switching with mrb_fiber_resume() is no problem.
Likewise, from outside the mruby VM (e.g. main()), there is no problem to run the proc object that does the Fiber#resume with mrb_top_run().
It is best to assume that switching is not possible from within the mruby VM.

# 念のため、DeepL で変換する前の日本語を以下に残します。
僕は ngx_mruby の処理の流れを把握できているわけではないので、確かなことが言えないことを最初にご承知ください。
mruby VM の外側 (例えば main()) から、mrb_fiber_resume() で切り替えることは問題ありません。
同じく、mruby VM の外側 (例えば main()) から、Fiber#resume を行う proc オブジェクトを mrb_top_run() で実行させることに問題はありません。
mruby VM の内部からは切り替えが出来ないと考えたほうが良いでしょう。

Thank you for your response.
To provide a bit more historical context, the issue with Fiber has been present for quite some time, as discussed in this issue. H2O and ngx_mruby had been using a workaround by encapsulating Fiber with Proc. However, starting from version 3.2, it became evident that it wouldn't work without applying some sort of patch to mruby 3.2, so we have decided to address it with a patch.
As far as I can see, a patch that reverses this commit should suffice, at least in my preliminary assessment. This should help mitigate the impact.
Thank you for your response.


Create mechanism for transforming InvocationMessages outside of Hub protocol

Related to #374

@anurse:
The Invocation Adapter was only intended as a way to serialize/deserialize the hub messages, hence the changes in this PR. However, having a component that allows you to intercept and rewrite those messages does seem like it might be useful and worth discussing, for exactly those scenarios.
Can I suggest moving this discussion to a new Issue? This seems like something we'll want to discuss in depth to figure out the best way to do it, but I don't want to overload this discussion thread with it.
Thread here

Why not just use a JSON converter?

@davidfowl
Did my example/use-case in the linked PR provide any clarity?
I like the suggestion for JSON Converters and think they will work. However, how would that work given the lack of guarantee that the protocol type is unknown? Ie. BinaryHubProtocol might become a thing, replace the JsonHubProtocol, and now suddenly the types aren't converted using the custom JSON Converters.

Would it not also be feasible to simply do this in the Hub logic itself? Make the Hubs just facades in front of a common implementation and they just transform the inputs from different-version clients and call the common implementation? That way you are isolated from protocol changes, and not coupled to specific extension points in SignalR.

We do not plan on doing this.


phoneLookupQuery with whereExactlyMatches not quite working with international number

Hi!
I'm doing the following:
val contact = Contacts(context)
    .phoneLookupQuery()
    .whereExactlyMatches("358404114141")
    .find()
    .firstOrNull()

And my device has a contact saved with the phone number "+358 40 411 4141".
According to https://github.com/vestrel00/contacts-android/blob/main/docs/basics/query-contacts-by-phone-or-sip.md, I feel like this should return a result instead of null like it is doing?
Note that it works fine if "+358404114141" is passed in.
I can work around by adding the "+" but thought I'd still create this ticket.

Thanks for letting me know! I'll look into this today and see if I can reproduce the issue using the PhoneLookupQuery API and raw Android code.
If I can reproduce the issue with raw Android code (not using the API provided in this library), then this is expected behavior and I will update the documentation. Otherwise, I'll look for a fix.
I'll keep you updated 🙂

@salami, I did some testing on some of my physical Android devices;

Google Pixel Pro ,Android 14, API 34
Xiaomi Redmi Note 12 Android 13, API 33
Samsung Galaxy A71, Android 13, API 33
Huawei Nexus 6P, Android 8.1, API 27

I created a contact that has a phone number of +358 40 411 4141. Note that the Android Contacts Provider automatically sets/coerces the value of normalizedNumber to +358404114141.

API code
When I run the same API code you provided;
val result = Contacts(context)
    .phoneLookupQuery()
    .whereExactlyMatches("358404114141")
    .find()
    .firstOrNull()

I get a different result on different physical devices.

Device
result

Google Pixel Pro, Android 14, API 34
❌ (null)

Xiaomi Redmi Note 12 Android 13, API 33
✅ (non null)

Samsung Galaxy A71, Android 13, API 33
❌ (null)

Huawei Nexus 6P, Android 8.1, API 27
✅ (non null)

I wanted to think that the issue is related to the Android API level BUT my Xiaomi and Samsung phones are on the same API level (though probably a fork of vanilla Android). Furthermore, issues that are API-level related typically work on older API levels up to a certain level where it stops working due to deprecations or bugs introduced in newer API levels.
This leads me to believe that the issue is more on the OEM/forked version of Android the physical device is running on.
For good measure, I also did some testing on my emulators...

Emulator
result

Pixel 6a, Android 14, API 34
❌ (null)

Pixel 4, Android 13, API 33
❌ (null)

Pixel 4, Android 11, API 30
✅ (non null)

Nexus 5X, Android 5.0.2, API 21
✅ (non null)

Based on my emulator testing of vanilla versions of Android, something may have changed between API 30 and 33.
Time to test raw code!

Raw Android code
When I run the following raw Android code;
val searchString = "358404114141"
val resultCount = contentResolver
    .query(
        ContactsContract.PhoneLookup.CONTENT_FILTER_URI
            .buildUpon()
            .appendEncodedPath(Uri.encode(searchString))
            .build(),
        null,
        null,
        null,
        null
    )?.count

I get the following results in the same devices and emulators (SPOILER: RESULTS ARE THE SAME)...

Device
** resultCount**

Google Pixel Pro, Android 14, API 34
❌ (0)

Xiaomi Redmi Note 12 Android 13, API 33
✅ (1)

Samsung Galaxy A71, Android 13, API 33
❌ (0)

Huawei Nexus 6P, Android 8.1, API 27
✅ (1)

Emulator
** resultCount**

Pixel 6a, Android 14, API 34
❌ (0)

Pixel 4, Android 13, API 33
❌ (0)

Pixel 4, Android 11, API 30
✅ (1)

Nexus 5X, Android 5.0.2, API 21
✅ (1)

Conclusion
The behavior we are seeing is expected behavior.
If you, or anyone, finds a way to "fix" this "issue", please create a PR 😄
Next steps

[ ] I will update the documentation https://github.com/vestrel00/contacts-android/blob/main/docs/basics/query-contacts-by-phone-or-sip.md#matchphone to make it clear that the matching results may differ across OEMs and/or different versions of Android.
[ ] I will update gh-pages https://vestrel00.github.io/contacts-android/basics/query-contacts-by-phone-or-sip/#matchphone
[ ] I will close this issue as "Won't fix"

Ah I see. Was confused by the double negative.


Testing suite

Restructure unit tests to use setup.R and teardown.R (if needed) to set up environment variables for the entire test suite.

Merged


Added N-Queen Visualizer | Issue #825

Description
N-Queens Visualiser! This web application allows you to visualize the classic N-Queens problem, where the objective is to place N queens on an N x N chessboard such that no two queens threaten each other. This is achieved by ensuring that no two queens share the same row, column, or diagonal.

Closes: #825

Title:  N-Queen Visualizer
Name: Shariq
Idenitfy yourself:
GSSOC Ext

Describe the add-ons or changes you've made 📃
Added N-Queen Visualizer, a project of Backtracking that help to understand the N-Queen Problem by the Viusualization of it.
Screenshots 📷

https://github.com/user-attachments/assets/052766a2-0488-4071-989a-54699e09dfd0
Type of change ☑

What sort of change have you made:

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

Checklist: ☑

[X] My code follows the Contributing Guidelines & Code of Conduct of this project.
[x] This PR does not contain plagiarized content.
[X] I have performed a self-review of my own code.
[X] I have commented my code, particularly wherever it was hard to understand.
[X] My changes generate no new warnings.

@Avdhesh-Varshney sir, please review

@Avdhesh-Varshney sir, please review this PR,

@Avdhesh-Varshney please check

@Avdhesh-Varshney sir ,please review now

@Avdhesh-Varshney sir, now i have reviewed all the changes and make the PR ready to merge.
Please review

@Avdhesh-Varshney sir, could u please merge the PR in order they are creating in time, as I have creates this PR which has no conflicts now, but if u merge a PR that has raise after me, then there will be conflicts in my PR in readme.md file.
So please merge this

@MastanSayyad , Only Project addition cannot allow Level 3

@Avdhesh-Varshney reduce to level 2

Agreed


Make return value of AiidaLabApp.repr() valid Python expression.

@CasperWA I previously accepted your suggestion to add <..> delimiters to the __repr__ return value of the AiidaLabApp class (as part of #81) however, the convention is not use these delimiters when __repr__ actually returns a valid Python expressions, see also here:

https://docs.python.org/3.7/library/functions.html#repr
https://stackoverflow.com/a/1984177

This PR reverts that change.

Well reading through your references, and also checking out the condition that it should be passable to eval(), I am not completely sure about this reversion.
Also (as a completely irrelevant but still "umbrella"-related things), we use angle brackets for the same thing in aiida-core, see, e.g., here for the Node class, which all other Nodes inherit from, and hence also this __repr__ method.
As far as I understand it, the convention is to return something that can used in eval(), if it can not, then it should have angle brackets.
However, you can use __str__ to return what you like :smiley: This should be the "standard" special method called for any actual purposes. Where __repr__ is more of a "developers" insight into the object or class (as is also written on the stackoverflow page). And is indeed used as a fallback if no special __str__ method can be found.
On the other hand. If you can have it return something that works with eval() that's cool with me :+1:

@CasperWA The AiidaLabApp.__repr__() return value is a valid expression. That was actually already intended when I made the change in #81, I just didn't pay enough attention when I accepted your suggestion.
You could use the following test code to convince yourself:
from aiidalab.app import AiidaLabApp

app = AiidaLabApp(name='aiidalab-lsmo', app_data={'git_url': 'https://github.com/lsmo-epfl/aiidalab-epfl-lsmo.git', 'meta_url':'https://raw.githubusercontent.com/lsmo-epfl/aiidalab-epfl-lsmo/master/metadata.json', 'categories': ['classical','quantum'], 'groups': ['classical', 'quantum'], 'metainfo': {'description': 'Applications from the LSMO group', 'title': 'LSMO apps', 'version': '0.1.0', 'logo': 'miscellaneous/logos/LSMO.png', 'state': 'registered'}, 'gitinfo': {'HEAD': 'a86f4e32bf5b0bed10020322c6eb30d00205301d', 'refs/heads/che_609_course': '3ce85293d3649d326747544aa7570ca1651e6b38', 'refs/heads/develop':'a86f4e32bf5b0bed10020322c6eb30d00205301d', 'refs/heads/electronic_calcs': '77abb69ccb5642a7cdc9c9e29fcb9ba3e3842fab', 'refs/heads/master': 'cea77537e1f1f9b5172b559de6e7637cbb5e8257'}, 'hosted_on': 'github.com'}, aiidalab_apps_path='/home/aiida/apps')
app2 = eval(repr(app))

Overall, I am not quite sure how to interpret your comment. It seems like you are agreeing with my interpretation of the definition of __repr__, but then don't seem to come the same conclusion regarding this change... 😕 Re aiida-core, I think it's intentional that Node.__repr__() is not evalable, so very well in line with what I'm proposing here.

Excellent :)


Upgrade MWA

Update MWA to 1.1.0
update kotlin version to 1.8.0 and kotlin-compiler to 1.4.1 (https://developer.android.com/jetpack/androidx/releases/compose-kotlin)
replace deprecated signMessage with signMessageDetached

Will wait till @Funkatronics checks this as well for dependency issues.

I don't see any problem here, and I recently made a similar update on the ktx example app. ship it


fix: export assets as asset modules

:tada: This PR is included in version 1.9.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


README.md: abbreviate "installs" badge

Kind of random, but saw this on the README and wanted to fix it.
"3644194 installs" is hard to parse; abbreviate to "3.64M installs".
Before

After

Glad to see I'm not the only one with O.C.D. Personally the long version doesn't bother me.


[WIP] Update Scala.js

Should fix #186. Currently it cannot be built, we're investigating the issue.

 Apparently some gorram hipster decided it's pretty smart to use both  "io.apigee" % "rhino" % "1.7R5pre4" and  "org.mozilla" % "rhino" % "1.7R4". I'll try to deduce the latest version of scalajs plugin lacking this idiocy.

 Oy vey. Their versions probably should be bumped too.

@ForNeVeR is this still relevant?

Yes it is. We still haven' updated the damn' scala.js.

@ForNeVeR I think this PR is dead. Let's close it?

I don't think it's dead. We want to eventually update our Scala.js. Somebody should take it and finish the work. The changes in this PR are useful.

@ForNeVeR if I was assigned to fix #186 right now I'd just start from scratch. Just sayin'. You do you. :)

@rexim you're right: sometimes I have difficulties differentiating myself from other people. So, if I will be you when I'll be fixing the issue, I'll probably start from scratch. Otherwise I'll likely take another pills actions.

Superseded by #225 which updates Scala.js to 1.2.0 (amongst other things).


Remove codu logo in pull_request_template.md

✨ Codu Pull Request 💻

Pull Request details

Removes the Codu Logo from the PR template
Closes #1017

Any Breaking changes
None
Associated Screenshots
None

Unrelated but it might also be a good idea to have a "Closes #issue number" line in the PR template to indicate to contributors to link the related issues

Unrelated but it might also be a good idea to have a "Closes #issue number" line in the PR template to indicate to contributors to link the related issues

Very smart! Want to create an issue with that?

Unrelated but it might also be a good idea to have a "Closes #issue number" line in the PR template to indicate to contributors to link the related issues

Very smart! Want to create an issue with that?

Sure thing! Created PR #1019


Improvement/update node support to 18 and cypress 10 11 12

I have upgraded a few packages to support cypress 10 and also 11 and 12 versions, with nodejs 16.x and 18.x. Babel also should be updated, maybe deep refactoring of js files to ts and removing some packages in the future would be good decisions, otherwise working with this package going to be a headache.
I have updated jest-image-snapshot to 5.0.0. version and example react project too, with jest-image-snapshot i had multiple issues which need a lot of time I think to fix so I don't know if there is any sense to do such big job if cypress-image-snapshot packages going to die instead of updating.

@jaredpalmer may I ask who is maintaining this package? I have some small changes id like to make + pr's like this need some love I think! Any chance its worth adding more contributors to give this project some life? Cheers

@paperschool  as you can see, no one answered, I have published my fork into NPM, but better to create a new package from scratch. I also found other PR so if there will be interest from other devs we can try to write a package with a modern environment and starter kits.

@sosog would you say the contents of this package are sufficiently out of date as to not make it worth keeping and republishing? Id be game on recreating it but frankly I am not sure on the intricacies of the entire package. What is worth keeping and what isnt etc.

@paperschool  I say it as an option only, because authors are inactive, as you can see I have updated it already, in the future we can switch to TS and just move the logic of this package, but anyway, it's tons of work.

@jaredpalmer could you help us with this PR?

@jackjocross @MichaelDeBoey @lazarljubenovic

@simonsmith you have similar PR

I like the sound of a new package and we can drop all the forks

@jackjocross @MichaelDeBoey @lazarljubenovic

What?

@jackjocross @MichaelDeBoey @lazarljubenovic

What?

You are contributor, maybe you have contact with the package author, he is inactive here.

I have tried contacting Jared directly on Twitter but no joy. Safe to assume this package will not receive any more updates

@lazarljubenovic not funny...

@simonsmith so we can create maybe some discord chat, to talk about perspectives

Just fork the goddamn package.

Just fork the goddamn package.

I don't know where you grew up, but you should be more polite here, and yes this one is already forked, that's the main topic. Bye.

I don't know where you grew up, but having a message consist solely of three pings is considered spam. Posting three messages in a row as well.

@simonsmith deprecated in prefer of your package https://www.npmjs.com/package/@sosog/cypress-image-snapshot


The keyboard focus is moving to the non-interactive controls "Databases for assessment" page: A11y_[BM]SQL Migration extension for Azure Data Studio_Migrate to azure sql_Databases for assessment_Usability

Check out Accessibility Insights! - Identify accessibility bugs before check-in and make bug fixing faster and easier.
GitHub Tags:
#A11yUsable; #A11yTCS; #Win11; #DesktopApp; #A11ySev4; #BM_SQL Migration extension for Azure Data Studio_Win32_Sep2024; #SQL Migration extension for Azure Data Studio; #FTP; #Benchmark; #Win32;
Environment Details:
Application Name: SQL Migration extension for Azure Data Studio
Microsoft Windows 11 version 23H2 (OS Build 22631.4037)
Azure data studio 1.44.1
Azure SQL Migration v1.4.8
Repro Steps:

Install Azure data studio and open.
Navigate by using TAB key till Extension press ENTER key and install "Azure SQL Migration"
Navigate by using TAB key till Respective server and right click.
Navigate by using TAB key till manage and press ENTER key.
Navigate by using TAB key till "Azure SQL Migration" and press ENTER key.
Navigate by using TAB key till migrate to azure sql and press ENTER key, saved session page will open.
Select start new session and give next, "Databases for assessment" page will open.
Navigate by using TAB key to the page and observe the issue.

Actual results:
The keyboard focus is moving to the non-interactive controls "Databases for assessment" page.
Expected results:
The keyboard focus should not move to the non-interactive controls "Databases for assessment" page.
User Impact:
The Keyboard user will think its interactive and won't be able to perform action on it.
Attachments:
25902_A11y_[BM]SQL Migration extension for Azure Data Studio_Migrate to azure sql_Databases for assessment_Usability.webm

#Rev:samhithaks;


Issue with "Policy API" in @site/api/cloud/cspm/policy.mdx

Thank you for taking the time to help us improve our documentation! Please describe the problem and a suggested fix below and we'll get back to you as soon as we can. --DevRel
Describe the problem
The "Update Policy" endpoint states that not ALL body params are required. This is true, but there are still red stars indicating required params - these should be removed if not necessary. Second, the blurb below states that the policy will stay "enabled" if you don't pass anything; this is not true. When updating the policy via this endpoint, any modification without also explicitly passing the "enabled: true" param will actually DISABLE the policy.
Location:
https://prisma.pan.dev/api/cloud/cspm/policy#operation/update-policy
States:

Although multiple body parameters are marked as required, to update a policy, you need to provide only the body parameters that you want to update with the exception of the boolean parameter enabled, which will default to a value of true unless otherwise specified

Suggested fix

Remove the red stars for the non-required params
Change the API endpoint to when a param is passed, keep the policy enabled. (Please don't just change the document. The API is broken and should remain enabled when updating a policy).

Merged fix that changes the documentation for https://prisma.pan.dev/api/cloud/cspm/policy#operation/update-policy to describe the enabled parameter more accurately. As you know, there was another ticket for Engg to address the behavior in oob policies.
Addressing the "required" flags is harder. Theses flags are set on the models, not on each API. I understand the concern, and I agree the current solution is not ideal. Any fix I can think of, though, is non-trivial and would probably require Engg and PM agreement. I can open an Engg ticket.


Wiki mobile services typo

Unfortunately you can't send a PR for wikis easily, so I'll raise an issue.
I believe there's a mobile services typo in the Accessing-the-kudu-service.md
Made a fork with correction here

Merged, thanks.
Thanks for a great service with Kudu! :+1:


[oozie] Fix usage of iterkeys() and zip() in list_oozie_info template (1270)

The function iterkeys() is not available in Python 3, but there seems
to be no real need for an iterator anyway. The zip() call returns an
interator in Python 3, not a list, so the compromise of wrapping
list(zip()) should suffice for this use case.

Nit: # missing in PR number in commit message

@romainr fixed thanks!

Also added fixes for linter errors..

Ok!
Just 3 more it seems!

@romainr should be ready to review :)

Awesome! Maybe just rebase on master? (or drop the api3.py change)

Ah right the usual issue, will rebase :)

@romainr done!

Will rebase again after https://review.cloudera.org/r/15458/


Test organization

Summary
Move tests  for genesis serialization logic to lib.rs
See: https://github.com/Sovereign-Labs/sovereign-sdk/pull/990#discussion_r1348538397

For clarity:
Placing tests in a top-level src/tests.rs file can mistakenly lead us to add what seems like integration tests. However, these might not truly be integration tests. For instance, they might depend on a private API, making the module ineffective.
To avoid this, unit tests should be alongside the functionality they test.
Regarding the situation in #990 comment, we could consider moving the config struct from lib.rs to genesis.rs. By re-exporting it, all genesis-related tests would be in genesis.rs.


nvm commands don't work

Operating system and version: CentOS 7 Linux
nvm debug output:

nvm --version: v0.37.2
$SHELL: /bin/bash
$SHLVL: 1
whoami: 'root'
${HOME}: /root
${NVM_DIR}: '${HOME}/.nvm'
${PATH}: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:${HOME}/.dotnet/tools:${HOME}/bin
$PREFIX: ''
${NPM_CONFIG_PREFIX}: ''
$NVM_NODEJS_ORG_MIRROR: ''
$NVM_IOJS_ORG_MIRROR: ''
shell version: 'GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)'
uname -a: 'Linux 3.10.0-1160.6.1.el7.x86_64 #1 SMP Tue Nov 17 13:59:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux'
checksum binary: 'sha256sum'
OS version: CentOS Linux 7 (Core)
curl: /usr/bin/curl, curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.53.1 zlib/1.2.7 libidn/1.28 libssh2/1.8.0
wget: /usr/bin/wget, GNU Wget 1.14 built on linux-gnu.
git: /usr/bin/git, git version <IP_ADDRESS>
ls: cannot access alias
/usr/bin/grep: No such file or directory
grep: alias grep='grep --color=auto'
        /usr/bin/grep (grep --color=auto), grep (GNU grep) 2.20
awk: /usr/bin/awk, GNU Awk 4.0.2
sed: /usr/bin/sed, sed (GNU sed) 4.2.2
cut: /usr/bin/cut, cut (GNU coreutils) 8.22
basename: /usr/bin/basename, basename (GNU coreutils) 8.22
ls: cannot access alias
/usr/bin/rm: No such file or directory
rm: alias rm='rm -i'
        /usr/bin/rm (rm -i), rm (GNU coreutils) 8.22
mkdir: /usr/bin/mkdir, mkdir (GNU coreutils) 8.22
xargs: /usr/bin/xargs, xargs (GNU findutils) 4.5.11
nvm current: none
which node: which: no node in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:${HOME}/.dotnet/tools:${HOME}/bin)
which iojs: which: no iojs in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:${HOME}/.dotnet/tools:${HOME}/bin)
which npm: which: no npm in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:${HOME}/.dotnet/tools:${HOME}/bin)
npm config get prefix: -bash: npm: command not found
npm root -g: -bash: npm: command not found

nvm ls output:

            N/A
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.23.2 (-> N/A)
lts/erbium -> v12.20.1 (-> N/A)
lts/fermium -> v14.15.4 (-> N/A)

How did you install nvm?
tried curl, then wget, then git.
All tests have been performed on the git install
What steps did you perform?
git clone <nvm>
did not work.
deleted and reinstalled three times.
What happened?
Nothing changed.
What did you expect to happen?
I expected some sort of error at least.
Is there anything in any of your profile files that modifies the PATH?
Not sure
If you are having installation issues, or getting "N/A", what does curl -I --compressed -v https://nodejs.org/dist/ print out?

Stays like this forever
Whenever I run basically any nvm script (including nvm install node,) nothing happens. It seems like it is running the command forever.

To be clear, are you having issues running the install script? If that works, do the "sourcing nvm" lines appear in the right profile file? If so, what does type nvm print out on the command line?

If it's just an issue with installing node, what does nvm ls-remote do? If you do nvm install node, does it print anything out?

anything accessing a remote server doesn't work. both nvm ls-remote and nvm install node don't print anything out.

The issue template had a curl command that you didn't provide the output of - what does that do?

I just realized how many questions I skipped. editing it now...

ok, so it looks like your computer simply can't connect to nodejs.org. That's not an nvm problem, that's a "your networking setup" problem. Perhaps do you have an ipv6-only setup?

Tried my own website on ipv4. Got this:
curl: (35) Peer reports incompatible or unsupported protocol version.
Alright.

Perhaps do you have an ipv6-only setup?

Probably it.


Docs: Homepage Link

Summary
I just wanted to mention the ORM integration link on the https://litestar.dev/ homepage is broken, currently links to https://docs.litestar.dev/2/usage/plugins/sqlalchemy.html

Funding

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified

Thanks for this. This actually lives in the litestar.dev repo:
https://github.com/litestar-org/litestar.dev/blob/dcf492a406d0ce8a31d9554a58f99965712151fd/page/conf.py#L104
I will make a fix there.


Run clang-format against header files

Reference Issue

What does this implement/fix? Explain your changes.
In this PR header files are prettified by clang-format as there are a bunch of cpp files that are not formatted as well.
Also, unnecessary trailing commas are removed.
Any other comments?
Some of modification of comments are not included because doxygen blocks are broken.

At one point Greg (@greglandrum) and I talked about running clang-format on the entire codebase after a release, so my suggestion is to run clang-format on everything.  This will make reviews easier in my opinion.

@bp-kelley, @e-kwsm : I think this makes sense, but we should be sure that all outstanding C++ PRs have been merged before doing it. This will otherwise make life extremely difficult for those contributors.

Agreed.
On Mon, May 17, 2021 at 8:13 AM Greg Landrum @.***>
wrote:

@bp-kelley https://github.com/bp-kelley, @e-kwsm
https://github.com/e-kwsm : I think this makes sense, but we should be
sure that all outstanding C++ PRs have been merged before doing it. This
will otherwise make life extremely difficult for those contributors.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/rdkit/rdkit/pull/4143#issuecomment-842275098, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACLOFIBSY7OUOAUZ45W2MGDTOEB7DANCNFSM447L4A6Q
.

Thanks @e-kwsm : I will go ahead and merge this after the CI builds finish.

There was never going to be a really good time to merge this so...


Fix link to Vercel playground

Thanks for the heads-up! I adjusted the README so that it reflects the link which I had in mind originally 😄


Token.sol is not abstract

Slight oversight. Token.sol should be abstract to enforce implementation of the standard. ht @HCharlanes

Not going to add this now, since in some circumstances, some people do NOT implement all the functions as is.