[SPARK-39127][CORE] Fix potential risk of LevelDBIterator leak

What changes were proposed in this pull request?
The iteratorTracker in RockDB holds LevelDBIterator WeakReference  but not strong eference, so it doesn't hold all unclosed LevelDBIterator due to JVM GC, some LevelDBIterator will be held by the JVM Finalizer thread. We cannot interfere with the running state of Finalizer, so there is no guarantee that all not closed LevelDBIterator in Finalizer have been closed before LevelDB.close() is executed.
At the same time, the thread executing LevelDB.close() and Finalizer thread need the same lock, so if LevelDB.close() executes first, pending db.closeIterator(this) in Finalizer can only wait.
Therefore, the current mechanism cannot guarantee that all LevelDBIterators are closed before the LevelDB is closed.
This pr try to use a custom ReferenceQueue + cleanupThread instead of Finalization mechanism to automatically clean up LevelDBIterator resources that are not explicitly closed in Spark code.
Why are the changes needed?
Fix potential risk  LevelDBIterator resource leak and ensure all LevelDBIterators are closed before the LevelDB is closed.
Does this PR introduce any user-facing change?
No
How was this patch tested?

Pass GA and add a new test to check all LevelDBIterator not explicit closed
test org.apache.spark.util.kvstore.LevelDBBenchmark

Before
                                          count mean  min max 95th
dbClose                                   4 0.135 0.092 0.233 0.233
dbCreation                                4 52.565  0.865 209.693 209.693
naturalIndexCreateIterator                1024  0.007 0.003 1.817 0.009
naturalIndexDescendingCreateIterator      1024  0.005 0.004 0.046 0.006
naturalIndexDescendingIteration           1024  0.009 0.006 0.316 0.013
naturalIndexIteration                     1024  0.009 0.007 0.073 0.013
randomDeleteIndexed                       1024  0.025 0.015 0.407 0.041
randomDeletesNoIndex                      1024  0.010 0.008 0.055 0.013
randomUpdatesIndexed                      1024  0.120 0.061 32.596  0.135
randomUpdatesNoIndex                      1024  0.019 0.015 0.599 0.031
randomWritesIndexed                       1024  0.127 0.036 57.533  0.147
randomWritesNoIndex                       1024  0.023 0.018 1.803 0.027
refIndexCreateIterator                    1024  0.005 0.004 0.018 0.006
refIndexDescendingCreateIterator          1024  0.004 0.003 0.033 0.005
refIndexDescendingIteration               1024  0.008 0.005 0.079 0.012
refIndexIteration                         1024  0.010 0.008 0.063 0.014
sequentialDeleteIndexed                   1024  0.016 0.013 0.098 0.021
sequentialDeleteNoIndex                   1024  0.011 0.008 0.106 0.014
sequentialUpdatesIndexed                  1024  0.062 0.034 0.912 0.081
sequentialUpdatesNoIndex                  1024  0.023 0.016 1.068 0.035
sequentialWritesIndexed                   1024  0.033 0.024 2.189 0.042
sequentialWritesNoIndex                   1024  0.026 0.020 2.385 0.027

After
                                          count mean  min max 95th
dbClose                                   4 854.974 642.554 944.026 944.026
dbCreation                                4 51.631  1.002 207.800 207.800
naturalIndexCreateIterator                1024  0.006 0.002 1.849 0.007
naturalIndexDescendingCreateIterator      1024  0.003 0.002 0.037 0.005
naturalIndexDescendingIteration           1024  0.006 0.004 0.250 0.008
naturalIndexIteration                     1024  0.006 0.004 0.060 0.009
randomDeleteIndexed                       1024  0.021 0.015 0.265 0.030
randomDeletesNoIndex                      1024  0.010 0.008 0.053 0.012
randomUpdatesIndexed                      1024  0.112 0.053 32.033  0.125
randomUpdatesNoIndex                      1024  0.018 0.015 0.885 0.019
randomWritesIndexed                       1024  0.120 0.028 56.288  0.141
randomWritesNoIndex                       1024  0.023 0.017 1.900 0.023
refIndexCreateIterator                    1024  0.003 0.002 0.030 0.005
refIndexDescendingCreateIterator          1024  0.002 0.002 0.027 0.004
refIndexDescendingIteration               1024  0.007 0.005 0.044 0.009
refIndexIteration                         1024  0.007 0.005 0.088 0.009
sequentialDeleteIndexed                   1024  0.016 0.014 0.045 0.021
sequentialDeleteNoIndex                   1024  0.011 0.008 0.058 0.013
sequentialUpdatesIndexed                  1024  0.060 0.032 0.786 0.076
sequentialUpdatesNoIndex                  1024  0.020 0.016 0.655 0.026
sequentialWritesIndexed                   1024  0.032 0.024 1.999 0.041
sequentialWritesNoIndex                   1024  0.024 0.019 2.504 0.026

The performance of dbclose is significantly worse because after this pr dbclose have to wait until cleaningThread exits (wait for referenceQueue.remove(1000L))

Friendly ping @dongjoon-hyun both https://github.com/apache/spark/pull/36484 and https://github.com/apache/spark/pull/36467 are ready for review. Could you help to review them? Thanks ~

GC difference after this PR?
Do you mean JVM GC?

Yes~

@dongjoon-hyun Update LevelDBBenchmark to pr description, the performance of dbclose is significantly worse because after this pr because dbclose have to wait until cleaningThread exits (wait for referenceQueue.remove(1000L))

change COUNT to 102400 and add -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps to observe GC behavior:
Before
OpenJDK 64-Bit Server VM (25.312-b07) for linux-amd64 JRE (Zulu <IP_ADDRESS>-CA-linux64) (1.8.0_312-b07), built on Oct  9 2021 03:04:03 by "zulu_re" with gcc 4.4.7 20120313 (Red Hat 4.4.7-23)
Memory: 4k page, physical 527627268k(39637496k free), swap 0k(0k free)
CommandLine flags: -XX:+IgnoreUnrecognizedVMOptions -XX:InitialHeapSize=2147483648 -XX:MaxHeapSize=4294967296 -XX:MaxMetaspaceSize=2147483648 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:ReservedCodeCacheSize=134217728 -XX:ThreadStackSize=4096 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
4.229: [GC (Allocation Failure) [PSYoungGen: 524800K->25093K(611840K)] 524800K->25109K(2010112K), 0.1434697 secs] [Times: user=5.47 sys=0.23, real=0.15 secs]
6.878: [GC (Allocation Failure) [PSYoungGen: 549893K->30226K(1136640K)] 549909K->30250K(2534912K), 0.1407982 secs] [Times: user=4.57 sys=0.03, real=0.14 secs]
10.916: [GC (Allocation Failure) [PSYoungGen: 1079826K->56841K(1136640K)] 1079850K->56873K(2534912K), 0.5514541 secs] [Times: user=22.90 sys=0.54, real=0.55 secs]
14.788: [GC (Allocation Failure) [PSYoungGen: 1106441K->39200K(1310720K)] 1106473K->39240K(2708992K), 0.4692478 secs] [Times: user=22.50 sys=0.28, real=0.47 secs]
20.524: [GC (Allocation Failure) [PSYoungGen: 1262880K->51227K(1275392K)] 1262920K->51275K(2673664K), 0.7022824 secs] [Times: user=28.76 sys=0.38, real=0.70 secs]
25.734: [GC (Allocation Failure) [PSYoungGen: 1274907K->56794K(1279488K)] 1274955K->56850K(2677760K), 0.3269271 secs] [Times: user=10.53 sys=0.05, real=0.33 secs]
31.718: [GC (Allocation Failure) [PSYoungGen: 1274842K->56160K(1285120K)] 1274898K->58980K(2683392K), 0.3651417 secs] [Times: user=12.49 sys=0.11, real=0.37 secs]
Heap
 PSYoungGen      total 1285120K, used 518037K [0x000000076ab00000, 0x00000007c0000000, 0x00000007c0000000)
  eden space 1218048K, 37% used [0x000000076ab00000,0x0000000786e0d198,0x00000007b5080000)
  from space 67072K, 83% used [0x00000007b5080000,0x00000007b8758368,0x00000007b9200000)
  to   space 70144K, 0% used [0x00000007bbb80000,0x00000007bbb80000,0x00000007c0000000)
 ParOldGen       total 1398272K, used 2819K [0x00000006c0000000, 0x0000000715580000, 0x000000076ab00000)
  object space 1398272K, 0% used [0x00000006c0000000,0x00000006c02c0fc0,0x0000000715580000)
 Metaspace       used 19352K, capacity 19716K, committed 19840K, reserved 1067008K
  class space    used 2325K, capacity 2422K, committed 2432K, reserved 1048576K

After
OpenJDK 64-Bit Server VM (25.312-b07) for linux-amd64 JRE (Zulu <IP_ADDRESS>-CA-linux64) (1.8.0_312-b07), built on Oct  9 2021 03:04:03 by "zulu_re" with gcc 4.4.7 20120313 (Red Hat 4.4.7-23)
Memory: 4k page, physical 527627268k(39516972k free), swap 0k(0k free)
CommandLine flags: -XX:+IgnoreUnrecognizedVMOptions -XX:InitialHeapSize=2147483648 -XX:MaxHeapSize=4294967296 -XX:MaxMetaspaceSize=2147483648 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:ReservedCodeCacheSize=134217728 -XX:ThreadStackSize=4096 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
4.080: [GC (Allocation Failure) [PSYoungGen: 524800K->24653K(611840K)] 524800K->24669K(2010112K), 0.2088060 secs] [Times: user=8.93 sys=0.14, real=0.21 secs]
6.767: [GC (Allocation Failure) [PSYoungGen: 549453K->29881K(1136640K)] 549469K->29905K(2534912K), 0.1403327 secs] [Times: user=4.42 sys=0.02, real=0.14 secs]
10.577: [GC (Allocation Failure) [PSYoungGen: 1079481K->55196K(1136640K)] 1079505K->55228K(2534912K), 0.3690663 secs] [Times: user=12.57 sys=0.04, real=0.37 secs]
14.225: [GC (Allocation Failure) [PSYoungGen: 1104796K->40043K(1310720K)] 1104828K->40083K(2708992K), 0.4300225 secs] [Times: user=20.10 sys=0.25, real=0.43 secs]
20.011: [GC (Allocation Failure) [PSYoungGen: 1263723K->51450K(1275392K)] 1263763K->51498K(2673664K), 0.3348333 secs] [Times: user=11.46 sys=0.09, real=0.34 secs]
25.481: [GC (Allocation Failure) [PSYoungGen: 1275130K->56619K(1278976K)] 1275178K->56675K(2677248K), 0.4491326 secs] [Times: user=16.92 sys=0.12, real=0.45 secs]
31.391: [GC (Allocation Failure) [PSYoungGen: 1274155K->56192K(1285120K)] 1274211K->58965K(2683392K), 0.4748197 secs] [Times: user=19.71 sys=0.14, real=0.48 secs]
Heap
 PSYoungGen      total 1285120K, used 505049K [0x000000076ab00000, 0x00000007c0000000, 0x00000007c0000000)
  eden space 1217536K, 36% used [0x000000076ab00000,0x00000007861563e8,0x00000007b5000000)
  from space 67584K, 83% used [0x00000007b5000000,0x00000007b86e0368,0x00000007b9200000)
  to   space 70656K, 0% used [0x00000007bbb00000,0x00000007bbb00000,0x00000007c0000000)
 ParOldGen       total 1398272K, used 2772K [0x00000006c0000000, 0x0000000715580000, 0x000000076ab00000)
  object space 1398272K, 0% used [0x00000006c0000000,0x00000006c02b53c0,0x0000000715580000)
 Metaspace       used 19373K, capacity 19786K, committed 19840K, reserved 1067008K
  class space    used 2337K, capacity 2423K, committed 2432K, reserved 1048576K

