This is the OXA activation email monitoring tool.

This is the first version of the tool set.
Monitor script monitors the logs and maps with MySQL user info and
sumarizes to a table. Then Notify script sends summary email every time it
runs and also sends activation email for the failed ones.
These two scipt writes actions and erros to a log file in the same folder
it runs.
Fill in the sender emails, SMTP server and MySQL server credentials before using these
scripts.
What's this PR do? Any additional context?
Where should the reviewer start?
New tool that runs with crontab job periodically. One determines the activation email failures and other sends the summary emails and also resends the activation emails to users.
How can this be manually tested? (brief repro steps)
See Huseyin for that.
What are the relevant TFS items? (list id numbers)
99005
Definition of done:

[ ] Title of the pull request is clear and informative
[ ] Add pull request hyperlink to relevant TFS items
[x] For large or complex change: schedule an in-person review session

Reminders BEFORE merging

Get at least two approvals
If you're merging into the development branch then "flatten" or "squash" commits
If merging from development into master then don't "flatten" or "squash" commits

Reminders AFTER merging

Delete the remote branch
Resolve relevant TFS items
(reverse merge) If you merged into master then check to see if there are any changes in master that can be merged down to the development branch (like hotfixes, etc)

What is the driving rationale for using the migration folder to host this tool?

You mean the admin user: lexoxaadmin? Are there no permission issues on /edx/.. folder path?

That is good!
Now, if there is 1 failed activation email, how is that handled?  Is only that failed line processed or the entire file is first checked? If the latter, how many lines are typically in this file that get processed this way?

And therein is the risk. Depending on how the addresses are obtained, the script will fail when we deploy. Remember, we do a tear down with each deployment and IPs change. Hardcoding the IP addresses here will not work post-deployment.

Sure. We have some room to work with. Please create a backlog work item to track the future work.

Ok.

[ ] Finalize script location
[ ] Copyright headers
[ ] Configurable output paths
[ ] Error Handling
[ ] Performance concerns (single activation email triggers x iterations of select queries)

I applied all the feedback Elton provided. We had an in person session with Elton and Stephen and explained them the changes I have completed.


#2 Added Personal Page guneriv.eth

Description
Issue : 2 Added Personal Page
Additional Information

[x] I have read the contributing docs (if this is your first contribution)
[x] This is not a duplicate of any existing pull request

Related Issues
Closes #{issue number}
Note: If your changes are small and straightforward, you may skip the creation of an issue beforehand and remove this section. However, for medium-to-large changes, it is recommended to have an open issue for discussion and approval prior to submitting a pull request.
Your ENS/address: guneriv.eth

Hi @phipsae !
Thank you very much for all of your advices that i tried to take in considiration and i ve just pushed a last version containing all modifications.
I have just a doubt on icons for portfolio and certificate that i found on the net. i m not sure that they are self-explanatory enouph for user experience. If not, would you have any advise on where to catch good ones?
Thanks again and here my screenshots for both dark and light mode of my new personal page.

Thanks for implementing all the changes, @volkanguneri!
Great job, it looks great! I appreciate that you're using SVGs for the icons. As a small tip to make your code cleaner, consider creating separate SVG files for the GitHub and LinkedIn symbols. Regarding the term "self-explanatory," I think it's subjective; I find your approach clear. Additionally, you can use libraries like HeroIcons or even emojis for icons.


LB stuck in Waiting in Rancher 1.6.26

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):

Create a stack consist of two load balancers, let's call them lb-a and lb-b
Create a link from lb-a to lb-b and another link from lb-b to lb-a
Stop the whole stack
Start the stack

Result:
The stack would not be able to start, both LB stuck in state "Waiting: xxxxx [lloadBalancerService:xxxx]"
Other details that may be helpful:
We start to experience this issue since we upgrade from v1.6.22
Service log from both LB:
lb-a
12:16:17 PM | INFO | service.activate (Running) | Activating service |
-- | -- | -- | -- | --
12:16:03 PM | INFO | service.activate.exception | Waiting: state to equal active [loadBalancerService:1s4024] |
12:15:17 PM | INFO | service.activate (46 sec) | Activating service |
-- | -- | -- | -- | --
12:15:02 PM | INFO | service.activate.exception | Waiting: state to equal active [loadBalancerService:1s4024] |

lb-b
12:16:17 PM | INFO | service.activate (Running) | Activating service |
-- | -- | -- | -- | --
12:16:03 PM | INFO | service.activate.exception | Waiting: loadBalancerService activating [loadBalancerService:1s4018] |
12:15:17 PM | INFO | service.activate (46 sec) | Activating service |
12:15:02 PM | INFO | service.activate.exception | Waiting: loadBalancerService activating [loadBalancerService:1s4018] |

compose files of the stack:
docker-compose.yml
version: '2'
services:
  lb-a:
    image: rancher/lb-service-haproxy:v0.9.6
    expose:
    - 80:80/tcp
    labels:
      io.rancher.container.agent.role: environmentAdmin,agent
      io.rancher.container.agent_service.drain_provider: 'true'
      io.rancher.container.create_agent: 'true'
  lb-b:
    image: rancher/lb-service-haproxy:v0.9.6
    expose:
    - 80:80/tcp
    labels:
      io.rancher.container.agent.role: environmentAdmin,agent
      io.rancher.container.agent_service.drain_provider: 'true'
      io.rancher.container.create_agent: 'true'

rancher-compose.yml
version: '2'
services:
  lb-a:
    scale: 1
    start_on_create: true
    lb_config:
      certs: []
      port_rules:
      - hostname: ''
        priority: 1
        protocol: http
        service: lb-b
        source_port: 80
        target_port: 80
    health_check:
      healthy_threshold: 2
      response_timeout: 2000
      port: 42
      unhealthy_threshold: 3
      initializing_timeout: 60000
      interval: 2000
      reinitializing_timeout: 60000
  lb-b:
    scale: 1
    start_on_create: true
    lb_config:
      certs: []
      port_rules:
      - hostname: ''
        priority: 1
        protocol: http
        service: lb-a
        source_port: 80
        target_port: 80
    health_check:
      response_timeout: 2000
      healthy_threshold: 2
      port: 42
      unhealthy_threshold: 3
      initializing_timeout: 60000
      interval: 2000
      reinitializing_timeout: 60000

Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): v1.6.26
Installation option (single install/HA):
HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported): Hosted

Machine type (cloud/VM/metal) and specifications (CPU/memory): VM

Kubernetes version (use kubectl version): N/A, we are using Cattle

Docker version (use docker version):

17.06.2-ce

I would suspect the cause is this commit:
https://github.com/rancher/cattle/commit/6b253c9b3f709b3466a5b1430e191fdbf8158403

Experiencing this on Rancher 1.6.28, and rancher/lb-service-haproxy:v0.9.11

Okay, just discovered the problem. Our HTTP LB points to itself, to redirect HTTP to HTTPS. Should I create another LB with only HTTPS and make the HTTP LB redirect to the HTTPS LB?
My HTTP LB have this rules:

And the https-redirect backend:
backend https-redirect
    redirect scheme https if !{ ssl_fc }

One of the workaround we have found is break the loop of links, i.e. avoid the case of A->B->...->A.
One of the way to get it done is instead of using service link, create an "External Service" which point to the hostname service.stack.
However, in your case, I think it would be easier just to create a busybox service and forward the request to that instead of the LB iself.

me too


Unable to generate certificate

[Sun Oct 01 20:16:04.546860 2017] [:error] [pid 31979] [client <IP_ADDRESS>:10953] PHP Warning:  copy(odt/base/base59d14d04822c5.odt): failed to open stream: No such file or directory in /var/www/html/Certificate/library/odf.php on line 259, referer: http://developer.vigasdeep.com/Certificate/index.php?cert=design3
[Sun Oct 01 20:16:04.985870 2017] [:error] [pid 32474] [client <IP_ADDRESS>:14073] PHP Warning:  copy(odt/base/base59d14d04ed9fb.odt): failed to open stream: No such file or directory in /var/www/html/Certificate/library/odf.php on line 259, referer: http://developer.vigasdeep.com/Certificate/index.php?cert=design3
[Sun Oct 01 20:16:24.823158 2017] [:error] [pid 31930] [client <IP_ADDRESS>:14081] PHP Fatal error:  Uncaught OdfException: Nothing to parse - check that the content.xml file is correctly formed in /var/www/html/Certificate/library/odf.php:73\nStack trace:\n#0 /var/www/html/Certificate/manual.php(5): Odf->__construct('odt/base/base59...')\n#1 {main}\n  thrown in /var/www/html/Certificate/library/odf.php on line 73, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:18:02.456727 2017] [:error] [pid 31930] [client <IP_ADDRESS>:10987] PHP Fatal error:  Uncaught OdfException: Nothing to parse - check that the content.xml file is correctly formed in /var/www/html/Certificate/library/odf.php:73\nStack trace:\n#0 /var/www/html/Certificate/manual.php(5): Odf->__construct('odt/base/base59...')\n#1 {main}\n  thrown in /var/www/html/Certificate/library/odf.php on line 73, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual

It is looking for a file which does not exist.
PHP Warning:  copy(odt/base/base59d14d04822c5.odt): failed to open stream: No such file or directory
There is no 'base' directory inside odt.

Need to find why its looking for base/base59d14d04822c5.odt

No permission issue. tried with 777, not working.

created base dir inside odt/ and gave it required permission. Started working.

another problem: can't see user image on crop screen, and cant move forward without cropping.
Errors in console:
[Sun Oct 01 20:42:00.803449 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  move_uploaded_file(uploads/manual/59d15318c421f1094477): failed to open stream: No such file or directory in /var/www/html/Certificate/manual.php on line 45, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.804337 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  move_uploaded_file(): Unable to move '/tmp/phppd0I2T' to 'uploads/manual/59d15318c421f1094477' in /var/www/html/Certificate/manual.php on line 45, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.804780 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  imagecreatefromjpeg(uploads/manual/59d15318c421f1094477): failed to open stream: No such file or directory in /var/www/html/Certificate/manual.php on line 55, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.805082 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  imagesx() expects parameter 1 to be resource, boolean given in /var/www/html/Certificate/manual.php on line 71, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.805290 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  imagesy() expects parameter 1 to be resource, boolean given in /var/www/html/Certificate/manual.php on line 72, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.805476 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  imagecreatetruecolor(): Invalid image dimensions in /var/www/html/Certificate/manual.php on line 75, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.805668 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  imagecopyresampled() expects parameter 1 to be resource, boolean given in /var/www/html/Certificate/manual.php on line 78, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual
[Sun Oct 01 20:42:00.805856 2017] [:error] [pid 31980] [client <IP_ADDRESS>:11420] PHP Warning:  imagejpeg() expects parameter 1 to be resource, boolean given in /var/www/html/Certificate/manual.php on line 81, referer: http://developer.vigasdeep.com/Certificate/option.php?var=manual

Fixed above by creating some folders. New error in error.log after generating.
Error: Unable to connect or start own listener. Aborting.

@vigasdeep try running the following manually:
$ unoconv --listener

Yes, i tried that, did not work. ( I was root ) ..
Now tried the command with normal user, and yay! it worked.

59d1559f95e57.pdf
Finally. here's the certificate.  From my own personal installation.

Everything worked fine upto Generate Pdf Option. After that I encountered with an error.
Not Found
The requested URL /Certificate/pdf/59d27de9eb198.pdf was not found on this server.
Apache/2.4.18 (Ubuntu) Server at localhost Port 80
In /var/log/apache2/error.log file  The error displayed is
Unable to store document to file:///var/www/html/Certificate/pdf/59d27de9eb198.pdf (ErrCode 283)
Properties: ((com.sun.star.beans.PropertyValue){ Name = (string)"OutputStream", Handle = (long)0x0, Value = (any){ (com.sun.star.uno.XInterface)0x1ad6ba8{, supportedInterfaces={com.sun.star.lang.XTypeProvider,com.sun.star.io.XOutputStream}} }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE }, (com.sun.star.beans.PropertyValue){ Name = (string)"FilterName", Handle = (long)0x0, Value = (any){ (string)"writer_pdf_Export" }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE }, (com.sun.star.beans.PropertyValue){ Name = (string)"Overwrite", Handle = (long)0x0, Value = (any){ (boolean)true }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE })

The problem was with ownership of pdf folder. Its been solved now. The changed have been pushed into the restructured branch. So, I am going to close the issue.

Upload CSV File Section is not working in Restructured Branch.
[:error] [pid 3911] [client <IP_ADDRESS>:54182] PHP Warning:  move_uploaded_file(uploads/csv/data/59d7368870556sample.csv): failed to open stream: No such file or directory in /var/www/html/Certificate/csv.php on line 31, referer: http://localhost/Certificate/option.php?var=csv
It seems that there is no directory csv/data inside uploads directory. That is why I reopened the issue.


Added new WIBR logos

Your logo with the light theme was still not vectorized. I made a PR to your repo with a corrected version https://github.com/chlazaris/nf-co.re/pull/1

Thank you very much for your help with this, @mashehu
I have now pulled the request.
Best Regards,
Harris
On Dec 18, 2020, 4:15 AM -0500, mashehu<EMAIL_ADDRESS>wrote:

Your logo with the light theme was still not vectorized. I made a PR to your repo with a corrected version chlazaris#1
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

x-ref: https://github.com/nf-core/nf-co.re/pull/584#issuecomment-745806232

Is this now good to go @ewels - I'm not getting whether its already correct format now...

Is this now good to go @ewels - I'm not getting whether its already correct format now...

Tested locally and works there. I'll merge it now.

Tested locally and works there. I'll merge it now.


Laravel 10 Support

@saleem-hadad can you please check this and approve to support Laravel 10 upgrade

thanks, sure I'll test soon

@saleem-hadad
Hello there,
can you please give us an ETA?

@saleem-hadad I tried running tests locally and below is the result

the update is available in v2.6.0. Thanks guys


Place usr/lib/swift{,_static}/linux in SDK not Toolchain

With a SwiftPM that doesn't add -sdk to swiftc flags, builds will fail
at link time with the error:
$ /tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/swift build
--destination /tmp/Destinations/arm64-5.2.3-RELEASE.json
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot open Scrt1.o: No such file or directory
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot open crti.o: No such file or directory
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot open crtbeginS.o: No such file or directory
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot open crtendS.o: No such file or directory
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot open crtn.o: No such file or directory
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot find -lgcc
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot find -lgcc_s
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot find -lc
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot find -lgcc
/private/tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/ld.gold: error: cannot find -lgcc_s
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
:0: error: link command failed with exit code 1 (use -v to see invocation)
[3/4] Linking helloworld
But when -sdk is added to the swiftc flags, the build will instead fail
with:
$ /tmp/Toolchains/arm64-5.2.3-RELEASE.xctoolchain/usr/bin/swift build
--destination /tmp/Destinations/arm64-5.2.3-RELEASE.json
clang-7: error: no such file or directory: '/private/tmp/SDKs/arm64-5.2.3-RELEASE.sdk/usr/lib/swift/linux/aarch64/swiftrt.o'
Adding -sdk to the swiftc flags, and moving the contents of
usr/lib/swift/linux and usr/lib/swift_static/linux from Toolchains to
SDKs fixes the issue.

Ok, this one I want to think about and test a bit. I'm trying to remember why I did it this way, though it might have just been a bug on my part.  Will try to get to this weekend.

Yeah for sure, it's possible that this is an upstream change between 5.1 and 5.2 that isn't necessarily backwards compatible either.
I couldn't find any real documentation on what was supposed to go in Toolchains vs SDKs, but it looked like in and made sense that 5.2 only runs things from the former and only links things from the latter.

Agreed, looks completely sensible.


GitHub Actions: Test on Python 3.11 production release

https://docs.python.org/3.11/whatsnew/3.11.html

Python 3.11 is between 10-60% faster than Python 3.10. On average, we measured a 1.25x speedup on the standard benchmark suite.

Downgrade from ubuntu-22.04 to ubuntu-20.04 for Python v3.5 and v3.6

@fredrik-johansson Your review, please.


Refactor to remove the "missing" methods

Methods for missing arguments are confusing and annoying to program with. For Bioc 3.18, I can deprecate the "missing" methods. I'll remove them in Bioc 3.19.

Already done.


Miss '...' next to localized actions 'Break Lease' & 'Undelete by Date' for one blob

Storage Explorer Version: 1.10.1
Build: master_20190925.6
Platform/OS: Windows 10/ Linux Ubuntu 18.04/macOS High Sierra
Architecture: ia32/x64
Language: Chinese (zh-CN)(zh-TW) / Russian (ru) / German (de)
Regression From: Not a regression
Steps to reproduce:

Run the command 'StorageExplorer.exe --lang=zh-CN' to launch storage explorer.
Expand one storage account -> Blob Containers.
Select one blob container which contains one blob at least .
Right click one blob and check its context menu.

Expect Experience:
Display '...' next to the localized actions 'Break Lease' &‘Change Access Tier’ &'Undelete by Date'
Actual Experience:
Miss '...' next to localized actions 'Break Lease' &‘Change Access Tier’& 'Undelete by Date' for one blob.

More Info:
This issue also reproduces on the localized 'Edit' action for table's entity.

Punctuation mismatch
Resource ID: 0;"String Table"\0;"Strings"\0;"ContextMenu.BreakLeaseCommandName"
Relative File Path: drop\loc\en\src\components\se-blob-extension\resources\BlobEditor.json.lcg
Project: StorageExplorer
Subtenant: StorageExplorer
ENU: Break Lease...
CHS: 中断租约
Resource ID: 0;"String Table"\0;"Strings"\0;"Toolbar.UndeleteByDateCommandName"
Relative File Path: drop\loc\en\src\components\se-blob-extension\resources\BlobEditor.json.lcg
Project: StorageExplorer
Subtenant: StorageExplorer
ENU: Undelete by Date...
CHS: 按日期取消删除
Resource ID: 0;"String Table"\0;"Strings"\0;"ContextMenu.EditEntityCommandName"
Relative File Path: drop\loc\en\src\components\se-table-extension\resources\TableEditor.json.lcg
Project: StorageExplorer
Subtenant: StorageExplorer
ENU: Edit...
CHS: 编辑

LM review result:
Approved Change:
ENU: Break Lease...
CHS: 中断租约...
ENU: Undelete by Date...
CHS: 按日期取消删除...
ENU: Edit...
CHS: 编辑...

Implemented as LM review suggestion.

@v-xianya Still repro on latest build ?

Hi @lukaschal Verified this issue on build 20191018.3.

This issue still reproduces in Chinese(zh-TW)/ Russian (ru) / German(de).
This issue doesn't reproduce in Chinese (zh-CN).

Fixed on all languages.

Need to update packages and verify


feat(upgrade) replace vav3 with vav4 Force semantic release to release a new version

Signed-off-by: Mike Young<EMAIL_ADDRESS>BREAKING CHANGE: VA API V3 has been removed and replaced with VA V4
PR summary

Release a new version for VA V4
PR Checklist
Please make sure that your PR fulfills the following requirements:

[ ] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change?

[x] Yes
[ ] No

Other information

Breaking change merged but not released due to not having the "BREAKING CHANGE" commit message

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


[TW#14557] GATT_C and GATT_S callback issue

Hi All,
I am having a bit of trouble with the gatt client and server callbacks.
I register a gatt callback for each of the client and peripheral applications as follows (based off the examples in the idf)
esp_ble_gattc_register_callback(esp_gattc_cb);
esp_ble_gatts_register_callback(gatts_event_handler);

My problem occurs when both of the client and server applications are running and both callbacks are registered.
When I connect to a remote peripheral using the gatt_c function esp_ble_gattc_open(gattc_if, mac_address, true); where gattc_if = 4 and the mac_address of the peripheral i want to connect to.
The callback for the central esp_gattc_cb is called with the ESP_GATTC_OPEN_EVT event as expected with the expected gattc_if number, in my case gattc_if = 4.
However i find that gatts_event_handler is also called with the ESP_GATTS_CONNECT_EVT event wich is not expected. It also gets called with gatts_if = 3 which is most definitely un-expected.
Please let me know if any more information is needed.
I have attached a log of the peripheral connecting, then disconnecting 10s later (the disconnection is triggered by the peripheral and is expected)
Is this expected behaviour?
Is this a bug?
Does anyone know a work around or fix for this?
@heyinling @Weijian-Espressif
I (72244) ble_central_start_scanning: scan timeout set to 500s
I (74425) GATT_CLIENT: Connecting to: d0:5f:b8:28:01:a9
E (74457) gatts_event_handler: Peripheral event: 14
I (74457) GATT_Peripheral: d0:5f:b8:28:01:a9 connected, channel: 3
E (74458) esp_gattc_cb: Client event: 40
E (74463) esp_gattc_cb: Client event: 2
I (74467) GATT_CLIENT: d0:5f:b8:28:01:a9 Connected. num Connected: 1, profile #: 0, channel: 4
E (74476) esp_gattc_cb: Client event: 40
E (74481) esp_gattc_cb: Client event: 40
I (74487) gap_event_handler_peripheral: max_int: 64, min_int: 6, conn_int: 0
I (74493) gap_event_handler_central: max_int: 64, min_int: 6, conn_int: 0
E (74501) gatts_event_handler: Peripheral event: 23
E (78505) esp_gattc_cb: Client event: 18
E (78505) esp_gattc_cb: Client event: 38
E (78505) esp_gattc_cb: Client event: 38
I (78775) gap_event_handler_peripheral: max_int: 64, min_int: 6, conn_int: 64
I (78775) gap_event_handler_central: max_int: 64, min_int: 6, conn_int: 64
E (84775) gatts_event_handler: Peripheral event: 15
I (84776) GATT_Peripheral: Client disconnected, Re-starting advertising
E (84777) esp_gattc_cb: Client event: 41
E (84782) esp_gattc_cb: Client event: 5
I (84786) GATT_CLIENT: Device Disconnected. num Connected: 0, profile #: 0
E (84794) esp_gattc_cb: Client event: 41
E (84798) esp_gattc_cb: Client event: 41

@lucazader the current design is to dispatch connect/disconnect events to all active applications. each application keeps a "virtual" connection. the connection will only be closed once all applications call gattc_close or gatts_close close their virtual connection.  And API esp_ble_gap_disconnect will do disconnect for all applications.
The design is useful in some scenarios. For example, we have 2 GATTS applications for different services. Once the connection is established, both application can provide service on this connection.

Hi @heyinling
Thanks for the response.
Ok so this is expected behaviour.
What might be the best way to make sure that the open event is handled by only the relevant application.
So in my application, how can I filter the connection event so only the client application will respond to the connection event?
Thanks for your help so far!

@lucazader we could first cache the remote address in application context when calling open. then compare the remote address from connect event, find out which application should handle the connection. If the application don't want to handle this connection, it could close the connection when handling connect event.
I think your application is a common use scenario. maybe you could implement a adaptation layer:

register callback of adaptation layer to stack, and application only receive events dispatched by adaptation callbacks
adaptation callback only dispatch open events to application who open this connection, do close connection for other applications
if multiple applications want to use the same connection, they need to call open by themselves (stack support calling open multiple times on an existed connection)

Hi @heyinling
I think I am getting more of what you were saying.
The connection event will be sent to all applications, however the open/close event will only be sent to whichever application opened the connection
However I now have a different issue. When My device is advertising as a peripheral and a central connected (such as a phone) I don't get the ESP_GATTS_OPEN_EVT. Yet as far as I can tell the esp32 peripheral seems to be working correctly, sending notifications, receiving data etc as it should be.
This means that for the client i can handle opened connections using the ESP_GATTC_OPEN_EVT. however for the peripheral i have to handle a connection using ESP_GATTS_CONNECT_EVT however this also is called whenever any device is connected.
Is this expected?

adaptation callback only dispatch open events to application who open this connection, do close connection for other applications

my mistake here.
GATTC/GATTS open event is response to api gattc/gatts_open. connect event indicates there's a new connection that app could use. In you case, you did not call GATTS open, then it will only report connect event to GATTS app.
Does you application only use GATTS as peripheral role and GATTC as central role? If yes need to first check if the connection is initiated by ESP32,  and then dispatch connect events.

Hi @heyinling
Thanks for your response.
Yes I use gatts in peripheral and gattc in central.
Ok I will look into adding something like this to determine if it is a client connecting to me, or me connecting to a client.
Thanks for your assistance!

HI @heyinling
I am still having a bit of trouble trying to isolate some of these events from each other.
Currently when a phone (as a gatt_c central role) connects to my esp32, everything works correctly.
I get the connection (and disconnection) callbacks to both of the gatt_c and gatt_s handlers. However because the gatt_c has all of it's connection handling now in the open and close callbacks.
However, when my gatt_c scans for and connects to a remote peripheral, this is handled on the gatt_c side fine, due to handling using the open/close callbacks. But i also get the connected callback in the gatt_s. But I cant easily determine if this callback is due to the remote peripheral connecting, or if it is a phone connecting. The only way that i can think of accomplishing this is to have a storage of the mac addresses in the client side, and then checking against those in the gatt_s connected/disconnected callback. if they don't match then this would be a phone (or similar) connecting to the gatt_s. However this is not ideal, as this means the gatt_s has to have knowledge of what is happening on the gatt_c side of the application.
Can you think of a better way to filter out the connections? As this seems like a very hacky and overall not good way to work around this.

@heyinling
Ideally there would be an option to enable or disable sending connection/disconnection events to all registered handlers, or to only the appropriate handlers.
As in if there is a connection event on the server side of the stack, it would only call back to the callbacks registered by esp_ble_gatts_register_callback. And then if an event occurs on the client side of the stack, it would only callback to callbacks registered using esp_ble_gattc_register_callback.
This seems like a reasonable feature to have, and would still allow multiple gatt_s to handle and register on the same connection.
Only when a user would want to have both a gatt_s and a gatt_c running concurrently on the same connection would you need to have it callback to all of the registered callbacks.
I would suggest that this would be a very niche operation. Most BLE use cases are for one role per connection.

@heyinling @Weijian-Espressif
Any comments on the above?

@lucazader I think at least we can provide an example of adaptation layer for your scenario. Might need some time to discuss and implement this.

Hi @heyinling
Have you had the time to discuss this adaptation layer?
Thanks!

@lucazader I think the following suggestions could work in your scenario:

ignore connect/disconnect events on GATTC side
use open event to check if gatt_open succeed. open event will only be sent to the application called open
use esp_ble_gap_disconnect instead of gatt_close to disconnect. it will close physical connection

Hi @heyinling
Yes this works well for the GATTC side of my application.
However I am also running the GATTS at the same time.
The issue I am running into is when the GATTC connects to a client, the GATTC side of the application handles this nicely.
However I also get a ESP_GATTS_CONNECT_EVT on the GATTS side of the application. And i can't filter this out using the ESP_GATTS_OPEN_EVT because i cant handle incoming connections on the GATTS side using the OPEN_EVT as this does not arrive as the link was not established by the esp32.
This results in the following behaviour:
Phone(gatt_c, central) connects to ESP32 (gatt_s, peripheral + gatt_c, central):
esp32 gatt_s gets CONNECT_EVT callback. Saves device info
esp32 gatt_c gets CONNECT_EVT callback. not handled
No OPEN_EVT callback is recieved by either gatt_s, gatt_c.
this use case causes no issues
ESP32 (gatt_s, peripheral + gatt_c, central) connects to ESP32((gatt_s, peripheral)
esp32 gatt_s gets CONNECT_EVT callback. Saves device info //Need to filter this out..
esp32 gatt_c gets CONNECT_EVT callback. not handled
esp32 gatt_s gets OPEN_EVT callback. not handled
esp32 gatt_c gets OPEN_EVT callback. Only correct profile receives callback. Saves device info.
This use case cases an issue Where the esp32 gatt_s thinks it is connected due to the CONNECT_EVT callback that is not filtered out.
Would your suggestion solve the above?
If not, what is the best way to get around the use case above with the filtering needed

For GATTS side, it don't need to handle connection event either.

handling read/write, it just respond to the client when it recv the events.
handling notify/indicate, as per spec, the client need to first write to descriptor client characteristic configuration(uuid 0x2902), which allows server to send notify/indicate to it.

I think adding some logic in read/write event handling could do the job.
And one more thing is handling disconnect events. we want to do cleanup all tasks once the connection is closed (by remote side). we might need to create a task pool and close the tasks when we recv corresponding disconnect events.

Thanks for all of your help @heyinling
Using some of your suggestions and a bit of additional logic I have worked around this issue.

Hi @heyinling
Thanks for the response.
Ok so this is expected behaviour.
What might be the best way to make sure that the open event is handled by only the relevant application.
So in my application, how can I filter the connection event so only the client application will respond to the connection event?
Thanks for your help so far!

i have same question，can you help me ,please,thanks!


[New Game] Pokemon Card Game

PR Description 📜
Added New Game Pokemon Card Game
Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
Fixes #2387

Mark the task you have completed ✅

[ ✅] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[✅ ] I have performed a self-review of my own code or work.
[✅ ] I have commented my code, particularly in hard-to-understand areas.
[ ✅] My changes generates no new warnings.
[✅ ] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[✅ ] I have added screenshot for website preview in assets/images
[✅ ] I have added entries for my game in main README.md
[✅ ] I have added README.md in my folder
[ ] I have added working video of the game in README.md (optional)
[✅ ] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

@kunjgit  I have completed requested changes. Kindly, review the PR

Hello @SnigdhaP2022, You need to make the following changes:

Please add a README.md file inside the newly created folder.
Please modify the main README.md file.
Please add an image to the assets/images directory.

Hoping that you will make those changes soon 🚀

I have completed the changes. Kindly check files changes section.

@kunjgit I have completed the requested changes.Kindly,review the PR.

@gurjeetsinghvirdee  Conflicts were resolved. Kindly, review and merge this PR

Thank you  @SnigdhaP2022 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


[WIP] Enable open partition on frame boundary

Issue #2166

AV1 spec allows to use a partition that straddle on frame boundary if
certain condition met, i.e, 'Not Split' is allowed if more than half of
the partition size is available (based on coded frame size, i.e. multipe
of 8 pixels) in either horizontal or vertical.

For top-down partition search (i.e current speed levels 2~10),
use bottomup on frame boundary

Functon for computing visible area of a partition or a tx block based
on actual frame size (not a coded size) is added and the function should
be only used in order to compute distortion. I.e never in deciding
encoding symbol. One good critical example would be the coefficient
encoder to choose tx context from top and bottom context arrays.

CFL specially requires to read outside the coded frame, when it compute average
and obtain ac components for luma block, i.e. luma_ac().

Can you please run at least one comparison on AWCY and post results?

@barrbrain, when you have time, please review the changes in luma_ac().
https://github.com/xiph/rav1e/pull/2396/files#diff-26006a0497afb96d876927e114a7b29eR1929,
which handles the encoding cases that does not occur with current mater. I.e. multiple tx blocks in luma and some of them are outside the encoded frame (i.e. clipped by 8 pixels).

Can you please run at least one comparison on AWCY and post results?

Sure,

Can you please run at least one comparison on AWCY and post results?

Sure, in fact this PR tries to solve #2166, there progress and several awcy are posted.
awcy, master vs this work, objective-1-fast, speed 0

Thanks- I hadn't kept up with the comments on #2166.

Coverage increased (+0.8%) to 82.733% when pulling 9caac807e0b04b379b9bbc872a308e1ce5499b40 on ycho:make_partition_strong into b14cbc73cd1d9c3f3fd99810a88851f3cac56f1f on xiph:master.

The aarch64 tests are failing with an out-of-bounds write in crate::predict::rust::pred_directional():
https://github.com/xiph/rav1e/blob/9e9b7d55b7a3637052070e0f35ff20f07cc9fb64/src/predict.rs#L1297
thread '<unnamed>' panicked at 'index out of bounds: the len is 40 but the index is 40', src/predict.rs:1297:11
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_1_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_0_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 56 but the index is 56', src/predict.rs:1297:11
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... FAILED

The aarch64 tests are failing with an out-of-bounds write in crate::predict::rust::pred_directional():
https://github.com/xiph/rav1e/blob/9e9b7d55b7a3637052070e0f35ff20f07cc9fb64/src/predict.rs#L1297
thread '<unnamed>' panicked at 'index out of bounds: the len is 40 but the index is 40', src/predict.rs:1297:11
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_1_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_0_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 56 but the index is 56', src/predict.rs:1297:11
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... FAILED

Yes, thanks for checking this.
I am middle of where output parameter is sent to pred_directional( ) with its size bounded in PlaneRegion structure, which I expect will crash and panic rust. If planeRegion has only its origin and no size, it will be fine to my design.

The aarch64 tests are failing with an out-of-bounds write in crate::predict::rust::pred_directional():
https://github.com/xiph/rav1e/blob/9e9b7d55b7a3637052070e0f35ff20f07cc9fb64/src/predict.rs#L1297
thread '<unnamed>' panicked at 'index out of bounds: the len is 40 but the index is 40', src/predict.rs:1297:11
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_1_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_0_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 56 but the index is 56', src/predict.rs:1297:11
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... FAILED

Yes, thanks for checking this.
I am middle of where output parameter is sent to pred_directional( ) with its size bounded in PlaneRegion structure, which I expect will crash and panic rust. If planeRegion has only its origin and no size, it will be fine to my design.

Also, strnage that it is not reproducible on my local computer, mac os.

The aarch64 tests are failing with an out-of-bounds write in crate::predict::rust::pred_directional():
https://github.com/xiph/rav1e/blob/9e9b7d55b7a3637052070e0f35ff20f07cc9fb64/src/predict.rs#L1297
thread '<unnamed>' panicked at 'index out of bounds: the len is 40 but the index is 40', src/predict.rs:1297:11
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_1_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_0_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 56 but the index is 56', src/predict.rs:1297:11
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... FAILED

Yes, thanks for checking this.
I am middle of where output parameter is sent to pred_directional( ) with its size bounded in PlaneRegion structure, which I expect will crash and panic rust. If planeRegion has only its origin and no size, it will be fine to my design.

I was able to run the failed test on my raspberry pi3, and I could not reproduce the errors from Travis.
The 22 tests has all succeeded as below.
pi@raspberrypi:~/workspace/rav1e $ cargo test --release --features=decode_test_dav1d --verbose --color=always -- --color=always --ignored
Fresh autocfg v1.0.0
Fresh cfg-if v0.1.10
Fresh lazy_static v1.4.0
Fresh unicode-xid v0.2.1
Fresh regex-syntax v0.6.18
Fresh semver-parser v0.7.0
Fresh scopeguard v1.1.0
Fresh either v1.5.3
Fresh version_check v0.9.2
Fresh glob v0.3.0
Fresh unicode-width v0.1.7
Fresh ansi_term v0.11.0
Fresh vec_map v0.8.2
Fresh quick-error v1.2.3
Fresh strsim v0.8.0
Fresh termcolor v1.1.0
Fresh peeking_take_while v0.1.2
Fresh error-chain v0.10.0
Fresh rustc-hash v1.1.0
Fresh lazycell v1.2.1
Fresh pkg-config v0.3.17
Fresh toml v0.2.1
Fresh shlex v0.1.1
Fresh proc-macro-hack v0.5.16
Fresh noop_proc_macro v0.3.0
Fresh arc-swap v0.4.7
Fresh itoa v0.4.6
Fresh lab v0.7.2
Fresh bitstream-io v0.8.5
Fresh difference v2.0.0
Fresh y4m v0.6.0
Fresh predicates-core v1.0.0
Fresh scan_fmt v0.2.5
Fresh arrayvec v0.5.1
Fresh same-file v1.0.6
Fresh treeline v0.1.0
Fresh ppv-lite86 v0.2.8
Fresh oorandom v11.1.2
Fresh thread_local v1.0.1
Fresh semver v0.9.0
Fresh itertools v0.9.0
Fresh textwrap v0.11.0
Fresh humantime v1.3.0
Fresh metadeps v1.1.2
Fresh paste-impl v0.1.18
Fresh ivf v0.1.0 (/home/pi/workspace/rav1e/ivf)
Fresh pretty_assertions v0.6.1
Fresh predicates v1.0.4
Fresh walkdir v2.3.1
Fresh predicates-tree v1.0.0
Fresh libc v0.2.71
Fresh memchr v2.3.3
Fresh proc-macro2 v1.0.18
Fresh bitflags v1.2.1
Fresh maybe-uninit v2.0.0
Fresh rustc_version v0.2.3
Fresh log v0.4.8
Fresh serde v1.0.114
Fresh ryu v1.0.5
Fresh byteorder v1.3.4
Fresh paste v0.1.18
Fresh doc-comment v0.3.3
Fresh num-traits v0.2.12
Fresh jobserver v0.1.21
Fresh crossbeam-utils v0.7.2
Fresh num_cpus v1.13.0
Fresh atty v0.2.14
Fresh time v0.1.43
Fresh which v3.1.1
Fresh termios v0.3.2
Fresh signal-hook-registry v1.2.0
Fresh terminal_size v0.1.12
Fresh getrandom v0.1.14
Fresh wait-timeout v0.2.0
Fresh memoffset v0.5.4
Fresh quote v1.0.7
Fresh aho-corasick v0.7.13
Fresh csv-core v0.1.10
Fresh fern v0.6.0
Fresh nom v5.1.2
Fresh serde_json v1.0.55
Fresh regex-automata v0.1.9
Fresh cc v1.0.54
Fresh num-integer v0.1.43
Fresh crossbeam-queue v0.2.3
Fresh plotters v0.2.15
Fresh clap v2.33.1
Fresh signal-hook v0.1.16
Fresh rand_core v0.5.1
Fresh assert_cmd v1.0.1
Fresh regex v1.3.9
Fresh syn v1.0.33
Fresh crossbeam-epoch v0.8.2
Fresh simd_helpers v0.1.0
Fresh cexpr v0.4.0
Fresh tinytemplate v1.1.0
Fresh chrono v0.4.11
Fresh bstr v0.2.13
Fresh rand_chacha v0.2.2
Fresh env_logger v0.7.1
Fresh console v0.11.3
Fresh crossbeam-deque v0.7.3
Fresh thiserror-impl v1.0.20
Fresh num-derive v0.3.0
Fresh arg_enum_proc_macro v0.3.0
Fresh serde_derive v1.0.114
Fresh interpolate_name v0.2.3
Fresh cast v0.2.3
Fresh csv v1.1.3
Fresh rand v0.7.3
Fresh rayon-core v1.7.1
Fresh thiserror v1.0.20
Fresh v_frame v0.1.0 (/home/pi/workspace/rav1e/v_frame)
Fresh libloading v0.5.2
Fresh criterion-plot v0.4.2
Fresh rayon v1.3.1
Fresh av-metrics v0.5.1
Fresh clang-sys v0.29.3
Fresh vergen v3.0.4 (/home/pi/workspace/rav1e/crates/vergen)
Fresh bindgen v0.54.0
Fresh nasm-rs v0.1.7
Fresh criterion v0.3.2
Fresh dav1d-sys v0.3.2
Fresh rav1e v0.3.0 (/home/pi/workspace/rav1e)
Finished release [optimized + debuginfo] target(s) in 2.08s
Running /home/pi/workspace/rav1e/target/release/deps/rav1e-def2548c0a7e3ff0 --color=always --ignored
running 22 tests
test test_encode_decode::bitrate_dav1d ... ok
test test_encode_decode::chroma_sampling_422_dav1d ... ok
test test_encode_decode::chroma_sampling_400_dav1d ... ok
test test_encode_decode::chroma_sampling_420_dav1d ... test test_encode_decode::chroma_sampling_420_dav1d has been running for over 60 seconds
test test_encode_decode::chroma_sampling_444_dav1d ... test test_encode_decode::chroma_sampling_444_dav1d has been running for over 60 seconds
test test_encode_decode::high_bit_depth_10_dav1d ... test test_encode_decode::high_bit_depth_10_dav1d has been running for over 60 seconds
test test_encode_decode::chroma_sampling_420_dav1d ... ok
test test_encode_decode::chroma_sampling_444_dav1d ... ok
test test_encode_decode::high_bit_depth_10_dav1d ... ok
test test_encode_decode::high_bit_depth_12_dav1d ... test test_encode_decode::high_bit_depth_12_dav1d has been running for over 60 seconds
test test_encode_decode::high_bit_depth_12_dav1d ... ok
test test_encode_decode::low_bit_depth_dav1d ... test test_encode_decode::low_bit_depth_dav1d has been running for over 60 seconds
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... test test_encode_decode::odd_size_frame_with_full_rdo_dav1d has been running for over 60 seconds
test test_encode_decode::rdo_loop_decision_cdef_sanity_dav1d ... test test_encode_decode::rdo_loop_decision_cdef_sanity_dav1d has been running for over 60 seconds
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d has been running for over 60 seconds
test test_encode_decode::low_bit_depth_dav1d ... ok
test test_encode_decode::rdo_loop_decision_cdef_sanity_dav1d ... ok
test test_encode_decode::speed_10_dav1d ... ok
test test_encode_decode::speed_0_dav1d ... test test_encode_decode::speed_0_dav1d has been running for over 60 seconds
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... ok
test test_encode_decode::speed_2_dav1d ... ok
test test_encode_decode::speed_1_dav1d ... test test_encode_decode::speed_1_dav1d has been running for over 60 seconds
test test_encode_decode::speed_3_dav1d ... ok
test test_encode_decode::speed_1_dav1d ... ok
test test_encode_decode::speed_4_dav1d ... ok
test test_encode_decode::speed_6_dav1d ... ok
test test_encode_decode::speed_5_dav1d ... ok
test test_encode_decode::speed_7_dav1d ... ok
test test_encode_decode::speed_8_dav1d ... ok
test test_encode_decode::speed_9_dav1d ... ok
test test_encode_decode::speed_0_dav1d ... ok
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... ok
test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 134 filtered out
 Running `/home/pi/workspace/rav1e/target/release/deps/rav1e-758a4325eda9f75f --color=always --ignored`

running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
 Running `/home/pi/workspace/rav1e/target/release/deps/binary-2140c47f49bb8a10 --color=always --ignored`

running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 4 filtered out
Doc-tests rav1e
Running rustdoc --edition=2018 --crate-type lib --test /home/pi/workspace/rav1e/src/lib.rs --crate-name rav1e -L dependency=/home/pi/workspace/rav1e/target/release/deps -L native=/home/pi/workspace/rav1e/target/release/build/libloading-dc6eaaee7161ae07/out -L native=/usr/local/lib/arm-linux-gnueabihf -L dependency=/home/pi/workspace/rav1e/target/release/deps --test-args --color=always --test-args --ignored --cfg 'feature="clap"' --cfg 'feature="default"' --cfg 'feature="signal_support"' --cfg 'feature="av-metrics"' --cfg 'feature="regex"' --cfg 'feature="fern"' --cfg 'feature="scan_fmt"' --cfg 'feature="asm"' --cfg 'feature="cc"' --cfg 'feature="decode_test_dav1d"' --cfg 'feature="console"' --cfg 'feature="nasm-rs"' --cfg 'feature="signal-hook"' --cfg 'feature="binaries"' --cfg 'feature="ivf"' --cfg 'feature="y4m"' --cfg 'feature="dav1d-sys"' --extern arg_enum_proc_macro=/home/pi/workspace/rav1e/target/release/deps/libarg_enum_proc_macro-541232cffddfba23.so --extern arrayvec=/home/pi/workspace/rav1e/target/release/deps/libarrayvec-bec98196caa0b82e.rlib --extern assert_cmd=/home/pi/workspace/rav1e/target/release/deps/libassert_cmd-7b588dba0b2d25bd.rlib --extern av_metrics=/home/pi/workspace/rav1e/target/release/deps/libav_metrics-84265a1bdb2700ac.rlib --extern bitstream_io=/home/pi/workspace/rav1e/target/release/deps/libbitstream_io-671c6e4257a3a640.rlib --extern cfg_if=/home/pi/workspace/rav1e/target/release/deps/libcfg_if-4937682f2fc3d239.rlib --extern clap=/home/pi/workspace/rav1e/target/release/deps/libclap-a3f957d52076b194.rlib --extern console=/home/pi/workspace/rav1e/target/release/deps/libconsole-a3792d939f2737b5.rlib --extern criterion=/home/pi/workspace/rav1e/target/release/deps/libcriterion-9a28fe55b2c35695.rlib --extern dav1d_sys=/home/pi/workspace/rav1e/target/release/deps/libdav1d_sys-6c5ff34184c0ae6e.rlib --extern fern=/home/pi/workspace/rav1e/target/release/deps/libfern-c5e363e0d05befe5.rlib --extern interpolate_name=/home/pi/workspace/rav1e/target/release/deps/libinterpolate_name-d25a2055c1207420.so --extern itertools=/home/pi/workspace/rav1e/target/release/deps/libitertools-f6b5ef7158c021ac.rlib --extern ivf=/home/pi/workspace/rav1e/target/release/deps/libivf-68b37a981d09a085.rlib --extern libc=/home/pi/workspace/rav1e/target/release/deps/liblibc-3acae17f1de702b6.rlib --extern log=/home/pi/workspace/rav1e/target/release/deps/liblog-2dcd6041885011b1.rlib --extern noop_proc_macro=/home/pi/workspace/rav1e/target/release/deps/libnoop_proc_macro-a3e490dbd799dacb.so --extern num_derive=/home/pi/workspace/rav1e/target/release/deps/libnum_derive-f3e5755c57193155.so --extern num_traits=/home/pi/workspace/rav1e/target/release/deps/libnum_traits-e2379d93cc767813.rlib --extern paste=/home/pi/workspace/rav1e/target/release/deps/libpaste-96699211c365e50f.rlib --extern pretty_assertions=/home/pi/workspace/rav1e/target/release/deps/libpretty_assertions-d8e550af1e835b04.rlib --extern rand=/home/pi/workspace/rav1e/target/release/deps/librand-6b0e3d8f992b2309.rlib --extern rand_chacha=/home/pi/workspace/rav1e/target/release/deps/librand_chacha-e4189061907ca944.rlib --extern rav1e=/home/pi/workspace/rav1e/target/release/deps/librav1e-cd21268f22c8bf59.rlib --extern rayon=/home/pi/workspace/rav1e/target/release/deps/librayon-db23dff61fce2d17.rlib --extern scan_fmt=/home/pi/workspace/rav1e/target/release/deps/libscan_fmt-f9f7030042c4b09d.rlib --extern semver=/home/pi/workspace/rav1e/target/release/deps/libsemver-0697714599cb2e51.rlib --extern signal_hook=/home/pi/workspace/rav1e/target/release/deps/libsignal_hook-0f18c39d819f203c.rlib --extern simd_helpers=/home/pi/workspace/rav1e/target/release/deps/libsimd_helpers-3e4356ac48ebb273.so --extern thiserror=/home/pi/workspace/rav1e/target/release/deps/libthiserror-602c18181966beff.rlib --extern v_frame=/home/pi/workspace/rav1e/target/release/deps/libv_frame-3d4331777b397286.rlib --extern y4m=/home/pi/workspace/rav1e/target/release/deps/liby4m-66f323206f6f7309.rlib
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out
pi@raspberrypi:~/workspace/rav1e $

The aarch64 tests are failing with an out-of-bounds write in crate::predict::rust::pred_directional():
https://github.com/xiph/rav1e/blob/9e9b7d55b7a3637052070e0f35ff20f07cc9fb64/src/predict.rs#L1297
thread '<unnamed>' panicked at 'index out of bounds: the len is 40 but the index is 40', src/predict.rs:1297:11
test test_encode_decode::rdo_loop_decision_lrf_sanity_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_1_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 8 but the index is 8', src/predict.rs:1297:11
test test_encode_decode::speed_0_dav1d ... FAILED

thread '<unnamed>' panicked at 'index out of bounds: the len is 56 but the index is 56', src/predict.rs:1297:11
test test_encode_decode::odd_size_frame_with_full_rdo_dav1d ... FAILED

fiy, i confirm that this class of errors will happen when rust functions that access memory trying to cross left or bottom coded (i.e. multiple of 8 pixels) frame boundaries. More specifically, when trying to access memory that are out of rectangular bounds defined in TileStatMut via TileRect, PlaneRegion and/or subregion().
And the reason why it happens for arm target only with Travis is that there is no arm NEON code for pred_directional( ), thus rust functions are called for it and error triggered.

on running native-run(ie. without having assembly functions), tests are failing,
Command used: env RUST_BACKTRACE=full RAV1E_CPU_TARGET=rust cargo test --release --features=decode_test_dav1d --color=always -- --color=always --ignored
Short Output: test result: FAILED. 9 passed; 13 failed; 0 ignored; 0 measured; 400 filtered out
Full log: https://gist.github.com/vibhoothiiaanand/1e6fbbd6bc8dea27e5cfa4b3bdc07274

Wow- thanks for trying this. Yeah, this is what you have asked during watercooler today. I admit that it fails now much more than last time I did. I think since I've fixed some panics I met then I did not test with 'RAV1E_CPU_TARGET=rust' again with much more work as added to enable open partition.
So, as I stated in the watercooler, I plan to revert all changes I replaced for row_iter_[mut] based prediction and other functions once I implement better way of keep using current PlaneRegion and its bounding box memory access enforcement design.

I've rebased this PR based on my other PR #2445, since this PR is dependent on it.

Cannot locally reproduce the failed test of no-asm test,
https://github.com/xiph/rav1e/pull/2396/checks?check_run_id=896459487#step:20:467
I used the command (on Mac OS),
export RAV1E_CPU_TARGET=rust; cargo test --release --features=decode_test_dav1d --verbose --color=always -- --ignored
and
export RAV1E_CPU_TARGET=rust; cargo test --release --features=decode_test_dav1d --verbose --color=always

I've rebased this PR based on my other PR #2445, since this PR is dependent on it.

Done.

Cannot locally reproduce the failed test of no-asm test,
https://github.com/xiph/rav1e/pull/2396/checks?check_run_id=896459487#step:20:467
I used the command (on Mac OS),
export RAV1E_CPU_TARGET=rust; cargo test --release --features=decode_test_dav1d --verbose --color=always -- --ignored
and
export RAV1E_CPU_TARGET=rust; cargo test --release --features=decode_test_dav1d --verbose --color=always

@vibhoothiiaanand , sorry to ask this, with the same test command you informed me last tine (and mac os version is shown above), could you check whether you can see/reproduce the same test failure (only one, 'no-asm' test) from CI please?

New awcy result after rebasing on ground work.
awcy -s 0, low latency

PSNR
PSNR Cb
PSNR Cr
PSNR HVS
SSIM
MS SSIM
CIEDE 2000

-2.0825
-2.6507
-2.6004
-2.0535
-2.1375
-2.1537
-2.5300

awcy -s 6, low latency
(Note: open-partition uses bottomup partition search if SB straddles on frame boundaries for -s 2~10 (i.e. topdown search is used as default), which itself on master gives 0.16% gain.

PSNR
PSNR Cb
PSNR Cr
PSNR HVS
SSIM
MS SSIM
CIEDE 2000

-1.5908
-2.5491
-2.4333
-1.5583
-1.6250
-1.6096
-1.9550

awcy -s2, low latency

PSNR
PSNR Cb
PSNR Cr
PSNR HVS
SSIM
MS SSIM
CIEDE 2000

-1.5974
-2.0216
-2.1389
-1.6513
-1.6941
-1.6904
-1.9199

@KyleSiefring , https://github.com/xiph/rav1e/pull/2396/commits/9e06b16e76cce5ed71c1f6b4e9e5ac98f4c1b9fb has fixed the issue with your EPZS repair + open-parition
The commit is now placed at 1st commit of this PR.

In order to use open-partition with top-down search, i.e speed 2~10, I need to also use bottomup for frame boundary, because otherwise just largest partition will be chosen with topdown there and gives a coding loss (~1.5%).
Using bottomup partition search together with inter-tx split seems causing desync under certain conditions.
Previously, I have tested inter-tx split for smaller min block size like 32x32, 16x16, and 8x8 at speed 9 or 10,
but I think I have not tested inter-tx split with bottomup, which is only used for speed 0 and 1.
Until this is fixed, I'd want to hold landing this PR.

After fixing the inter-tx split for bottomup partition search, awcy results for speed 9 and 10 are available.
awcy -s 10

PSNR
PSNR Cb
PSNR Cr
PSNR HVS
SSIM
MS SSIM
CIEDE 2000

-1.2429
-2.0600
-2.0934
-1.3338
-1.1566
-1.2524
-1.5233

awcy -s 9

PSNR
PSNR Cb
PSNR Cr
PSNR HVS
SSIM
MS SSIM
CIEDE 2000

-1.6695
-2.1247
-2.1208
-1.7131
-1.7301
-1.7104
-2.0794

newer result with open partition enabled on awcy, 2.0% gain at default speed 6

That's great !


carrier install installs wiremock (test) component or eirini

The testing directory should be skipped when installing Eirini with flat yaml files:
https://github.com/cloudfoundry-incubator/eirini-release/tree/master/deploy/testing
Wiremock is only used in tests (in Eirini project) to mock Cloud Controller requests. This has no place in production deployments. Consider opening an issue in the eirini-release repo although those flat yamls are meant to be used as a guide on how to deploy Eirini rather than ready-to-install solution.

Revalidate when the cli installs eirini.

Revalidate when the cli installs eirini.

The go based installer no longer installs wiremock: https://github.com/SUSE/carrier/blob/main/cli/deployments/eirini.go#L131

The go based installer no longer installs wiremock: https://github.com/SUSE/carrier/blob/main/cli/deployments/eirini.go#L131


Rippled in prod network validation doesnt work, history is not loaded

Set up node according to
https://ripple.com/build/rippled-setup/#installation-on-ubuntu-with-alien
in rippled.cfg set
[history]
full
...
online_delete=1000000
also set up validation https://ripple.com/build/rippled-setup/#validator-setup:
generated validator keys.
Then i check /opt/ripple/bin/rippled server_info
question 1.
i get "complete_ledgers" : "empty", in response. Node doesnt load blocks? Why?
question 2.
i got pubkey_validator different to /opt/ripple/bin/validator-keys create_token output. Why?

If you actually want full history, you need to remove the online_delete setting completely, otherwise you'll waste bandwidth and time without ever getting full history.
Question 1: Impossible to answer with the information given.
Question 2: See answer to question 1.

I believe this is the sharding feature?

@rhaps107: as @MarkusTeufelberger said, it's impossible to answer your questions with the information provided. I am going to close this issue, but if you are still having problems, please feel free to reopen and provide additional information.


Message Extensions - description is incorrect for AI and data is repeated.

Type of issue
Other (describe below)
Feedback

The Message Extensions description only covers the Bot Framework SDK and does not include details about the changes implemented in the Teams AI library.

Link : https://review.learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/teams-conversational-ai/how-conversation-ai-core-capabilities?branch=pr-en-us-11620&tabs=dotnet6%2Cdotnet5%2Cdotnet4%2Cjavascript3%2Cdotnet2%2Cdotnet1#message-extensions

The Message Extension Query appears to be an extension of the Message Extensions topic, as both refer to the same code. Please consider to merge them.

Link : https://review.learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/teams-conversational-ai/how-conversation-ai-core-capabilities?branch=pr-en-us-11620&tabs=dotnet6%2Cdotnet5%2Cdotnet4%2Cjavascript3%2Cdotnet2%2Cdotnet1#message-extension-query
Page URL
https://review.learn.microsoft.com/en-us/microsoftteams/platform/bots/how-to/teams-conversational-ai/how-conversation-ai-core-capabilities?branch=pr-en-us-11620&tabs=dotnet6%2Cdotnet5%2Cdotnet4%2Cjavascript3%2Cdotnet2%2Cdotnet1
Content source URL
https://github.com/MicrosoftDocs/msteams-docs/blob/main/msteams-platform/bots/how-to/teams-conversational-ai/how-conversation-ai-core-capabilities.md
Author
@surbhigupta
Document Id
226bf6e8-973b-b31f-1d29-510c32ff899a

Thank you for reporting this, we will check this and get back to you.


dev_scores.json is not found when num_shot is 0

Hi,
I tried to reproduce the result on the zero-shot scenario. However, as num_shot is set to be 0 in few-shot-pretrained-100k.sh. I cannot see dev_scores.json in exp_out, but I can see dev_scores.json when num_shot is 4. Did I misconfigure anything or misunderstand the usage?
  # For zero-shot set to '0', for all to 'all'
  for num_shot in 4 8 16 32 64 128 256 512
  do
    ...

Hello @EdgedSquirrels ,
thanks for using our code and for reaching out with this issue.
Did you get any error message our additional output when running it with 0? This would help me to understand the error better.
Thank you!

Hi @stefanhgm ,
Thanks for your time commitment to help out.
It complained Missing logger folder: exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/log and warned about loading cache. However, the messages will pop out when running num_shot=4 as well. It seems that no additional output is found when running num_shot=0.
Here is my output when running num_shot=0
Start experiment t03b_income_numshot0_seed42_ia3_pretrained100k
{
    "exp_dir": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k",
    "exp_name": "t03b_income_numshot0_seed42_ia3_pretrained100k",
    "allow_skip_exp": true,
    "seed": 42,
    "model": "EncDec",
    "max_seq_len": 1024,
    "origin_model": "bigscience/T0_3B",
    "load_weight": "pretrained_checkpoints/t03b_ia3_finish.pt",
    "dataset": "income",
    "few_shot": true,
    "num_shot": 0,
    "few_shot_random_seed": 42,
    "train_template_idx": -1,
    "eval_template_idx": -1,
    "batch_size": 4,
    "eval_batch_size": 16,
    "num_workers": 8,
    "change_hswag_templates": false,
    "raft_cross_validation": true,
    "raft_validation_start": 0,
    "raft_labels_in_input_string": "comma",
    "cleaned_answer_choices_b77": false,
    "compute_precision": "bf16",
    "compute_strategy": "none",
    "num_steps": 0,
    "eval_epoch_interval": 30,
    "eval_before_training": false,
    "save_model": true,
    "save_step_interval": 20000,
    "mc_loss": 1,
    "unlikely_loss": 1,
    "length_norm": 1,
    "grad_accum_factor": 1,
    "split_option_at_inference": false,
    "optimizer": "adafactor",
    "lr": 0.003,
    "trainable_param_names": ".*lora_b.*",
    "scheduler": "linear_decay_with_warmup",
    "warmup_ratio": 0.06,
    "weight_decay": 0,
    "scale_parameter": true,
    "grad_clip_norm": 1,
    "model_modifier": "lora",
    "prompt_tuning_num_prefix_emb": 100,
    "prompt_tuning_encoder": true,
    "prompt_tuning_decoder": true,
    "lora_rank": 0,
    "lora_scaling_rank": 1,
    "lora_init_scale": 0.0,
    "lora_modules": ".*SelfAttention|.*EncDecAttention|.*DenseReluDense",
    "lora_layers": "k|v|wi_1.*",
    "bitfit_modules": ".*",
    "bitfit_layers": "q|k|v|o|wi_[01]|w_o",
    "adapter_type": "normal",
    "adapter_non_linearity": "relu",
    "adapter_reduction_factor": 4,
    "normal_adapter_residual": true,
    "lowrank_adapter_w_init": "glorot-uniform",
    "lowrank_adapter_rank": 1,
    "compacter_hypercomplex_division": 8,
    "compacter_learn_phm": true,
    "compacter_hypercomplex_nonlinearity": "glorot-uniform",
    "compacter_shared_phm_rule": false,
    "compacter_factorized_phm": false,
    "compacter_shared_W_phm": false,
    "compacter_factorized_phm_rule": false,
    "compacter_phm_c_init": "normal",
    "compacter_phm_rank": 1,
    "compacter_phm_init_range": 0.01,
    "compacter_kronecker_prod": false,
    "compacter_add_compacter_in_self_attention": false,
    "compacter_add_compacter_in_cross_attention": false,
    "intrinsic_projection": "fastfood",
    "intrinsic_said": true,
    "intrinsic_dim": 2000,
    "intrinsic_device": "cpu",
    "fishmask_mode": null,
    "fishmask_path": null,
    "fishmask_keep_ratio": 0.05,
    "prefix_tuning_num_input_tokens": 10,
    "prefix_tuning_num_target_tokens": 10,
    "prefix_tuning_init_path": null,
    "prefix_tuning_init_text": null,
    "prefix_tuning_parameterization": "mlp-512",
    "train_pred_file": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/train_pred.txt",
    "dev_pred_file": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/dev_pred.txt",
    "dev_score_file": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/dev_scores.json",
    "test_pred_file": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/test_pred.txt",
    "test_score_file": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/test_scores.json",
    "finish_flag_file": "exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/exp_completed.txt"
}
Mark experiment t03b_income_numshot0_seed42_ia3_pretrained100k as claimed
WARNING:root:Tried instantiating `DatasetTemplates` for income 50000_dollars, but no prompts found. Please ignore this warning if you are creating new prompts for this dataset.
Using bfloat16 Automatic Mixed Precision (AMP)
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
WARNING:datasets.arrow_dataset:Loading cached split indices for dataset at /data1/home/TabLLM/datasets_serialized/income/cache-7bc2ada03d2d63b7.arrow and /data1/home/TabLLM/datasets_serialized/income/cache-cad0987f77091155.arrow
WARNING:datasets.arrow_dataset:Loading cached split indices for dataset at /data1/home/TabLLM/datasets_serialized/income/cache-187e44e1ae55a233.arrow and /data1/home/TabLLM/datasets_serialized/income/cache-4ab888c823307cb7.arrow
WARNING:datasets.arrow_dataset:Loading cached processed dataset at /data1/home/TabLLM/datasets_serialized/income/cache-3b2e6d08878f1239.arrow
Train size 0
Eval size 103
WARNING:datasets.arrow_dataset:Loading cached split indices for dataset at /data1/home/TabLLM/datasets_serialized/income/cache-7bc2ada03d2d63b7.arrow and /data1/home/TabLLM/datasets_serialized/income/cache-cad0987f77091155.arrow
WARNING:datasets.arrow_dataset:Loading cached split indices for dataset at /data1/home/TabLLM/datasets_serialized/income/cache-187e44e1ae55a233.arrow and /data1/home/TabLLM/datasets_serialized/income/cache-4ab888c823307cb7.arrow
Test size 0
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [4]
Missing logger folder: exp_out/t03b_income_numshot0_seed42_ia3_pretrained100k/log

  | Name  | Type                       | Params
-----------------------------------------------------
0 | model | T5ForConditionalGeneration | 2.9 B
-----------------------------------------------------
540 K     Trainable params
2.9 B     Non-trainable params
2.9 B     Total params
11,402.764Total estimated model params size (MB)

Hi @stefanhgm ,
The program just stops after this output when running 0 shots. The output looks the same for 4 shots, but it will successfully keep inferencing after those output.
Here is the additional output in 4 shots:
/data1/home/miniconda3/envs/tfew/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py:429: UserWarning: The number of training samples (1) is smaller than the logging interval Trainer(log_every_n_steps=4). Set a lower value for log_every_n_steps if you want to see logs for the training epoch.
  f"The number of training samples ({self.num_training_batches}) is smaller than the logging interval"
Epoch 29:  88%|███████████████████████████████████████████████████████████████         | 7/8 [00:02<00:00,  2.79it/s, loss=2.14, v_num=0]
{"AUC": 0.4852150537634409, "PR": 0.30854919126142144, "micro_f1": 0.5436893203883495, "macro_f1": 0.5013904624575136, "accuracy": 0.5436893203883495, "num": 103, "num_steps": -1, "score_gt": 0.48910640975804004, "score_cand": 0.5233835757357402}

Stored new best metric ['AUC'] with values [0.4852150537634409] at step 29.
Epoch 29: 100%|████████████████████████████████████████████████████████████████████████| 8/8 [00:03<00:00,  2.66it/s, loss=2.14, v_num=0]

Hi @EdgedSquirrels ,
sorry for the late reply. It took me some more time to look into this.
Basically, there is another option you have to set in the code of the running script which I did not specify properly. In few-shot-pretrained-100k.sh you have to remove the comments for Zero-Shot and comment out the Few-Shot portion. Sorry for not making this clear in the readme like this:
      # Zero-shot
      eval_before_training=True
      num_steps=0
      # Few-shot
      # eval_before_training=False
      # num_steps=$(( 30 * ($num_shot / $train_batch_size)))
      # eval_epoch_interval=30

Please let me know if this works for you!

Hi @stefanhgm ,
It works for me. Thanks for your help!


issue with gateway setup

I followed your Quick start guide https://charmed-kubeflow.io/docs/quickstart on a freshly installed Ubuntu 22.04.1 Server VM.
After the setup I had a problem with kfp-api that always went into a CrashLoopBackOff but the the tip at the end of the guide (" Applications in an error state") made it run correctly.
I tried accessing the dashboard but i couldn't so I checked the other issue ("Kubeflow Dashboard can’t be accessed") and after microk8s.kubectl get gateway -A I get the response No resources found after executing the command
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
 labels:
   app.istio-pilot.io/is-workload-entity: "true"
   app.juju.is/created-by: istio-pilot
 name: kubeflow-gateway
 namespace: kubeflow
 resourceVersion: "2203"
 spec:
 selector:
   istio: ingressgateway
 servers:
 - hosts:
   - '*'
   port:
     name: http
     number: 80
     protocol: HTTP
EOF

I get this error :
error: error validating "STDIN": error validating data: [ValidationError(Gateway.metadata): unknown field "selector" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2, ValidationError(Gateway.metadata): unknown field "servers" in io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2]; if you choose to ignore these errors, turn validation off with --validate=false

Hi, There is a solution for this issue here: ( https://github.com/canonical/bundle-kubeflow/issues/494 > https://github.com/canonical/istio-operators/issues/113 ) .  After running the specified workaround command ( juju run --unit istio-pilot/0 -- "export JUJU_DISPATCH_PATH=hooks/config-changed; ./dispatch"), the gateway got created.

Thank you @software-artisan  for pointing  @QtMas in the right direction. Given that we have an issue for this and the workaround has been added to the above mentioned quickstart guide I will close this issue.


All raised exceptions should print line/number of occurrence in deck

Is your feature request related to a problem? Please describe.
Only some exceptions print the locations of read-errors in the input deck I am suggesting this be implemented for all exceptions e.g. UnsupportedFeature. This would make debugging much easier.

Thinking about this more. I think all of the relevant errors should look a lot like ParserError. I'm thinking of making an abstract class that handles the annoying stuff of highlighting the specific problem child.
This will take a lot of refactoring, but it should be very much so worthwhile. For instance #355, would have been so much easier to debug.
Also any improvements that are needed for the ParserError printing @SterlingButters, or is it a good template?
e.g.,
    raise ParsingError(
montepy.errors.ParsingError:     testRead.imcnp, line 3

         2| C this is a comment
    >    3| read file=file2read.imcnp
          |  ^^^^ not expected here.
There was an error parsing "read".
sly: Syntax error at line 2, token=KEYWORD

My first thought: the file name and line number aren't always obvious. Also for some reason the underling is sometimes off by 1 and sometimes not, and I DON'T KNOW WHY!

@MicahGale At a minimum I think you've got it: problematic lines of the input deck and their associated line numbers. I'm sure you have pretty good coverage of exceptions so in the cases in which you can provide more detail, I think it'd be worthwhile to do so. If you wanted to get really fancy, you could suggest a potential fix - perhaps even in such a way that the user can just "accept" the fix in the except block.

the file name and line number aren't always obvious

Can you explain the ambiguity? Can't reason why this might be difficult to ascertain

Also for some reason the underling is sometimes off by 1 and sometimes not, and I DON'T KNOW WHY!

Eeek - a SLY problem? Honestly, tracebacks aren't perfect to begin with so as long as the line with the error is printed I think this would suffice in the meantime.

the file name and line number aren't always obvious

Can you explain the ambiguity? Can't reason why this might be difficult to ascertain

Just glancing at the traceback it doesn't stand out and I missed it while I was glancing at it. Then again tracebacks are meant to be read carefully.

If you wanted to get really fancy, you could suggest a potential fix - perhaps even in such a way that the user can just "accept" the fix in the except block.

Long term this could be good. This is all based on the rust compiler which makes these sort of suggestions, but that's really hard. As for making it fix it for you would require it be interactive that would be really complicated.


Roll Engine from bed591d39448 to ca86c7938d6b (41 revisions)

Roll Engine from bed591d39448 to ca86c7938d6b (41 revisions)
https://github.com/flutter/engine/compare/bed591d39448...ca86c7938d6b
2022-02-11<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from ZA5ZzabQM... to jjxstNbgZ... (flutter/engine#31399)
2022-02-11<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from yDo1mhBKz... to UHV3HWM3d... (flutter/engine#31398)
2022-02-11<EMAIL_ADDRESS>Roll Dart SDK from a15d19a0d914 to a3736d4e9b1b (1 revision) (flutter/engine#31397)
2022-02-11<EMAIL_ADDRESS>Define thread priority enum and set thread priority for all threads in Engine (flutter/engine#30605)
2022-02-11<EMAIL_ADDRESS>Roll Skia from 74ce095463e1 to 82d65d0487bd (1 revision) (flutter/engine#31384)
2022-02-11<EMAIL_ADDRESS>Move recipes to repository folders. (flutter/engine#31367)
2022-02-11<EMAIL_ADDRESS>[web] PathRef: do not use == with doubles in assertions (flutter/engine#31382)
2022-02-11<EMAIL_ADDRESS>Roll Skia from e1e2a858205f to 74ce095463e1 (2 revisions) (flutter/engine#31383)
2022-02-10<EMAIL_ADDRESS>Roll Dart SDK from 0041431f5ec7 to a15d19a0d914 (2 revisions) (flutter/engine#31381)
2022-02-10<EMAIL_ADDRESS>Roll Skia from b6dfd97c5290 to e1e2a858205f (3 revisions) (flutter/engine#31380)
2022-02-10<EMAIL_ADDRESS>Renamed the scenario tests target to be generic emulator tests. (flutter/engine#28919)
2022-02-10<EMAIL_ADDRESS>[fml] Use common FML string encoding utils (flutter/engine#31378)
2022-02-10<EMAIL_ADDRESS>TextEditingDelta Support for the Web (flutter/engine#28527)
2022-02-10<EMAIL_ADDRESS>[a11y] Delegate UTF8ToUTF16 to FML (flutter/engine#31376)
2022-02-10<EMAIL_ADDRESS>Roll Skia from c5d3326d767d to b6dfd97c5290 (10 revisions) (flutter/engine#31377)
2022-02-10<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from YGS2LvlDy... to yDo1mhBKz... (flutter/engine#31374)
2022-02-10<EMAIL_ADDRESS>Roll Skia from 21a92dff8fdc to c5d3326d767d (7 revisions) (flutter/engine#31373)
2022-02-10<EMAIL_ADDRESS>Roll Dart SDK from a9cfcc289ed4 to 0041431f5ec7 (1 revision) (flutter/engine#31372)
2022-02-10<EMAIL_ADDRESS>[Android] Show deprecation warnings for Android tests (flutter/engine#31246)
2022-02-10<EMAIL_ADDRESS>Fix html gradient rendering (https://github.com/flutter/flutter/issues/97762) (flutter/engine#31355)
2022-02-10<EMAIL_ADDRESS>Change support for VM service message from "The Dart VM Service is listening" to "The Dart VM service is listening" (flutter/engine#31361)
2022-02-10<EMAIL_ADDRESS>Revert "Add trackpad gesture PointerData types (#28571)" (flutter/engine#31375)
2022-02-10<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from 5CmPcHTb1... to ZA5ZzabQM... (flutter/engine#31370)
2022-02-10<EMAIL_ADDRESS>Change link to felt documentation (flutter/engine#31312)
2022-02-10<EMAIL_ADDRESS>Roll Dart SDK from 7e3310bbe1ed to a9cfcc289ed4 (1 revision) (flutter/engine#31369)
2022-02-10<EMAIL_ADDRESS>Roll Skia from 5a2135af5623 to 21a92dff8fdc (3 revisions) (flutter/engine#31368)
2022-02-10<EMAIL_ADDRESS>Migrate string encoding conversions to FML (flutter/engine#31334)
2022-02-10<EMAIL_ADDRESS>Roll Skia from 1f813e4c7f6d to 5a2135af5623 (1 revision) (flutter/engine#31366)
2022-02-10<EMAIL_ADDRESS>Add trackpad gesture PointerData types (flutter/engine#28571)
2022-02-10<EMAIL_ADDRESS>Roll Dart SDK from b7eea441d7d1 to 7e3310bbe1ed (2 revisions) (flutter/engine#31365)
2022-02-10<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from 4VEg4eRJS... to YGS2LvlDy... (flutter/engine#31364)
2022-02-10<EMAIL_ADDRESS>Manual roll of ICU (flutter/engine#31132)
2022-02-10<EMAIL_ADDRESS>Fix AccessibilityBridge crash due to invalid access during ReplaceSemanticsObject (flutter/engine#31351)
2022-02-10<EMAIL_ADDRESS>Roll Skia from 81d4b5d5b45d to 1f813e4c7f6d (1 revision) (flutter/engine#31362)
2022-02-09<EMAIL_ADDRESS>Roll Skia from 9cb74e90792d to 81d4b5d5b45d (6 revisions) (flutter/engine#31360)
2022-02-09<EMAIL_ADDRESS>Roll Skia from ec0af1664478 to 9cb74e90792d (4 revisions) (flutter/engine#31357)
2022-02-09<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from 5_CZ81mTD... to 5CmPcHTb1... (flutter/engine#31356)
2022-02-09<EMAIL_ADDRESS>Roll Dart SDK from 55c93c732da9 to b7eea441d7d1 (4 revisions) (flutter/engine#31353)
2022-02-09<EMAIL_ADDRESS>Use H5vcc CanvasKit implementation if it is detected. (flutter/engine#31191)
2022-02-09<EMAIL_ADDRESS>Add clang-analyzer-* and clang-diagnostic-* to .clang-tidy (flutter/engine#31291)
2022-02-09<EMAIL_ADDRESS>Roll Skia from a424b619bc40 to ec0af1664478 (6 revisions) (flutter/engine#31352)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from 4VEg4eRJSk4K to UHV3HWM3djkP
fuchsia/sdk/core/mac-amd64 from 5_CZ81mTDQyo to jjxstNbgZ_WK
...

Gold has detected about 1 new digest(s) on patchset 41.
View them at https://flutter-gold.skia.org/cl/github/98249

@yjbanov Is the skia diff from https://github.com/flutter/engine/pull/31355 ?

FYI: I have pressed re-run for a couple of failed runs (which appeared also like infra failures)

@mkustermann re-runs will probably not help. Mac web_tool_tests is broken on the framework tree, and likely needs a revert https://github.com/flutter/flutter/pull/98263. I'll keep an eye on things from here. Thanks for your help!

@zanderso There were 4-5 bots that failed & I restarted - not only the Mac web_tool_tests


Edits to the data providers

Summary
This adds RandomDataProvider (as requested by Stefan), improves certificate verification in the NASDAQ Data on Demand provider (as discussed with Steve), improves the clearing of the HTTP connections pool therein (again as discussed with Steve), and does some minor improvements to for clarity.
Details and comments

@hushaohan Thanks for the review! I have:
-- added the PEP8 formatting (4-space tabs etc)
-- changed the file names in data_providers, but not in ising (where there is vertexcover etc, which as not mind and plausibly used under those names?)
-- cleaned up imports.

@jmarecek when merging the latest Aqua master to your PRed branch, please feel free to use your latest version to resolve for the three conflicting files:
qiskit/aqua/translators/data_providers/_basedataprovider.py
qiskit/aqua/translators/data_providers/dataondemandprovider.py
qiskit/aqua/translators/data_providers/wikipediadataprovider.py

@hushaohan: the versions differed only in the formatting, really.
@woodsp-ibm: it now throws the exceptions, plus there is a unit test checking that. I will check in an improved vehicle routing later today.

@hushaohan: the versions differed only in the formatting, really.

@jmarecek yup, hence my comments on merging. thx!

@woodsp-ibm : I am now happy with the vehicle routing. It splits the code as it should be split and makes it clear how to use the x_sol.
In terms of the names: in the ising directory, the convention seems to be not to use underscores between words, so I used vehiclerouting. Among the tests, there seem to be underscores, so I used vehicle_routing there.


feature - add ctrl click functionality to drill down to referenced records

RecordTreeView:
Added new css and 4 new events to detect mouseover/mouseout and keydown/keyup hotkey events. Detects if the ctrl key is pressed and if the pointer is over an element that links to another record. On ctrl+click, drill down into the selected record.
Hotkey functionality:
Added capability to specify keyup callbacks. Keyup configurations will be designated with the 'Up' suffix (e.g BaseHotkeysUp)
NOTE: I noticed the action.callback that you added (I did the same, sorry I never had time to tell you of it). However the action.Constructor === function change was not detecting functions properly (see my Ctrl callbacks in addition to the Ctrl+S callback) and would cause an error. I reverted that line back to typeStr === 'function' which appears to be working.
NOTE 2: In addition of me being new to Angular, I am also apparently a total dink when it comes to Git. Hopefully I'm getting this pull request thing to you properly and that this proper protocol for getting these changes to you. Let me know if there is anything that I would need to do differently.

Will do code review soon.  :coffe:

I push the formatting changes and it looks like it was added to this pull request. But again, still new to Git. Let me know if you need anything else.


CPPUTEST_STD_C_LIB_DISABLED is broken.

#0  0x0000000000000000 in ?? ()
#1  0x0000555555721e41 in checkedMalloc (size=5) at src/CppUTest/TestMemoryAllocator.cpp:35
#2  0x000055555572239a in TestMemoryAllocator::alloc_memory (this=0x55555582e5a0 <defaultNewArrayAllocator()::allocator>, size=5) at src/CppUTest/TestMemoryAllocator.cpp:164
#3  0x000055555571db1b in SimpleString::allocStringBuffer (_size=5, file=0x555555764028 "src/CppUTest/SimpleString.cpp", line=629)
    at src/CppUTest/SimpleString.cpp:122
#4  0x000055555571f3c7 in SimpleString::copyToNewBuffer (bufferToCopy=0x555555765468 "null", bufferSize=5) at src/CppUTest/SimpleString.cpp:629
#5  0x000055555571e011 in SimpleString::copyBufferToNewInternalBuffer (this=0x55555582e890 <NullTestPlugin::instance()::_instance+16>, otherBuffer=0x555555765468 "null", bufferSize=5)
    at src/CppUTest/SimpleString.cpp:257
#6  0x000055555571e11f in SimpleString::copyBufferToNewInternalBuffer (this=0x55555582e890 <NullTestPlugin::instance()::_instance+16>, otherBuffer=0x555555765468 "null")
    at src/CppUTest/SimpleString.cpp:284
#7  0x000055555571e183 in SimpleString::SimpleString (this=0x55555582e890 <NullTestPlugin::instance()::_instance+16>, otherBuffer=0x555555765468 "null") at src/CppUTest/SimpleString.cpp:298
#8  0x000055555572e200 in TestPlugin::TestPlugin (this=0x55555582e880 <NullTestPlugin::instance()::_instance>, next=0x0) at src/CppUTest/TestPlugin.cpp:37
#9  0x000055555572e6d9 in NullTestPlugin::NullTestPlugin (this=0x55555582e880 <NullTestPlugin::instance()::_instance>) at src/CppUTest/TestPlugin.cpp:153
#10 0x000055555572e72e in NullTestPlugin::instance () at src/CppUTest/TestPlugin.cpp:159
#11 0x000055555571b48d in TestRegistry::TestRegistry (this=0x55555582e4e0 <TestRegistry::getCurrentRegistry()::registry>) at src/CppUTest/TestRegistry.cpp:33
#12 0x000055555571c0ba in TestRegistry::getCurrentRegistry () at src/CppUTest/TestRegistry.cpp:160
#13 0x0000555555733425 in TestInstaller::TestInstaller (this=0x555555820268 <TEST_SetPointerPluginTest_installTwoFunctionPointer_Installer>, shell=..., groupName=0x555555734242 "SetPointerPluginTest",
    testName=0x555555734228 "installTwoFunctionPointer", fileName=0x555555734080 "tests/CppUTest/SetPluginTest.cpp", lineNumber=77) at src/CppUTest/Utest.cpp:969
#14 0x00005555556658f5 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at tests/CppUTest/SetPluginTest.cpp:77

I suspect this was broken somewhere around #1364, which invariably requires dynamic memory allocation.

I've tried bisecting this all the way back to CMake's introduction in 2013 (22162ca) and can't find a working build for the GccNoStdC platform. I'm going to try the autotools builds.

I'm unable to find a working version with either build system.

Are you talking about src/Platforms/GnnNoStdC/UtestPlatform.cpp?

Yes, that one. It should contain empty Platform functions. Anyone who uses noStdC will need to fill in these with the ones that are needed for whatever low-level platform they are developing on.
At least the code ought to compile with noStdC and I think the tests also, although I remember a few stdC includes that were added there which might prevent them from compiling with noStdC

#378


Override default id name feature request

Hi,
This is just a minor feature request. Currently, all the id will be generated
automatically, i.e.
entity Locale {}
This will generate a Locale table with Primary key 'id' automatically. Can it be enhanced such that the name of this id field is customized by adding some syntax? E.g.
entity Locale {
localeId Long id_override;
}
So in above example the keyword id_override will indicate the name of id will be localeId.
Thanks,
Sam

I dont think we will do this as it would have other implications and is harder for us to maintain. If you want a different field for ID just add the field and ignore the generated ID its for internal use anyways.


mime/multipart: test for presence of filename instead of content-type

Fixes https://github.com/golang/go/issues/24041 while preserving the intended fix in https://github.com/golang/go/commit/81ec7256072ed5e20b8827c583193258769aebc0

I signed it!

Apologies for the spam.


ionic.project not passing in correctly to ionic serve

Just updated to the latest version of the CLI and now I am receiving this error. I have been able to serve this project before without any issue. Reverting to CLI 1.4.5 fixes this problem.
Serve.loadSettings - You must pass a project object to pull out project specific settings from

Error: Serve.loadSettings - You must pass a project object to pull out project specific settings from
    at Object.loadSettings (/usr/local/lib/node_modules/ionic/node_modules/ionic-app-lib/lib/serve.js:153:11)
    at Object.IonicTask.run (/usr/local/lib/node_modules/ionic/lib/ionic/serve.js:30:23)
    at Object.run (/usr/local/lib/node_modules/ionic/lib/cli.js:71:32)
    at Object.<anonymous> (/usr/local/lib/node_modules/ionic/bin/ionic:13:10)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:929:3

Serve.loadSettings - You must pass a project object to pull out project specific settings from (CLI v1.4.8)

Your system information:

Cordova CLI: 4.3.0
Gulp version:  CLI version 3.8.11
Gulp local:   Local version 3.8.11
Ionic Version: 1.0.0
Ionic CLI Version: 1.4.8
Ionic App Lib Version: 0.0.23
ios-deploy version: 1.4.0
ios-sim version: 3.1.1
OS: Mac OS X Yosemite
Node Version: v0.10.36
Xcode version: Xcode 6.3.1 Build version 6D1002

Can confirm this is happening on OS X and Windows.

Same error here

I messed up - didnt merge my changes back to master when Max did a release. I'll patch now and fix.
In the meantime, can you stick with 1.4.5? npm install -g<EMAIL_ADDRESS>

Had the same issue here with Windows 7.

Thank God I aint the only one

How can i revert to older cli ver?

Had the same problem on OS X. jbavari's suggestion worked. Waiting for the upgrade. Thanks

The patch worked.

How to apply this patch?

This should be fixed in 1.5.0.
Install with npm install -g ionic

Having the same issue here, upgrading to version 1.5.0 solved the issue

@jbavari This is fixed for me with 1.5.0. Thanks for the swift response!

I have update ionic version 1.6.1 but this issue still happens:
The below is ionic info on my machine.
Your system information:
Cordova CLI: 5.0.0
Ionic Version: 1.0.1
Ionic CLI Version: 1.4.8
Ionic App Lib Version: 0.0.23
ios-deploy version: Not installed
ios-sim version: 3.1.1
OS: Mac OS X Yosemite
Node Version: v0.12.7
Xcode version: Xcode 6.4 Build version 6E35b
Do you have any idea to fix this? Thanks a lot.

I also have the same issue here:
https://github.com/driftyco/ionic-cli/issues/981


Fix blocking callback bug

Changes summary

Add try, except block around calling of function in blocking callback transform
If callback fails due to an exception, return no_update in all outputs, but still return current timestamp to end_server_id component.

Reason for changes

Current code has a bug. If a blocking callback fails due to an exception being thrown, the callback will never be triggered again
This is due to the end_server_id never being updated upon failure of the callback. In further calls of the callback, the clientside callback that ensures the blocking behaviour still thinks the previous callback is being ran. This is only released after blocking_timeout

Testing

The behaviour can be reproduced with the example given.
By applying these changes the callback is unblocked

from dash_extensions.enrich import Dash, dcc, html, Input, Output, callback

app = Dash(__name__)

app.layout = html.Div([
    html.Div([
        "Input: ",
        dcc.Input(id='my-input', value='initial value', type='text')
    ]),
    html.P(id='my-output')
])

i = 0

@callback(
    Output('my-output', 'children'),
    Input('my-input', 'value'),
    prevent_initial_call=True,
    blocking=True,
)
def check_input(input_value):
    global i
    i += 1
    if input_value == "bad":
        raise Exception(f'input is bad! {i}')
    return i

if __name__ == '__main__':
    app.run(debug=False)

Hey @emilhe , would appreciate a review here

@lcornelatti Thanks for the PR! This is most definitly a bug. I think you solution is elegant, but I have made a suggestion for an improvement. Once that is cleared out, I believe the PR can be merged.


Allow to set custom PATH for the execution of this extension

Please see my comments here: https://github.com/ansible-community/vscode-ansible/issues/129#issuecomment-872506805
This extension allows to configure the path to the ansible-lint executable, but this is not enough. ansible-lint calls the ansible executable and expects this to be on the global PATH:
https://github.com/ansible-community/ansible-lint/blob/57a6d5bd1cb5fb85fdda040d0165d8a75c8f43f1/src/ansiblelint/config.py#L146
The same is probably true for the execution of yamllint.
So, what's the point of configuring the full path to ansible-lint if ansible and yamllint are expected to be on the global PATH? Why not just make the same assumption for the ansible-lint executable?
Instead of (or in addition to) making ansible.validate.executablePath and ansible.vault.executablePath configurable, I think it would be better to have another setting to configure a custom PATH that is valid for the whole extension and is also used when ansible-lint calls ansible (as shown above).
This setting could be called something like ansible.path and should be configurable per-workspace and per-folder, so that is can be adjusted for local venv or conda-environments. The value of this setting should be used instead or (probably better) be prepended to the global PATH of the vscode process.
As described in https://github.com/ansible-community/vscode-ansible/issues/129#issuecomment-872506805, setting a custom PATH when calling ansible-lint fixes the issue where ansible and yamllint are not on the global PATH.

I would welcome a PR that does this, especially if that ansible.path would be prepended to system PATH before running commands. Undefined it would mean nothing to be added.

I had an idea while writing a custom task for yamllint. The task looks like this:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "yamllint",
            "type": "shell",
            "command": "yamllint",
            "args": [
                "-f",
                "parsable",
                "${relativeFile}"
            ],
            "isBackground": false,
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "echo": true,
                "reveal": "silent",
                "focus": false,
                "panel": "dedicated",
                "showReuseMessage": false,
                "clear": true,
                "revealProblems": "onProblem"
            },
            "problemMatcher": {
                "source": "yamllint",
                "owner": "yaml",
                "applyTo": "allDocuments",
                "fileLocation": ["relative", "${workspaceFolder}"],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+\\[(warning|error)\\]\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        }
    ]
}

As you can see, I use "type": "shell", instead of "type": "process". By doing this, the task gets executed inside a dedicated terminal (which is visible in the "terminal" tab). Because the setting python.terminal.activateEnvironment of the python-extension defaults to true, the terminal will automatically activate the virtual environment (thus, extending the PATH) before executing the task.
This can surely also be done in extensions, not just tasks, right? So, instead of using child_process to call ansible-lint, maybe you could do the equivalent of what I am doing in my task. This would also have the huge advantage that the user can actually see the errors that are returned by ansible-lint: You can just open the terminal to see the output. By using "reveal": "silent" (as shown above) the terminal only gets revealed if ansible-lint exists with an error (exit code other than 0).

Closing because the original problem cannot be reporduced anymore and because we do not plan to add support for custom PATHs, mainly as this would not really work with containers.


use micro registry in reva

Description
Use the micro registry in reva
Current Problem:

the registry is not used in reva:

that a service is registered on startup
that a service asks the registry when calling another service

Related Issue

Follow up on https://github.com/cs3org/reva/pull/1509/files

Motivation and Context
Use servicediscovery everywhere to make it consistent and to not configure hostnames / ips everywhere...

closed in favor of another approach like eg. https://github.com/cs3org/reva/pull/2665


Added collective pallet and made validator set work with collective origin.

Gave it a try to pass a motion to add Charlie as validator to Validator set, and I got a BadOrigin error when motion was executed.
Also, I could vote with Validator that was being added to validator set ... maybe we would want to exclude that account from the vote ?
Rundown:

Alice proposes motion (and votes Aye)
Bob & Charlie vote Aye
Dave & Ferdie vote Nay
Proposal reaches threshold
Motion is approved
Motion execution fails

Oh, let me check. Maybe the origin setup is incorrect.

I have made a couple of changes and then it worked for me.
Before running - Alice and Bob are set as initial authorities and also as council members.

Start the chain in the local_testnet mode with the non-validator (charlie) first (so it take the default port and connects with the web app).
Start alice and bob nodes too.
Alice and Bob will produce blocks and Charlie will only import them as it is not a validator yet.
From Charlie's node connected web app instance, make an RPC call author - rotate_keys. This will print session keys for Charlie node.
Use this printed string in the step 4 and make an extrinsic call from Charlie account - Session - set_keys. Put 0x in the proof input.
Now start the council flow. From Alice propose a motion to add Charlie as a validator using the validator-set pallet. (I used 2 as threshold and 200 as length.)
From Bob account, vote and approve this proposal.
Wait for the voting period to end. Close the motion using Alice account.
The motion will execute and Charlie will be added as validator. (see screenshot below)

I'm an idiot .. completely forgot points 1 to 5 before proposing the motion ... while I did go through them to test last time.
Maybe it was working and you didn't need to make any change ? Let me re-check that.

I had to make a small change to the council genesis config but that was not related to the error you got.

I'm testing .. I think I know why.

Ok, it has to do with the EnsureProportionMoreThan and the threshold specified for the motion. If the threshold specified is less or equal to the half of the council has required by the origin, the motion execution fails though it was approved as per the treshold.

Maybe we can use EnsureProportionAtLeast instead to make it foolproof in the context of this sample.

Yeah, makes sense. Done.


It should be possible to resubmit a failing transaction

Currently when a transaction fails (is dropped due to too low Gas price etc.) the deployment fails and the DAOcreator wizard needs to be restarted from the beginning.
Even if 3 of 4 transactions goes through, but the 4th fails, the user needs to go through the whole process again and also submitting the successful transactions again.
There should be a button or something that lets the user re-send a transaction. Perhaps the button could show up on the "transaction waiting"- dialog if the transaction takes to much time or something?

Subsumed under 200