Before 2.71s (0.15 + 0.14 + 0.55 + 0.47 + 0.70 + 0.33 + 0.37) , after 2.42s (0.21 + 0.14 + 0.37 + 0.43 + 0.34 + 0.45 + 0.48),  no significant change in GC behavior.

friendly ping @dongjoon-hyun , will we not accept this pr due to the performance degradation of close?  If yes, I will close this pr and https://github.com/apache/spark/pull/36467 , because I haven't found a way to solve the problem without losing close performance

Actually, I rechecked this PR during last weekend already before you pinged me Today, but I couldn't make me sure about the proposed approach. Please note that I didn't make any objections here. It's simply not sure.

In fact, the cleaningThread added by current pr in this pr is similar to o.a.s.ContextCleaner#cleaningThread and o.a.s.storage.BlockManager.RemoteBlockDownloadFileManager#cleaningThread.
The difference is that the latter two allow cleaningThread.interrupt()  but the cleaningThread added by current pr not allowed due to I want to to ensure the elements in referenceQueue are closed before cleaningThread stopped.
I think AutoCloseable+ java Lang.ref.Cleaner maybe a better solution, try-with-resources has been used as much as possible in the current Spark code to ensure that DBIterator is closed,  but Cleaner is only supported after Java 9, So we can also wait until Cleaner is available before continuing to sort out this part of the code.

@dongjoon-hyun @srowen Thanks for your review. I'm going to close this pr


Panic during polynomial evaluation

panic: receiver operand degree is too small [recovered]
This panic can happens in three cases:

During the monomial basis pre-computation if one ore more of the previous necessary powers are not relinearized
During multiplication if a degree zero ciphertext is given both as input and output
During addition if a degree zero ciphertext is given both as input and output

Solution(s):

Ensure that previous monomial basis are relinearized (before rescaling) if required
Change the checks to resize the output ciphertext instead of throwing a panic

This was fixed in main


request for CHEBI:43931 - methyllycaconitine to be bumped from prelim to normal entry

New information to be added to preliminary entry:
InChI, InChI=1S/C37H50N2O10/c1-7-38-17-34(18-49-32(42)20-10-8-9-11-23(20)39-26(40)14-19(2)31(39)41)13-12-25(46-4)36-22-15-21-24(45-3)16-35(43,27(22)28(21)47-5)37(44,33(36)38)30(48-6)29(34)36/h8-11,19,21-22,24-25,27-30,33,43-44H,7,12-18H2,1-6H3/t19-,21+,22+,24-,25-,27+,28-,29+,30-,33?,34-,35+,36-,37+/m0/s1
Xref, Wikipedia https://en.wikipedia.org/wiki/Methyllycaconitine
Xref, PMID 1569927
Ontology, is_a toxin
Ontology, is_a nicotinic antagonist
Species, Delphinium brownii, from PMID 1569927
Thank you!

Entry has now been fully curated - will be searchable on the ChEBI website by tomorrow.


Feat/custom chat template

Description
Adds a custom_chat_template parameter on the config that allows to set a custom chat template in Jinja format.
Motivation and Context
It's convenient so those of use who use this won't need to edit the tokenizer config directly after the fine-tune has finished.
How has this been tested?
I did not write any test cases for this. I tested it manually on my own environment and it does seem to work.

Thank you for the PR.
This feature has been integrated a while back by another PR. You can achieve this by following example 4 in the docs here https://axolotl-ai-cloud.github.io/axolotl/docs/dataset-formats/conversation.html#examples


Smart IR with T&H cannot be trained

Description
Link to devices:

https://www.pearl.de/a-ZX5130-1254.shtml
https://www.aliexpress.com/gcp/300000512/nnpage2024?spm=a2g0o.detail.pcDetailTopMoreOtherSeller.2.7e9e9CCF9CCFjh&productIds=1005006677939904&pha_manifest=ssr&_immersiveMode=true&disableNav=YES&sourceName=pcDetailTopMoreOtherSellerProduct&utparam-url=scene%3ApcDetailTopMoreOtherSeller%7Cquery_from%3A

No commands can be taught to the Smart IR with T&H device via HomeAssistant. It is also not possible to switch the IR function on/off.
Humidity sensor and temperature sensor are recognized and both work. The detected switch entity for the IR remote control results in an error.
Steps to reproduce

switch IR on/off
Perform "Action" training of the remote control

Expected behaviour

Turn on/off
learn new IR-commands

Additional context

2024-11-20 18:58:15.270 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Running websocket_api script 2024-11-20 18:58:15.270 INFO (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Executing step call service 2024-11-20 18:58:15.278 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Unexpected error for call_service at pos 1:  Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 526, in _async_step     await getattr(self, handler)()   File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step     response_data = await self._async_run_long_action(                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action     return await long_task            ^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/core.py", line 2802, in async_call     response_data = await coro                     ^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/core.py", line 2845, in _execute_service     return await target(service_call)            ^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1007, in entity_service_call     single_response = await _handle_entity_call(                       ^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1079, in _handle_entity_call     result = await task              ^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1712, in async_toggle     await self.async_turn_off(**kwargs)   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1695, in async_turn_off     await self.hass.async_add_executor_job(ft.partial(self.turn_off, **kwargs))   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run     result = self.fn(*self.args, **self.kwargs)              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1691, in turn_off     raise NotImplementedError NotImplementedError

2024-11-20 19:03:38.931 WARNING (MainThread) [custom_components.tuya_local.remote] Timed out without receiving code in remote.learn_command 2024-11-20 19:03:38.950 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Unexpected error for call_service at pos 1: No remote code received within 30.0 seconds Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 526, in _async_step     await getattr(self, handler)()   File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step     response_data = await self._async_run_long_action(                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action     return await long_task            ^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/core.py", line 2802, in async_call     response_data = await coro                     ^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/core.py", line 2845, in _execute_service     return await target(service_call)            ^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1007, in entity_service_call     single_response = await _handle_entity_call(                       ^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1079, in _handle_entity_call     result = await task              ^^^^^^^^^^   File "/config/custom_components/tuya_local/remote.py", line 267, in async_learn_command     code = await self._async_learn_command(command)            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/config/custom_components/tuya_local/remote.py", line 305, in _async_learn_command     raise TimeoutError( TimeoutError: No remote code received within 30.0 seconds 2024-11-20 19:03:3
Confirmation

[X] I am sure this is a bug or improvement, that is well enough described that it can be implemented.

[ ] If this is for a specific device, the device config is mentioned above, or diagnostics are included.

[X] Log messages or diagnostics relevant to the issue are included.

[X] This is not requesting addition of a new device.

I'm not sure your device is the same as any that is already supported. I think it would be better if you filed this as a new device request, so all the info needed to evaluate it is there. Or update this ticket with logs showing dps received when you add the device, and iot.tuya.com info for the device.

Thanks for your answer, but i m only user.
Unfortunately, I don't see DPs anywhere, like on older Tuya devices. Neither in tuya local, nor local tuya or in the developer portal.
From Tuya Debug:

and here after change in developer "standart instruction" to "DP instruction"

I hope this help.

The information that is required from iot.tuya.com comes from the API Explorer (under Cloud), in the Device Control section: Query Things Data Model. You need to give it your device id to get the information.
If you currently have the device connected to tuya-local, then the Device Diagnostics can be provided instead of logs, as that will show all dps that have been received from the device, so any others apart from temperature and humidity might show up.

Here the data from "Things Data Model"
{   "result": {     "model": "{\"modelId\":\"f1qbq8\",\"services\":[{\"actions\":[],\"code\":\"\",\"description\":\"\",\"events\":[],\"name\":\"默认服务\",\"properties\":[{\"abilityId\":101,\"accessMode\":\"ro\",\"code\":\"temp_current\",\"description\":\"\",\"extensions\":{\"attribute\":\"2\",\"trigger\":\"direct\"},\"name\":\"温度\",\"typeSpec\":{\"type\":\"value\",\"max\":600,\"min\":0,\"scale\":1,\"step\":1,\"unit\":\"℃\"}},{\"abilityId\":102,\"accessMode\":\"ro\",\"code\":\"humidity_value\",\"description\":\"\",\"extensions\":{\"attribute\":\"2\",\"trigger\":\"direct\"},\"name\":\"湿度\",\"typeSpec\":{\"type\":\"value\",\"max\":100,\"min\":0,\"scale\":0,\"step\":1,\"unit\":\"%\"}},{\"abilityId\":201,\"accessMode\":\"rw\",\"code\":\"ir_send\",\"description\":\"\",\"extensions\":{\"attribute\":\"128\"},\"name\":\"红外控制下发\",\"typeSpec\":{\"type\":\"string\",\"maxlen\":3072}},{\"abilityId\":202,\"accessMode\":\"ro\",\"code\":\"ir_study_code\",\"description\":\"\",\"extensions\":{\"attribute\":\"128\"},\"name\":\"红外学习值上报\",\"typeSpec\":{\"type\":\"raw\",\"maxlen\":128}}]}]}"   },   "success": true,   "t":<PHONE_NUMBER>089,   "tid": "0a861d38a79711ef9520ae18e4d9fbe2" }
and here the diagnostic:
config_entry-tuya_local-01JD4S9B1W223N1R59HYQ9WEJX.json
I think it is ID 201 which is not recognized.
    "cached_state": {       "updated_at":<PHONE_NUMBER>.871974,       "101": 176,       "102": 59,       "201": "{\\\"control\\\":\\\"study_exit\\\"}"
Thank you for your attention

Thank you,
for a quick solution. Learning and sending commands now works wonderfully. 👍
The entity for switch turn IR "on/off". still triggers an error message. But I think this is normal because the device does not support turning off the IR sensor.
 2024-11-21 18:46:23.093 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [139898143284464] Unexpected exception Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 245, in handle_call_service     response = await hass.services.async_call(                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/core.py", line 2802, in async_call     response_data = await coro                     ^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/core.py", line 2845, in _execute_service     return await target(service_call)            ^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1007, in entity_service_call     single_response = await _handle_entity_call(                       ^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 1079, in _handle_entity_call     result = await task              ^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1695, in async_turn_off     await self.hass.async_add_executor_job(ft.partial(self.turn_off, **kwargs))   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run     result = self.fn(*self.args, **self.kwargs)              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1691, in turn_off     raise NotImplementedError NotImplementedError


Handle the situation of installing the project without a tag

versioningit, the versioning system, requires at one tag in the repo to work. If a new user trying out DL-Registry by forking it on GitHub without copying any tag, he/she may experience an error in setting up the project through the fork. Note about the handling of such a situation in the documentation or set up automatic version through another mechanism (such as automatic versioning through poetry version once https://github.com/datalad/datalad-registry/issues/329 is complete).

One option for handling this is to specify a tool.versioningit.vcs.default-tag value in pyproject.toml (docs here).

can we just describe in our deployment documentation that need to have a tag or use a proper export/release on pypi?

can we just describe in our deployment documentation that need to have a tag or use a proper export/release on pypi?

I can, but I feel that doing this make the setup process less intuitive and making our project seems less polished. We can consider adding this information as a "footnote" in the documentation, without interfering with the flow of the setup instruction.
I think having a default tag as recommended by @jwodder is a better way to go. After all, we can't really ensure, if my limited understanding of versioningit is correct, that the version of DL-Registry built by a user will be based on the tags in the datalad/datalad-registry repo. A user can add a new tag to their clone of the DL-Registry repo and knowingly or unknowingly have the version number of their build of DL-Registry based on that tag. IMHO, what we should aim to achieve in matter is to allow anyone who is interested in the project to set it up easily, without any error or much configuration. Providing a default tag seems to achieve just that.
@yarikoptic  I am not aware that we currently have any release for DL-Registry on pypi.

we should have release on pypi. Ideally releases should be automated, likely via https://github.com/datalad/release-action
IMHO failing to install from an incomplete "source" (either export to pypi or properly tagged git repo) is better than someone later coming with a report about some unknown "default" version of software. Having default tag is IMHO just hiding a potential problem "until later".
AFAIK we have been using @jwodder 's versioningit without needing for a "default-tag" in other repos, I do not see why we would need it here

we should have release on pypi. Ideally releases should be automated, likely via https://github.com/datalad/release-action

I filed https://github.com/datalad/datalad-registry/issues/336 to follow up with this matter.

IMHO failing to install from an incomplete "source" (either export to pypi or properly tagged git repo) is better than someone later coming with a report about some unknown "default" version of software. Having default tag is IMHO just hiding a potential problem "until later".

Though I don't like to see anyone encounter an error while installing the project, I see your point. Consistency does have its cost, and this is a good occasion to pay for it. I have made some addition to README.md to close this issue.


push_notebook not updating plot

Installed versions:

JupyterLab 0.34.12
ipywidgets 7.4.2
bokeh 0.13.0 (or falling back to 0.12.6 because of https://github.com/bokeh/bokeh/issues/8122)
jupyterlab_bokeh 0.6.2

To reproduce:

Load the Notebook Handles example (https://bokeh.pydata.org/en/latest/docs/user_guide/notebook.html#notebook-handles)
Run the cells up to and including the one that changes the fill color to white and calls push_notebook
Note the plot does not update.

The JS console appears to contain errors about not being able to register a comm. Best guess: some kind of ipywidgets 7.4 compatibility problem.

I see the same issue with the interactors demo as well (https://bokeh.pydata.org/en/latest/docs/user_guide/notebook.html#jupyter-interactors)
Same version of everything.  The console says "Exception opening new comm" and then "Object '...' not found in registry"

I have the same problem and decided to fall back to an older environment:

jupyterlab 0.33.11
bokeh 0.12.16
ipywidgets 7.4.2

and installed jupyterlab_bokeh in version 0.6.1
This fallback works for me. You find the environment yml file attached if you want to get back to work fast. You can install it in conda with:
conda env create --file environment.yml
The environment is more or less minimal except for the scipy package.
I had to zip the file as GitHub does not allow the .yml type to be uploaded
environment.zip

I thought I was getting this issue and somehow discovered that I was using bokeh in JupyterLab without having the extension installed?! I didn't think it was possible to see bokeh javascript content in JupyterLab without the extension - but I was able to do everything except push_notebook just fine.  After installing the extension, push_notebook works for me in JupyterLab now.
I'm wondering if something caused the extension to fall off the list of installed extensions, but still half work in the shadows?  Maybe I updated JupyterLab, but not the extension? Not sure, but a (re)-install of the extension fixed it for me.

I'm wondering if something caused the extension to fall off the list of installed extensions, but still half work in the shadows?

I heard the Jupyter devs relented and allowed some limited JS execution without extensions. I have not looked in to things, but that would explain things (and also be the only explanation I can imagine)


Make JsonEventLogger compatible with HDFS-like FileSystems

Why are the changes needed?

FSDataOutputStream is used for this
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[x] Run test locally before make a pull request

Codecov Report

Merging #892 (e815d10) into master (4fecf13) will decrease coverage by 0.02%.
The diff coverage is 80.64%.

:exclamation: Current head e815d10 differs from pull request most recent head e6ebef1. Consider uploading reports for the commit e6ebef1 to get more accurate results

@@             Coverage Diff              @@
##             master     #892      +/-   ##
============================================
- Coverage     79.16%   79.13%   -0.03%
  Complexity       11       11
============================================
  Files           143      143
  Lines          5346     5354       +8
  Branches        649      650       +1
============================================
+ Hits           4232     4237       +5
- Misses          751      752       +1
- Partials        363      365       +2

Impacted Files
Coverage Δ

...e/kyuubi/engine/spark/events/JsonEventLogger.scala
84.21% <80.00%> (-5.79%)
:arrow_down:

...uubi/engine/spark/events/EventLoggingService.scala
82.60% <100.00%> (ø)

Continue to review full report at Codecov.

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

cc @pan3793 @ulysses-you @zhang1002


4th test condition

Challenge http://freecodecamp.com/challenges/bonfire-friendly-date-ranges has an issue. Please describe how to reproduce it, and include links to screenshots if possible.
I know this has been debated before, and I understand that if the dates are within 11 months it can be inferred that it is the following year, but test 4 (below) should require a year given that this is a requirement: "Secondly, if the starting year is the current year, and the ending year can be inferred by the reader, the year should be omitted."
As the 4th test is 2016/2016, it can't be inferred the year is 2016 unless there is assumed all dates are in the future, it could have been in 2015.
Could either the test condition, or the task description be changed to reflect this?

I agree.  I would suggest
assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st, 2016','May 5th'], 'dates in the same year in the future can be inferred it is the same year');
I would not say "one month apart can be inferred it is the same year" since these dates are more than two months apart.

+1 for this. It makes all the sense, @slooptb & @mhurwicz
I just get here because other thing I don't see clearly and, after reading you, more lack of precission issues arise.
I mean, in the explanation of this challenge, we got:

Secondly, if the starting year is the current year, and the ending year can be inferred by the reader, the year should be omitted.

Well... 2016 isn't the current year. Why is it omitted? (I realized this after reading you).
But then, forget about that for a second. If we suppose that with starting year they're only refering to the year in the first position of the array, we get that:
assert.deepEqual(friendly(['2016-03-01', '2016-05-05']), ['March 1st','May 5th'], 'dates in the same year in the future can be inferred it is the same year'); ← the year could be infered, so we omit the year. Fine.
But:
`assert.deepEqual(friendly(['2022-09-05', '2023-09-04']), ['September 5th, 2022','September 4th, 2023']);
expected [ '2022-09-05', '2023-09-04' ] to deeply equal [ Array(2) ]
There, the year can also be infered if the omit the year. Or any of you think that September 4th comes after September 5th?
This challengue is so simple, but it turns hard because isn't clear at all. And I can't do it good if I need to guess all the time. Challenge explanations and test should be a little more clear/straighforward an cover all the cases well. I can deliver the exercise even when I can make it pass the tests, if I don't fully understand the real intended way of working of the script.

Add me to the list of people confused by this one. But beside the current confusion, will these tests have to be touched up when we enter 2016 as well?

This bonfire definitely needs to be updated now. It was already confusing when it was expecting the year to be blank for some 2015 and some 2016, but not all. Now that it is 2016, there should be a new set of test conditions.

I really don't understand the " friendly(["2017-03-01", "2017-05-05"]) should return ["March 1st","May 5th"] " test case. Why isn't it expecting ["March 1st, 2017", "May 5th"] ? If the argument is that 2017 is redundant information, so shouldn't be displayed at all, wouldn't the same be true of the Month in the last test case (friendly(["2022-09-05", "2023-09-04"]) should return ["September 5th, 2022","September 4th, 2023"].)?
What is the easiest way to clean this up?
I'd suggest the problem statement be changed from
"Secondly, if the starting year is the current year, and the ending year can be inferred by the reader, the year should be omitted."
to
"Secondly, if the ending year can be inferred by the reader, the year should be omitted."
And then following tests satisfy the problem statement:
friendly(["2016-07-01", "2016-07-04"]) should return ["July 1st","4th"].
friendly(["2016-12-01", "2017-02-03"]) should return ["December 1st","February 3rd"].
friendly(["2016-12-01", "2018-02-03"]) should return ["December 1st, 2016","February 3rd, 2018"].
friendly(["2017-03-01", "2017-05-05"]) should return ["March 1st, 2017","May 5th"]
friendly(["2018-01-01", "2018-01-01"]) should return ["January 1st, 2018"].
friendly(["2022-09-05", "2023-09-04"]) should return ["September 5th, 2022","September 4th"].
If the problem statement isn't changed, that last test shouldn't be changed, and should remain
friendly(["2022-09-05", "2023-09-04"]) should return ["September 5th, 2022","September 4th, 2023"]. (since the starting date isn't the current year)

I'm happy to submit a pull request with my proposed fix (change problem statement, and change the 4th and 6th tests). I'll start working on that now.

@bheavner OK, this issue is yours.


Plugins can listen to build operations

rename InternalBuildListener to BuildOperationListener
introduce new service to register Build
integ test coverage for listening to build operation events
rework TAPI DefaultGradleLauncher and BuildController to use new Service

will adress the remaining issues later today

addressed the remaining items in https://github.com/gradle/gradle/commit/b30421061c2a6fa7fa11f63aa738d33d71d4afc4

@breskeby I was trying this out today and found this problem:
https://github.com/gradle/gradle/commit/6e1b1f0c320af1bd0d89041892fcb375119a40e1
If you add a listener, it's never removed.  Is this on purpose?

@big-guy this is indeed a problem. I've looked into this briefly and wonder what the best solution would be. Of course we can unregister the listener in buildfinished hook. but this seems errorprone and not right. @adammurdoch  do you have a suggestion how to remove automatically registered listeners when a build has finished? it feels this would require some rework to have a build scope specific listener.

I think it should be the responsibility of whatever code adds the listener to remove the listener when they are done. This service and the related events are very much internal APIs and there should be only be a small number of clients for this service: the build scan plugin and the tooling api provider. Maybe the console. None of these are build scoped (think using continuous mode from the tapi, for example). So I don't see any benefit in any auto de-registration of listeners for now.

@breskeby could you update BuildOperationService to say that the listener must be removed and update the test to behave properly?

@big-guy done.


Projects details popup window using  Java Script

#In this feature the following changes are made to the project

Add all the images needed for the pop up pages.
Modify the java_script.js file for the pop up contents. And Button actions.
Modify style.css file for styling the pop up div.
Modify index.html for pop-up button actions labeling.

@KanzaTahreem . Thank you for your comment. But my coding partner is repeating the week. And not available to contribute. What shall I do?

In the other case, if you haven't talked yet, I'll advice you to please bring this matter to their attention as soon as possible.

@KanzaTahreem  . Thank you for the replay. Yes we talked about it. He also notified the student success. He is removed from my coding partners list. I am contacting the student success for the permission as you requested.

Hello @yosaddis If your coding partner is removed from the list, probably you already have an email from student success, please check your inbox.

@KanzaTahreem  Thank you for the tip. I checked my Inbox/Spam folders . But I didn't get any mail regarding this issue. I am concerned that my request might not get fast response. But here are activities I received regarding his removal.

@yosaddis I can see that your partner is removed from the list. Please go ahead and submit your project for review. You can use this form for second opinion. I wish you success 🥇 Good luck 🎯

@KanzaTahreem  Thank you.


added localization for simplified Chinese

@Antimoney,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@Antimoney, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, Microsoft Pull Request Bot

Thank you!


Try Benchmarking Transactional

in progress

/benchmark runtime pallet frame_system

related https://github.com/paritytech/substrate/issues/8975

related: https://github.com/paritytech/substrate/pull/10809

Results

spawn 255 transactional layers, do nothing - 13_182_000
write 1_000 keys - 495_187_000
spawn 255 transactional layers, then write 1_000 keys - 37_287_822_000

So we can say the isolated effect of collapsing the 255 layers with 1_000 keys is a lot.
146_226_752 per layer.
So 146us to pass 1000keys per layer. Which is 0.15us per key per layer. Writing a key is 100us. So each layer is only 0.15% extra weight per key.


Use pytest-benchmark to run a better benchmark

Hi @sanders41, I've been using pytest-benchmark lately to run better benchmarks for Python functions on databases, and it depends on pytest underneath. I've also checked out rich-bench, but it's not as feature-rich as pytest-benchmark, specifically lacking these two features:

Running with x warmup cycles before recording timing numbers: this is important when running DB benchmarks because many of them involve optimizations when you have a warm cache to perform a fairer comparison - pytest-benchmark offers this as an added argument
Disabling Python's GC timing in the final timing number reported: this is again possible in pytest-benchmark by just enabling a flag

I'm not sure if you've found other better libraries out there to do this, but the main reason I think it matters is that time.time() isn't as good as time.perf_counter(), which is the default system clock used to measure these timings in pytest-benchmark, and I find that it's quite robust over a range of settings.
Was wondering on your thoughts on this, and if you were looking to accept a PR!

I just came across rich-bench and starred it to come back and look at it, but haven’t had a chance yet.
pytest-benchmark looks interesting. I have some questions about it.

Is it possible to only run the benchmark tests with a flag?  I suppose the tests could be marked as benchmarks and do it this way. Basically I don’t want to add time to the test suit for benchmarking on every run.
It says it can only benchmark one function, how are you handling this since several functions are used to set things up?
It looks like it is using xdist, is this required? I have actually been trying to add xdist to the test suite for a while now without luck. Test pollution has been a big issue when running in parallel. For tests that look at a single index this is relatively easy to handle, the issue is some tests need to look at all indexes, tasks, etc. I am getting close to figuring that out, but think I have some kind of race condition causing Meilisearch to error that I don’t fully understand yet.

For the GC I’m wondering, could it be important to leave that on? Let’s say you are doing something in the code that causes a lot of cycles therefore triggering a lot of GC runs making it slow. If it was possible to not create these cycles by changing the code you could speed thing up, but you wouldn’t know this if GC was disabled. I’m just thinking off the top of my head here, and don’t even have code in mind as an example, so it may not make sense to even consider this.

Per my understanding, pytest-benchmark only depends on pytest under the hood, but doesn't run as part of the test suite by default. You'd manually call the benchmark script via pytest benchmark.py --args. The docs aren't very descriptive, but I did use it to test and benchmark many functions, see this example.  The design of the benchmark functions is very similar toregular pytest, you only mark the benchmark functions with the test_ prefix for the benchmark suite to pick it up.
You raise some very good points about things like concurrent tests (pytest itself isn't great with this), and I'm not sure about the implications of using a library dependent on pytest when you're using asyncio -- marking it as async like we do in regular pytest may not be as straightforward. For my benchmarks, I suppose I  got away because I treated everything as a blocking function and ran the tests sequentially. I'd have to think about concurrency.
As for GC, I agree, by default it makes sense to leave GC enabled for the benchmarks you're considering.

OK this all sounds good to me, I’d definitely merge a PR for this. We may want to wait until after I finish with #687 because it will be a breaking change. I believe I have the code done, I’m just working on finalizing documentation.
Once it is done I would like to benchmark both clients against the official client. There should be no change in async performance. I’m curious to see the performance of the synchronous client vs the official client. My expectation is performance between the two will be roughly equal, but I’d like to verify that.
If you are interested and have time it would be nice to set this up on the sync_client branch. I was planning on updating the current benchmarking there to verify my expectations before merging anyway. If you don’t have time no worries.

Awesome, I'll follow along anyway and see your progress on these branches/issues! And will be in touch if I have time.

@sanders41 Here's a very nice snippet that Neo4j's async client maintainer used (source).
@pytest_asyncio.fixture
async def aio_benchmark(benchmark, event_loop):
    def _wrapper(func, *args, **kwargs):
        if asyncio.iscoroutinefunction(func):
            @benchmark
            def _():
                return event_loop.run_until_complete(func(*args, **kwargs))
        else:
            benchmark(func, *args, **kwargs)

    return _wrapper

Usage:
async def some_async_function_to_test(some_async_fixture):
    ...

def test_benchmark_please(some_async_fixture, aio_benchmark):
    aio_benchmark(some_async_function_to_test, some_async_fixture)

The full code is in conftest.py, in their repo. Not very clear that they're running the pytest test suite independently from the benchmark tho, the whole thing seems to be run in a single test suite.

For asyncio itself I think we will be fine because I'm using pytest-asyncio which basically does the same thing as this wrapper (assuming the benchmark plugin picks up on other pytest plugins). The issues I have seen specifically come in when using xdist because it runs multiple tests all at the same time.
xdist may actaully be OK in this situation because we aren't running the full test suite, only the benchmarks. What we can do here is instead of using movies as the index name we can use str(uuid4()). This will guarontee each index has a unique name. Since we don't care what that name is and each run only needs to access one index along with the index specific task this solves the issue of multiple processes bumping into each other.
I ran the current benchmarks with the new code and as expected I saw no difference in the async client performance. I did see slightly better performance from my sync client than the offical client. This surprised me, as I expected the performance to be the same, and I can't explain why. I expect the differnce is just by chance, though I did see the difference over multiple runs.
Since performance in the async client came out as expected I am going to go forward with the PR. meilisearch-python-async won't really make sense as a name any more so I will probably end up changing the name also.

Awesome, sounds like a plan 😎. So you'll be maintaining both the sync and async Python clients yourself? Or would this be something the Meilisearch team will take over from you long term?

I will continue maintaining this package myself. I am also a maintainer (though not a Meilisearch employee) on the official Meilisearch Python client, and will continue with that.
I have seen people that use both this async package and the official package. The APIs between these two packages are slightly different so by providing both options here these people can work with the exact same API in their different applications, the only difference being if they await or not.

@prrao87 the release of the version 2 client is done now. I left the old style benchmarking because I wanted you to be able to get credit for your idea if you want to implement it. If not no pressure.

Hey @sanders41 looks good, and the suffix sdk makes it clearly distinguishable from the client built by Meili. Were you in the process of taking a stab at benchmarking, perhaps with rich-bench or any other package? I haven't had the time to look into it and will be a bit occupied for the next few days, but if you're also caught up with other priorities, we can keep this open and I can take a stab at it next week.

I have been pretty busy lately also and haven't had the chance to try out any of the other benchmark packages yet.

Sounds good, let's revisit next week then!

Hi @sanders41 I've tried writing the pytest-benchmark tests for the use case we looked at, and it's not trivial. Haven't had luck getting the async benchmarks to run (also not too clear what to test, as there's no "right" answer from the search). The way async testing works in conjunction with this library isn't super clear, and the documentation hasn't helped me much so far. I don't have too much bandwidth to take this on, so I'm hoping you do.
Otherwise, I think we can close this issue and focus on bigger priorities. Thanks!

Ok, I'll take a look and see if I can come up with a good way to do it.

if i may chime in why not  use   https://codspeed.io it is used by pydantic

codspeed is something I have wanted to look at, but just haven't had time. The tricky part here would be with it running in CI. Slow downs would need to be looked at further to see if it is code under our control that caused the slow down, and not network issues, or Meilisearch itself that slowed things down.
What may make sense is to add it to the nightly tests instead of a standard part of CI. Possibly with an option to also trigger a run manually. This way if we are specifically working on speed in code we control we can kick it off to test how we are doing.


fix: skip stripe payment request if not required

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 20 (0.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.001%) to 10.094%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/store/postgres/billing_invoice_repository.go
0
1
0.0%

billing/checkout/service.go
0
19
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.001%

Covered Lines:
9401

Relevant Lines:
93138

💛  - Coveralls


Android TV HDR playback breaks when using this plugin

Using the Android TV client on a CCwGTV4K. This seems to partly be a bug with the client - when using Jellyfin's suggested file structure and not this plugin, HDR playback only starts when the correct version is selected from drop down first before hitting the play button. However, when using this plugin instead, HDR playback does not start at all, whether the correct version is selected or not - which leads me to believe this is a bug with this plugin.

For anyone else who runs into this problem, I'm working around the issue by just manually grouping versions. It's tedious, but the HDR playback works correctly this way. Use the search bar to find the movie/episode that you want to merge (temporarily add multiple folders to the same library works too, at least for movies), then long click on one of them to bring up the selection menu. Select the versions of the file, then hit the (...) menu in the top right and click group versions.

It turns out the culprit was actually the naming of the different versions - renaming them so the 4K HDR version came before the 1080p version (in my situation) was what fixed the issue. This seems to be a known issue specific to the Android TV client, and altogether unrelated to this plugin.


wip

"wip" is not an appropriate Pull Request title.

sorry will delete this pull request. this pull request was made to help check for the errors by comparing the changes in the file for the issue i went through


e2e errors when cli performs action before router ready

There are a handful of instances in e2e tests (see here, here and here) where the user is greeted with a 404 when curling the app after certain actions when they should reasonably expect a 200.
For an example, see the behavior documented in https://github.com/deis/workflow-e2e/issues/69

this sounds like the controller is returning the response too early and the application is not yet ready to handle traffic.

could this be because the router hasn't yet picked up the new app name?

Yep! That is also quite likely. This issue plagued us in v1 as well. We just ensured that the curl commands in the end-to-end tests would keep trying for 10 seconds until we got a response, but that wasn't the greatest solution. The best would be for the router to pick up changes instantaneously via watching the API, but right now we're just polling every interval.

This remains an issue but with no fix forecast for the v2.0-rc1 milestone; moving to v2.0

Is this still a problem? I haven't seen it yet.

no we can close this.


[rest] set default url.prefix to specified at readme file

As specified at Rest's default-configuration-parameters, url.prefix default value is http://<IP_ADDRESS>:80/. Happens that the default port defined at implementation was 8080, so I set it to 80.

Could you correct the docs instead?
Port 80 is a privileged port (one <=1024), which will make it harder to run out ofnthe box.

Could you correct the docs instead?
Port 80 is a privileged port (one <=1024), which will make it harder to run out ofnthe box.

For sure!


15.2. Counting majority (2nd approach Hash map O(n logn))

My code is clear and well understanding
Please assign it to me

Need to add a description and your approach. Thanks, Closing as of now.


UI and web3

Changed UI layout and integrated Polkadot browser extension.

@martink-rsa plz review

Hi guys, sorry for the delay on this, I was trying to figure out why the polkadotjs api was not connecting with the Netlify deploy but it was working locally. @vgeddes thank you for fixing the polkadotjs dependencies solved it the issue.

@martink-rsa please check if I am using React properly.

@vgeddes @martink-rsa please let me know if I can merge this.

@jakai7 looks good! One problem is that I saw quite a few lint errors and warnings in the logs after running yarn start. Hoping you can tackle those before merging. Or at least cut issues to track them 🙂

@vgeddes I fixed the lint warnings, thanks for pointing them out.
Ready to Merge :smiley:


Support passing activity task rate limit on worker options

Summary
This PR exposes the activity_max_tasks_per_second option when constructing a new Temporal::Worker instance. This setting sets the max_tasks_per_second option when making PollActivityTaskQueue RPCs to the server, which has the effect of limiting how fast the server will give out activity tasks (both new activities and retries of already-running activities).
This same option is exposed in other SDKs; for example in Java it's available on the WorkerOptions struct as the setMaxTaskQueueActivitiesPerSecond option. The doc comment added in this PR was based off of the doc comment in the Java SDK. The semantics of the values activity_max_tasks_per_second can be (non-negative decimal number) and when it sets set on the wire (if it's > 0) was copied directly from the Java SDK's implementation, here (although it diverges slightly from the Go SDK).
Motivation
Allow Ruby workers to control the rate of processing activities, to control impact on downstream systems.
Test plan
Unit tests
Existing unit tests/example unit tests pass, and the new tests I added validate that, at each step, the option is making its way to the underlying gRPC connection:
bundle exec rspec spec/
cd examples && bundle exec rspec spec/

Manual tests
I also manually validated that the activity task rate limit works as expected. To do so, I modified the examples/bin/worker script to include a rate-limit on the Worker.new call:
worker = Temporal::Worker.new(binary_checksum: `git show HEAD -s --format=%H`.strip, activity_max_tasks_per_second: 0.5)

Then, I ran the AsyncHelloWorldWorkflow workflow with 10 activities, and validated that it took around 20-30 seconds (10 activities * 0.5 activities/second + a bit of overhead/inaccuracy) for the workflow to complete:
cd examples
docker-compose up
bin/worker # with special code patch
bin/trigger AsyncHelloWorldWorkflow 10

Repeating the test without the change to examples/bin/worker (i.e. an unlimited activity task queue) shows that the rate-limit makes a meaningful difference:

@jazev-stripe can you elaborate a bit more of how this should work?

@jazev-stripe can you elaborate a bit more of how this should work?
I've launched a single worker:
Temporal::Worker.new(
    activity_max_tasks_per_second: 0.1,
    activity_thread_pool_size: 1,
  )

and have one activity + one workflow:
class HelloWorldWorkflow < Temporal::Workflow
  def execute
    HelloWorldActivity.execute!
  end
end

class HelloWorldActivity < Temporal::Activity
  def execute
    Net::HTTP.get_response(URI.parse('http://localhost:8000'))

    "Hello World"
  end
end

then I've locally launched a simple python server on the 8000 port.  But what I get is two parallel activities every 4 seconds which seem to then slow down until almost 40 seconds between runs?

I would somehow expect it to run once every 10 seconds? But what I get is two parallel activities every 4 seconds which seem to then slow down until almost 40 seconds between runs?

The rate-limiting is done on the server-side, so unfortunately I think this is just a result of the rate-limiting not being super accurate for very small values. I'm not familiar with the server implementation, but if you ask in the Temporal communnity Slack they would probably be able to give you more details.
If I'm right, you should be able to reproduce that test/the results with any of the official SDKs, since they all use the same mechanism to implement activity task queue rate-limiting (that one Protobuf field when polling for activity tasks).
I also noticed similar phenomenon when testing locally ("+ a bit of overhead/inaccuracy"):

it took around 20-30 seconds (10 activities * 0.5 activities/second + a bit of overhead/inaccuracy) for the workflow to complete...

One other thing to keep in mind is that the "current" value of the rate-limit seems to be stored on the server side in a way that takes O(minutes) for a new value to propagate. So, make sure you haven't run the worker on the same task queue without a rate-limit shortly before your test. In other words, make sure your test runs with a "clean slate" on that task queue, to make sure it's not being affected by anything else (you could try cleaning all of the server state before running your test to be sure).


refactor: require that the range of a model with corners is included in the closure of its interior

This will ensure that, for C^2 maps over real or complex manifolds, the second derivative in charts is symmetric (because that is true at interior points, and then it extends by continuity if interior points are dense). To be used in #18396 to define the Lie bracket of vector fields on manifolds.

I also wanted to change the definition of a ModelWithCorners, since the current doesn't impose enough conditions.
This change is fine by me, but I don't think it's good enough.
The problem I was facing is that currently a ModelWithCorners over \C is not a ModelWithCorners over \R. The issue is the unique derivative: it is easier to have a unique derivative over C than over R. This is problematic, since we cannot show that complex manifold is a real manifold.
I believe your new condition doesn't imply uniqueness of derivative, right? So we would have to change it again. One way is just to say that the target must be a 1/(2^n)-th space (i.e. you require that for some basis certain coordinates are positive), but probably we can get away with something weaker, e.g. convexity together with the regularity condition. Does that imply uniqueness of derivative?
I'm fine merging this as-is, but if we're changing ModelWithCorners again soon, we should probably decide now whether the current change is compatible with the planned change in the future.

There is a definitely a difficulty between complex and real manifolds: as you point out, a complex model with corners is not a real model with corners because of the lack of unique differentiability. My new condition doesn't imply unique differentiability, that's why it is added on top of it.
I don't know how to fix it for the complex case (if you want a condition that makes sense over a general field, you can not mention positivity in the definition). But even if the conditions we impose did match over R and C, the models with corners would still be different because the field is baked in. Whatever we do, it looks like there is a difficult issue here related to the tangent bundle: the real tangent bundle and the complex tangent bundle are always going to be different objects, right?

In fact, I think I have a fix for the complex case: add yet another field saying that, if IsRCLikeNormedField 𝕜, then the interior of range I is convex for the inherited real structure. And we could have a specific constructor for models with corners with IsRCLikeNormedField 𝕜, using that the latter condition implies both unique differentiability and that the range is included in the closure of its interior.

(I wrote this before you posted your last comment.)
I wonder: is having the model with corners depend on the field a bad thing? If, say, there is a map from "models over \C" to "models over \R", but that map is well-behaved? Treating a complex manifold specifically as a real manifold is sometimes useful (say, consider a Riemann surface as a surface with an almost complex structure; my area does that all the time), but not always.
That said, I don't have enough experience with library design yet to know the trade-offs of such choices well.
After talking with Floris, I had attempted to simply add the additional condition of some positive coordinates to the model with boundary. Another issue I realised is that the correct definition of complex manifolds with boundary is not just the same as in the real case. I'll dig up a link right now.

In fact, I think I have a fix for the complex case: add yet another field saying that, if IsRCLikeNormedField 𝕜, then the interior of range I is convex for the inherited real structure. And we could have a specific constructor for models with corners with IsRCLikeNormedField 𝕜, using that the latter condition implies both unique differentiability and that the range is included in the closure of its interior.

That sounds reasonable at first glance, and definitely like an improvement.

Another (essentially equivalent option) is to require either that range I = univ, or that the field is IsRCLikeNormedField and the range is convex wrt the real structure. And then the properties that the range has unique differentials, and is the closure of its interior, would be deduced from this one. I don't think one option is really better than the other one.

Another (essentially equivalent option) is to require either that range I = univ, or that the field is IsRCLikeNormedField and the range is convex wrt the real structure. And then the properties that the range has unique differentials, and is the closure of its interior, would be deduced from this one. I don't think one option is really better than the other one.

Is there an interesting theory of manifolds with boundary over Q_p (or Q, or any other fields different from R or C)? Because it seems this proposal would exclude them, right?

Is there an interesting theory of manifolds with boundary over Q_p (or Q, or any other field different from R or C)? Because it seems this proposal would exclude them, right?

Not that I know, which is why my second proposal makes sense. But maybe it's safer to go with the first one. In any case, I don't think these improvements should block the current PR, as they should be compatible.

Is there an interesting theory of manifolds with boundary over Q_p (or Q, or any other field different from R or C)? Because it seems this proposal would exclude them, right?

Not that I know, which is why my second proposal makes sense. But maybe it's safer to go with the first one. In any case, I don't think these improvements should block the current PR, as they should be compatible.

That sounds fair; I trust your judgement on this. And I agree the first proposal could be better.
I can review this PR now/very soon; would you like to work on the follow-up proposal also?

I won't work on the follow-up in the near future, sorry, I have already too much on my hands with #17152 and #18396

Fair enough. Sounds like a project for another volunteer to adapt this; I would be happy to :-)

In fact, I think I have a fix for the complex case: add yet another field saying that, if IsRCLikeNormedField 𝕜, then the interior of range I is convex for the inherited real structure. And we could have a specific constructor for models with corners with IsRCLikeNormedField 𝕜, using that the latter condition implies both unique differentiability and that the range is included in the closure of its interior.

Ah wait, I forgot that convexity is not definable over an arbitrary field...
The current PR indeed doesn't conflict with any of the future plans (although it will be made partially obsolete if we go with the second option, since then it's provable). But then removing this condition and proving it as a consequence will be easy anyway, so let's merge this PR and generalize later.

Thanks a lot for the review!

I took a quick look, and I'm happy to merge this if Michael is happy with it.
bors d=grunweg

I am happy with this. Thanks for the quick turnaround, and for initiating this refactor!
bors merge


Refactor mount keyword implementation.

Fixes #126.
Includes and supercedes PRs #135 and #138.

@rwjblue r?

I'll pull this refactor into the v0.2 branch once it lands on master.

LGTM - Thank you!


When use httpclient print log ,if server response blank fix caused NPE

Motivation:
When use HttpClient print log ,if server response blank can cause NPE. SOFATracer should fix it.
Modification:
Judge if server response is blank and set default value -1  as content length.
Result:
Fixes #84

@guanchao-yang

Pull Request Test Coverage Report for Build 222

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.009%) to 63.203%

Files with Coverage Reduction
New Missed Lines
%

tracer-core/src/main/java/com/alipay/common/tracer/core/reporter/digest/DiskReporterImpl.java
1
84.62%

Totals

Change from base Build 220:
0.009%

Covered Lines:
2628

Relevant Lines:
4158

💛  - Coveralls


Fix coverage collection crash

Based on Jason's patch in https://github.com/flutter/flutter/pull/19546/
This is more or less the same but I tried to avoid using dynamic.

cc @jason-simmons @cbracken

PTAL.

Thank you sir, will land on green.

Looks like tests-linux actually completed; yellow is bogus. Landing.


Feature/configure timeout

Change session timeout in config file before OTP compilation.
Also stop otp upstart service at start of task, to prevent out-of-memory errors when attempting to compile on reprovision.

Looks good. The service definition check (or something else to check if the service exists) probably needs to go in to avoid failure on a fresh run, but otherwise works as intended.
:+1:


Microsoft.Network/privateEndpoints not idempotent with Microsoft.ApiManagement/service

Bicep version
0.27.1
Describe the bug
I have deployed an Azure API Management Service (APIMS) using the Developer SKU, User Managed Identity and only the required properties of publisherEmail and publisherName. I can deploy the bicep repeatedly without an issue. APIMS api version 2023-05-01
I then add a Private Endpoint to the APIMS and this deploys fine.
The next time I run the bicep, not changing anything, the following error is seen:
•	Call to Microsoft.ApiManagement/service failed. Error message: Private endpoint with name PRIVATE-ENDPOINT-NAME already exists for Api Management service /subscriptions/ID/resourceGroups/RG-NAME/providers/Microsoft.ApiManagement/service/APIM-NAME  (Code: PrivateEndpointBadRequest)
Therefore, appears not to be idempotent.
To Reproduce
This is the privateEndpoints.bicep file:
param name string
param location string
param tags object
param properties object

resource privateEndpoint 'Microsoft.Network/privateEndpoints@2023-11-01' = {
  name: name
  location: location
  tags: tags
  properties: properties
}

output privateEndpointName string = privateEndpoint.name
output privateEndpointId string = privateEndpoint.id

This is the private endpoint resource being deployed:
module apiManagementServicePE 'modules/privateEndpoints.bicep' = {
  scope: resourceGroup()
  name: 'pe-${apiManagementServiceName}'
  params: {
    name: 'pe-${apiManagementServiceName}'
    location: location
    tags: tagging
    properties: {
      subnet: {
        id: subnetId
      }
      privateLinkServiceConnections: [
        {
          name: 'pe-${apiManagementServiceName}'
          properties: {
            privateLinkServiceId: apiManagementService.outputs.apiManagementServiceId
            groupIds: [
              'Gateway'
            ]
          }
        }
      ]
    }
  }
}

The PE has been used on many other resources without any issue. Some APIMS seems to have an issue.
Additional context
The APIMS redeploys fine with no issues. It's the PE that fails.

Same issue here, raised ticket with id<PHONE_NUMBER>004816

Same issue.

Same issue here, raised ticket with id<PHONE_NUMBER>004816

Any updates?

Same issue here, raised ticket with id<PHONE_NUMBER>004816

Any updates?

It got routed to the APIM team, but it's best to also raise a ticket as well so it gets more attention.

Seems fixed for me. Tested on Europe West.


Main

Contributing a Project

[x] Added A Project
[ ] Bug fix
[ ] New features
[ ] Enhanced documentation

Changes proposed in this pull request

Project name : Water Marker

Short description :

A python program that allows users to generate watermarked images.
Checklist

[x] The code is Python 3 compatible
[x] I have added relevant comments in my file to make code understandable
[x] I have added my project in a folder which includes all the necessary files

@Mrinank-Bhowmick Please merge as Hacktober Fest Contribution. Thank you.

Thanks for contributing
happy hacktoberfest 👍

@Mrinank-Bhowmick Thank you


[bug report] Sometimes the orientation of the hand does not match the orientation of the image

https://github.com/takeyamayuki/NonMouse/blob/4603acc9ca0ad188021787a0fed6445d01052fff/app.py#L115-L155

Stopped automatically recognizing the location where the camera is placed, and changed to setting it in the configuration screen.


Use random UUIDs for asset keys (instead of content hashes)

Companion PRs:

https://github.com/SubstraFoundation/substra/pull/235
https://github.com/SubstraFoundation/substra-backend/pull/342
https://github.com/SubstraFoundation/substra-chaincode/pull/128

Please see the main PR in substra-backend for a detailed description of the changes: https://github.com/SubstraFoundation/substra-backend/pull/342

The mechanism adding random variations to assets specs is now obsolete (because unnecessary) and has been removed.

Note that the CI tests won't pass until the substra PR is merged https://github.com/SubstraFoundation/substra-tests/pull/153

@inalgnu @jmorel @samlesu bump


[ET-234] Extract multiple certs and multiple kinds of login locations (i.e. each binding)

Test data included, Okta and Azure AD. I've killed our app id from the okta XML, but left the Azure one untouched (as it's probably not that bad, and I wouldn't want to commit a broken signed xml doc).

👍  with minor comment (ok to fix later)

👍


Connection HTTP header now requires all hop-by-hop headers

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details
The page on the Connection header currently says that the standard hop-by-hop headers do not need to be listed in the Connection header. However, the history section of RFC 7230 says (in explaining differences from RFC 2616):

Exactly when "close" connection options have to be sent has been
clarified.  Also, "hop-by-hop" header fields are required to appear
in the Connection header field; just because they're defined as hop-
by-hop in this specification doesn't exempt them.

I've updated the description: https://github.com/mdn/content/commit/b5237cb867b2ed07688c4066c56ed9494dd459cc

wepcgamer.com
Here is one of the best gaming websites, which provides games in highly compressed size, and 100% working and tested games are here, so you guys just have to come and download your favorite games from this website.
Technology & Reviews and all about latest technology updates and CPU comparisons.


Notification link broken on latest Atom (1.0.7)

Running a sync backup on 2 different machines (both running Mac OS X), the notification that pops up after it successfully uploads displays the link as follows:

Whereas before it would properly create a usable link. Not a big deal, as you can just use the shift+cmd+P and use the option to view backup, more of a heads up that on latest atom it displays weirdly.

Seems to have fixed itself, might have been an issue with my machine only.
Also I have a suggestion for keyboard shortcuts for your package, I added these to my personal one, and they work great:

'body':
'alt-cmd-b': 'sync-settings:backup'
'alt-cmd-r': 'sync-settings:restore'
'alt-cmd-v': 'sync-settings:view-backup'

Maybe a temporary issue with Atom's notifications. Great it's fixed now.

Also I have a suggestion for keyboard shortcuts for your package...

We removed the previously added keymaps, so people don't trigger them by accident. As you already found, you can always defined their own keymaps.


add changelog for release v1.8.0

Summary

add changelog for release v1.8.0

Ticket Link
n/a
Release Note
NONE

Codecov Report

Merging #1803 (cb2e84c) into main (cba2cfb) will decrease coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #1803      +/-   ##
==========================================
- Coverage   32.70%   32.67%   -0.04%
==========================================
  Files         147      147
  Lines        9300     9300
==========================================
- Hits         3042     3039       -3
- Misses       5903     5905       +2
- Partials      355      356       +1

Impacted Files
Coverage Δ

pkg/cosign/tuf/client.go
61.68% <0.00%> (-0.82%)
:arrow_down:

Continue to review full report at Codecov.

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

Can we add a note that this is a required update if you use Fulcio?

let me know if that is ok or you need rewording

OK, this should be ready to go.

OK, this should be ready to go.

well, with the last two changes added: https://github.com/sigstore/cosign/pull/1648 and https://github.com/sigstore/cosign/pull/1804


Problem with IR led #2

Hi!
I did it:
mv /tmp/out/camera /tmp/out/camera.1
hexdump -vC /tmp/out/camera.1 | sed 's/20 46 01 21 bd e8 38 40/20 46 00 21 bd e8 38 40/' | hexdump -R > /tmp/out/camera
chmod 755 /tmp/out/camera
reboot
I restarted the camera in the dark, connected to it
ffplay rtsp://<IP_ADDRESS>/12
and after 6 seconds the backlight turned off. Did I do something wrong?
Firmware 2.1.1_0002.0515

My mistake.
I just needed to make changes to the /etc/tar_app.sh file
It works!


fixing issues preventing micro cli to work properly

Currently 4.0.0 and 4.1.0 were broken due to dependency problems, this PR fixes both issues.
Fixes #50

Thanks!

4.1.1 out

Thanks @rauchg 🎉


Add SLAUGHTERHOUSE by Saywntr

Song Name
SLAUGHTERHOUSE
Artist Name
Saywntr
Source
Youtube
Youtube Link
https://youtu.be/07S8EsEPFIw?si=bg1Fac7FoBBnVqlt
Direct File Link
https://www.newgrounds.com/audio/listen/1170702
Song ID
1131108
Start Offset [ms]

Extra
Created from Auto Nong.
Created for level: 110718258
Downloaded: Yes

"aceptar"


Setting vesting schedule in the genesis ledger and using snapps- (what happens when there is a conflict between the two?)

Test type: Integration test/Manual test
Acceptance Criteria:
Desc: The snapp transaction should fail since the account exists and one can’t change the schedule

Does this differ from #10489?

I guess it doesn't. It is the same code path.


Relocation of systems from systems.py module and its rejection

All old classes from module have to be moved to appropriate destination.

DynPy mechanics module maintenance
purified mdof module
moved/added classes to:
• disk.py
• pendulum.py
• trolley.py

Some classes should be relocated and merged (maybe).


todoman: Re-enable for darwin

Description of changes

The other day I updated my unstable channel and tried switching home-manager to a new generation on my x86 Macbook, but it failed. I tracked it down to todoman, which was disabled for darwin in 37c633f but seems to build fine for me. I also noticed #173671 (zero-hydra-failures PR) that mentions disabling some packages that were broken on hydra (the PR mentions todoman, but didn't actually disable it).
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin ← I'm wondering if 37c633f was addressing it failing on M1 specifically (cc @Mindavi)?

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

It was failing to build on hydra: https://hydra.nixos.org/job/nixpkgs/trunk/todoman.x86_64-darwin. Not sure about aarch64-darwin.

The tests do take a while to run when I build it locally. I'll take a look at how to disable -- out of curiosity, do you prefer that over extending the timeout because of resource contention on hydra?

Make sure to squash and observe the contributing guidelines regarding commit messages.
Something like this
pythonPackages.todoman: disable failing test and unmark broken for darwin

@ofborg build todoman


Env selector is missing $default

The new $default env works great, but the env selector needs an update too. Once Switched to a non default env I only can switch back by typing $default. A dedicated select option would be more convenient. Thx

Just press ESC but option NONE would be useful

You‘re fast. Thanks the fix

feature is released with v4.8.2


[BUG] module-info

Describe the bug
Dependencies with module-info  appear as bloated, but it is indeed used.
To Reproduce
For example in Spork's visualization the direct dependency junit-jupiter appears as bloated.  See also Spoon's visualization
Expected behavior
Dependencies with module-info  should appear as used.

Hello @imjhonny
This does not seem to be a bug for me, in fact, the author uses a filter so that depClean didn't analyze classes like module-info, package-info, etc.
See here in the code.
The logic behind this filter may be that since these types of classes only contain the general information of module, package, or project which I think rarely required a dependency or an artifact.
So, it will be better to ignore these classes(which may save time).
But if still, this seems to be a bug then it can be fixed easily.
@cesarsotovalero needs your opinion here.
Thank you
Abhay

Hi @imjhonny,
The viewpoint of @ABHAY0O7  is correct.
The dependency junit-jypiter is an aggregator of other JUnit dependencies. Aggregators are used to simplify the addition of many dependencies at once. In the case of this particular dependency, it contains a single module-info.class file, see also here.
Therefore, I  think it is correct for DepClean to report this type of dependencies as unused, and focus the analysis on the dependencies that actually contain executable bytecode, i.e., the sub-modules of `junit-jypiter.


vkDestroyFence validation fails after vkDeviceWaitIdle call if no vkWaitForFences is called

SHORT DESCRIPTION - REPRODUCTION
Application appears to have no other errors. There are two sets of fences synchronising command buffers submissions and command buffer presentation. When cleaning up exiting the application:

Call vkDeviceWaitIdle. Do not explicitly wait for any fences
Destroy the objects (including the vkDestroyFence)

RESULT (ACTUAL)
Standard validation fails with: VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT. VULKAN_LAYER_VALIDATION: Object: 0x1c (Type = 7) | Fence 0x1c is in use. The spec valid usage text states 'All queue submission commands that refer to fence must have completed execution' (https://www.khronos.org/registry/vulkan/specs/1.0/html/vkspec.html#VUID-vkDestroyFence-fence-01120)
ADDITIONAL INFORMATION (WORKAROUND)
If I call vkWaitForFences and vkResetFences after (or before) vkDeviceWaitIdle, and before vkDestroyFances, the validation error goes away.
EXPECTED (CORRECT) BEHAVIOUR
Since vkDeviceWaitIdle has been called, it is expected that all commands have finished executing, hence all the fences are signalled, hence the validation error is incorrect as the fences must be signalled.
RATIONALE
I assume that vkDeviceWaitIdle should not have returned if the fences were not signalled, as then it would be implied that the corresponding commands are not executed.
DEBUGGING DETAILS
For SDK <IP_ADDRESS> The failure can become apparent seen around core_validation.cpp:3364: if ((*fence_node)->scope == kSyncScopeInternal && (*fence_node)->state == FENCE_INFLIGHT).
Since If I insert a vkWaitForFences the error goes away, it follows that the layers miss the fact that they have already been signalled as the device has completed all commands. I think that the vkDeviceWaitIdle command should mark the fences as complete itself, or something to that effect.

Additional info
I also tried just querying the fence status before destroying:

vkDeviceWaitIdle
vkGetFenceStatus
vkDestroyFence

This also fixes the issue, which reinforces my previous assumption that the layers just have the wrong idea about the fences. At this point I would guess that just updating all fences as signalled in vkDeviceWaitIdle should be enough to fix this.


Initial draft of blog article based from Tom Evans

Not yet ready for integration.
Needs proper metadata, at a minimum.
Currently points to webinar on the web.  Should point to webinar as a BSSw resource.

Was published at: https://bssw.io/blog_posts/better-science-through-software-testing


Remove serializable for records one QuarkusTest does not require them

On #132, we discovered that records required to be serializable to work with quarkus-tests. This is already reported to quarkus for a long time (see https://github.com/quarkusio/quarkus/issues/15892), but looks like no move have been done in that regard.
We should keep this issue open to simplify our code and remove the serializable class for our enums, as this is a requirement for test-only and should not leak into our actual code.

This is already fixed in Quarkus, although not releas is yet done for it. We should keep an eye on it.

Looks like it will be present in quarkus-3.12 (currently only on 3.11). Let's wait to upgrade when it is released

Still in 3.12.1 is not fixed, as the change to JBoss Marshalling was reverted. I added a comment into the original issue and I will open it again if it is not re-open.


Ignore 304/204 response body

Fix #505

Please rewrite tests to use test_client_functional_newstyle.py not test_client_functional.py

Oh, didn't notice that.
So all the tests should be moved to test_client_functional_newstyle.py in the future?

Yes. I even plan to rewrite these in py.test style but as first step I want to get rid of test_utils server.

Done.

Thanks


258 fix layout

closes #258

@kleins05 please check/merge

Great! Looks all good now. Seems like you understand the margins issue, at least your fixed it. And the overlap of the charts is gone indeed, cannot reproduce either.
Thanks for fixing this so quickly and completely!


Compatibility Question

Hello, Nice plugin you have here, I tried it and it worked on all IE 9 and above.
I wanted to know if it can be possible to make it work on ie8, any major blocker or suggestion on how to enable this will be great.
Cheer

Hi
Since IE8 no longer is supported by Microsoft and is considered not-safe to use, I don't think that I will make it work in IE8
A simple test of the demo in the IE8-emulator of Edge in didn't give any error, but if you can find any and find solutions for them, please make a Pull Request with them, and I will look at them
Kind Regards
Niels

I tried on IE8 emulator as well and I got a jquery issue I noticed your s=using jquery 3 which is not supported by IE8, I wonder if you did the test by accessing the GitHub demo or your own local dev build.
please if you access your own dev build can you help me with jquery version your using.
Thanks
Boni


https://github.com/collective/volto-middleware-helmet

Hi @instification if I read the description of your add on correctly, I probably suggest you see first
https://github.com/collective/volto-middleware-helmet
the development of this addon is currently stalled, but we plan to start working on it again in the coming weeks. And of course any contribuiton is welcome.
If I am wrong, I am sorry for this spam.

Hi @mamico thanks for this it is awesome.
For volto-csp I'm concerned just with csp and specifically getting the shashums for inline script and style elements that volto is adding by default.
So for the initial version we are just setting <meta http-equiv tags which is less preferable to the middleware solution. We are also using just crude env vars to set the values and it is something we would look to improve very soon.
I would think I could hook into your addon and add the sha sums to the right place, or possibly just contribute what I'm doing here to your package. I have created #3 to cover any ideas on integration.


new term request

We are developing Brucellosis Ontology, an extension of IDO.
Brucellosis shows a variety of clinical presentations, it can mimic
various multisystem disease. So, there are a lot of terms regarding to
symptom, sign, syndrom.

After sending a mail to the IDO discussion group, Lindsay introduced your
group. It seems that I should require some terms from you.

Hope your group can help me out with all those questions.

Thank you very much in advance.

Asiyah Yu Lin

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 15 Oct 2010 at 11:20

Closed ticket because issue has not been acted upon in reasonable amount of time.


HAP: Error Handling, Update on ResourceIDs, Reconcile on errors.

What does this PR do / how does this improve the operators?

Error Handling - on a failure, the request is always re-queued. For 3 errors it status is reconciling, else error
Update on ResourceIDs - create saves the resourceIDs to status, Delete uses this saved list and then clears the list again.
Reconcile on errors - Continues reconciling on an error. I tested the case where the specified HostingDeployment is yet in creating state, the HAP waits till it is up and then applies to the new HD.

Which issue(s) does this PR fix?
Fixes #
Special notes for the reviewer:
Does this PR require changes to documentation?
All Submissions:

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you written or refactored unit tests to cover the change?
[ ] Have you ran all unit tests and ensured they are passing?
[ ] Have you manually tested each feature that is being added/modified?
[ ] Have you ensured you have not introduced linting errors?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

reviewed, wait for some conversations to resolve


Added alternate line/bar chart icons

Icon Request

Icon name: bar-chart-*, line-chart
Use case: Alternate style for line and bar chart icons.

@karsa-mistmere Nice I thinks these looks great


[Bug] No zoomed in image

Describe the bug
Lens only blurs the background and show the lens border, but not the actual zoomed in picture.
To Reproduce
Leftclick on a picture popout
Expected behavior
A zoomed in version of the picture appears within the lens.
Add any other context about the problem here.
Whenever i open an image popout, i get a CORS error:
Access to fetch at 'https://media.discordapp.net/attachments/XXXXXX/XXXXX/unknown.png?width=1172&height=201' from origin 'https://canary.discord.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

I can not reproduce, everything works fine. I haven't used direct image loading for a lens for a long time... I literally copy the image layer to use in the lens.
url with your image looks very strange

maybe another plugin is interfering, will try in a clean instance of powercord

Cannot reproduce in a clean instance without other plugins, closing this ig


TypeError: this.sourceExpression.connect is not a function

I'm submitting a bug report

Library Version:
2.0.0

Please tell us about your environment:

Operating System:
Windows 10

Node Version:
8.11.1

NPM Version:
5.6.0

Browser:
Chrome 66

Language:
all

Current behavior:
When there is an error in binding expression in Aurelia template, like:
<input value.bind="dto..firstName" />
Stack trace has no information that would help figure where the error originates from. For example:

Uncaught TypeError: this.sourceExpression.connect is not a function at ChildInterpolationBinding.connect (MarkerClusterGroup.Refresh.js:110) at enqueueBindingConnect (MarkerClusterGroup.Refresh.js:110) at ChildInterpolationBinding.bind (MarkerClusterGroup.Refresh.js:110) at View.bind (MarkerClusterGroup.Refresh.js:110) at If._show (MarkerClusterGroup.Refresh.js:110) at If._update (MarkerClusterGroup.Refresh.js:110) at If.conditionChanged (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.selfSubscriber (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.call (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.setValue (MarkerClusterGroup.Refresh.js:110) at If.descriptor.set [as condition] (MarkerClusterGroup.Refresh.js:110) at Object.setValue (MarkerClusterGroup.Refresh.js:110) at Binding.updateTarget (MarkerClusterGroup.Refresh.js:110) at Binding.call (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.callSubscribers (MarkerClusterGroup.Refresh.js:110) at BehaviorPropertyObserver.call (MarkerClusterGroup.Refresh.js:110)

Example stack trace is for template fetched from server, therefore all source-code line references point to the same, random line of code (MarkerClusterGroup.Refresh.js:110) . For bundled template, stack trace is similar, but with source-code line numbers being correct. However, both stack traces do not help developer figure where the error originates from.
Expected/desired behavior:

What is the expected behavior?

Show meaningful message to help developer determine what the problem is.  At least:

Invalid binding expression: "dto..firstName"

@fkleuver could it be any failure to parse?

@Alexander-Taran The only scenario where it's (technically) valid syntax is following numeric literals. 2..toString() mean "convert 2 to a float, then .toString()" it, but binding has never supported that syntax, and I'm reluctant on implementing it unless someone actually needs it.
So in the next version I'll just make it throw whenever it sees two consecutive periods. Clearer to everyone. Pr coming soon.

@nenadvicentic he did.. yes (-:

@nenadvicentic @Alexander-Taran The parser generally already does that.
In simplified terms, after an access expression, the parser loops and expects any of these:

A dot, which is then consumed and proceeds to the next iteration to parse the member expression
An identifier token, which will be the member expression
A terminal token (any of ( ) } [ , & |) which marks the end of the dot-separated member expression

Just about all cases are covered by this - the terminal token lets the next token bubble back up in the parser, where it's then checked for being a valid expression start. A dot isn't, so a dot following an expression terminal will cause an error (as will other similar cases)
The only reason the double dot slips through is because that loop above will happily keep consuming dot tokens even if they come consecutively. So it must explicitly keep track of, and check for two of them in a row.
This wouldn't be needed if the parser also scanned for the ellipsis token (...) which will inherently cause it to throw if there are ever two dots, but there's no point implementing that in this parser without actually implementing the spread/rest functionality, since it's a slight performance degradation.

@fkleuver understood. so you are covering the not yet covered case.. great

@Alexander-Taran What do you mean?

@Alexander-Taran If you're referring to bigopon's comment, I'm working on a commit to cover those cases.


Factor power control, input and output methods into separate libraries

The problem you're addressing (if any)
Right now it's a bit messy with each DUT using a different set of control methods for power, serial, wake etc, which are selected using flags (DUT_CONNECTION_METHOD etc)
Describe the solution you'd like
Factor out each implementation into a separate library with a defined interface
i.e. wakeonlan and rte libraries for waking up, rte and pikvm for terminal output, rte and sonoff for power control, etc.
Platform configs would only include the libraries that they need.
Where is the value to a user, and who might that user be?
Makes tests simpler by having a set of well known kwds for things that are platform-specific
Enforces a stable interface for power, terminal I/O control
Describe alternatives you've considered
do nothing?
Additional context
No response

@BeataZdunczyk  This may need a bit more work to evaluate all of the places needing to be changed, but probably still valid. We need to build more concrete plan here.
A good example of how to approach this is how the options lib has been implemented: https://github.com/Dasharo/open-source-firmware-validation/tree/develop/lib/options

The Power On / Power Cycle On and similar keywords behave differently on many devices.
For example Running Power On or Power Cycle On on a device without a power control, (laptops) does nothing.
On other devices running such keyword causes the device to turn off and boot with the firmware read from the flash memory. The tests which flash the devices depend on it and it might be surprising that running a Power On keyword won't cause the newly flashed firmware to be booted.


Stone types keep changing during world tile selection

I can't find the error log since it doesn't produce any kind of errors when I checked the log. Just wanted to let you know.

It can happen when you hover your cursor to any clickable menu (even the lines on the error log).
Loaded mod :
-Harmony
-Rimthreaded
-Core
-Mod Manager

thanks for bug report. fixed in 1.1.5


End to end spin deploy failing on Windows

The setup for configuring a local installation of the platform is currently failing on Windows:
https://github.com/fermyon/spin/actions/runs/3087099411/jobs/4992111875
ParentContainsErrorRecordException: D:\a\_temp\a453c273-5a3d-4e60-95f0-fa6de281eb13.ps1:2
Line |
   2 |  (New-Object System.Net.WebClient).DownloadFile("https://github.com/de …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling "DownloadFile" with "2" argument(s): "The remote server returned an error: (403)
     | Server failed to authenticate the request. Make sure the value of Authorization header is formed
     | correctly including the signature.."

Error: Process completed with exit code 1.

@radu-matei @rajatjindal is this still ocurring?  I'm assuming we've updated/increased our Windows testing but not sure if this scenario is covered (and successful) now or not.

I think windows e2e tests were disabled completely due to disk issues. This is on my todo list for next week.


Add Chronos ansible role

Chronos
Chronos It is a distributed and fault-tolerant scheduler that runs on top of Apache Mesos that can be used for job orchestration. It supports custom Mesos executors as well as the default command executor.
Thus by default, Chronos executes sh (on most systems bash) scripts.
Chronos listens on port 4400.

[ ] needs documentation in the form of...

documentation for all the role variables
a stub in docs/components
a link in the toctree of docs/components/index.rst

[ ] chronos should be added to the control role of terraform.sample.yml as well as the comments there, where appropriate.
[ ] needs documentation for the new options for security-setup.

Looks pretty good otherwise. I'll test once you add these things :+1:

@BrianHicks are you talking about variables is security.yml?
new option in security-setup have help in them
there is no terraform in this branch yet

No, the variables in defaults/main.yml in the new role.
We document the options both places. See docs/security/security_setup.rst.
I'll open an issue for the Terraform additions since we don't have them in this branch, yet.

It's finally reviewed, tested and merged into qa/features-master-integration branch.
If there are no other issues, it can probably be merged into master branch (+ update terraform.sample.yml).

@BrianHicks, what are our next steps?  Should we open a PR to master?
Thanks!

PR to master is already open, and Brian will merge it into 0.3.1 version