An error is reported for field type conversion when a query view appears after the upgrade from 324

An error is reported when a field type conversion operation exists in the query view. This is not the case with version 324. I have reproduced the same problem in 327, 329 and 330.
Other service versions of my running environment are:
kudu 1.10
hadoop 3.1.2
java version "1.8.0_211"
CentOS Linux release 7.6.1810 (Core)
presto> show create view hive.a003.dv_pos_check_discounts;
Create View
CREATE VIEW hive.a003.dv_pos_check_discounts AS
SELECT
t1.tenant_id tenant_id
, t1.cdis_id cdis_id
, t1.cdis_bday_id cdis_bday_id
, t1.cdis_bper_id cdis_bper_id
, t1.cdis_bday_date bday_date
, t1.shop_id shop_id
, t1.cdis_olet_id cdis_olet_id
, t1.cdis_chks_id cdis_chks_id
, t1.cdis_cpty_id cdis_cpty_id
, t1.cdis_citm_id cdis_citm_id
, t1.cdis_dtyp_id cdis_dtyp_id
, COALESCE(t1.cdis_name_l1, '') cdis_name_l1
, COALESCE(t1.cdis_name_l2, '') cdis_name_l2
, COALESCE(t1.cdis_name_l3, '') cdis_name_l3
, COALESCE(t1.cdis_name_l4, '') cdis_name_l4
, COALESCE(t1.cdis_name_l5, '') cdis_name_l5
, COALESCE(t1.cdis_short_name_l1, '') cdis_short_name_l1
, COALESCE(t1.cdis_short_name_l2, '') cdis_short_name_l2
, COALESCE(t1.cdis_short_name_l3, '') cdis_short_name_l3
, COALESCE(t1.cdis_short_name_l4, '') cdis_short_name_l4
, COALESCE(t1.cdis_short_name_l5, '') cdis_short_name_l5
, t1.cdis_dgrp_id cdis_dgrp_id
, CAST(t1.cdis_seq AS integer) cdis_seq
, CAST(t1.cdis_round_total AS decimal(20, 4)) cdis_round_total
, CAST(t1.cdis_total AS decimal(20, 4)) cdis_total
, CAST(t1.cdis_round_amount AS decimal(20, 4)) cdis_round_amount
, t1.cdis_method cdis_method
, t1.cdis_type cdis_type
, t1.cdis_used_for cdis_used_for
, t1.cdis_class_key cdis_class_key
, CAST(t1.cdis_rate AS decimal(20, 4)) cdis_rate
, CAST(t1.cdis_fix_amount AS decimal(20, 4)) cdis_fix_amount
, t1.cdis_include_tax_sc_mask cdis_include_tax_sc_mask
, t1.cdis_include_pre_disc cdis_include_pre_disc
, t1.cdis_include_mid_disc cdis_include_mid_disc
, t1.cdis_apply_time cdis_apply_time
, t1.cdis_apply_loctime cdis_apply_loctime
, t1.cdis_apply_user_id cdis_apply_user_id
, t1.cdis_apply_stat_id cdis_apply_stat_id
, t1.cdis_void_time cdis_void_time
, t1.cdis_void_loctime cdis_void_loctime
, t1.cdis_void_user_id cdis_void_user_id
, t1.cdis_void_stat_id cdis_void_stat_id
, t1.cdis_void_vdrs_id cdis_void_vdrs_id
, COALESCE(t1.cdis_status, '') cdis_status
, t1.cdis_slave_id cdis_slave_id
, t1.cdis_slave_created cdis_slave_created
, t1.cdis_slave_modified cdis_slave_modified
, t1.cdis_sync_id cdis_sync_id
, t1.created created
, t1.modified modified
FROM
kudu.a003.pos_check_discounts t1
(1 row)
Query 20200304_080507_00286_pzrxu, FINISHED, 1 node
Splits: 1 total, 1 done (100.00%)
0:03 [0 rows, 0B] [0 rows/s, 0B/s]
presto>
presto>  WITH tmp_auth AS (SELECT node_id, node_type, tenant_id FROM mongodb.a003.busi_organization WHERE tenant_id = 't00010' AND status = '1' AND node_type <> '0') SELECT t1.bday_date AS bday_date, t1.shop_id AS shop_id, t1.cdis_olet_id AS olet_id, t1.cdis_chks_id AS chks_id, t1.cdis_citm_id AS citm_id, t1.cdis_name_l1 AS cdis_name, t1.cdis_bday_id AS cdis_bday_id, t1.cdis_total AS cdis_total, t1.cdis_dtyp_id AS cdis_dtyp_id, t1.tenant_id AS tenant_id, t1.cdis_id AS cdis_id, t1.cdis_rate AS cdis_rate, t1.cdis_round_total AS cdis_round_total, CASE WHEN coalesce(t1.cdis_citm_id, '') != '' THEN 'Item Discount' ELSE 'Check Discount' END AS Classfiy FROM hive.a003.dv_pos_check_discounts AS t1 WHERE (t1.tenant_id = 't00010') AND t1.shop_id IN (SELECT node_id FROM tmp_auth WHERE node_type = '1') LIMIT 100;
Query 20200304_075936_00283_pzrxu, FAILED, 5 nodes
Splits: 209 total, 1 done (0.48%)
0:01 [8 rows, 8B] [14 rows/s, 14B/s]
Query 20200304_075936_00283_pzrxu failed: Cannot cast VARCHAR '2018-01-15 04:56:51' to DECIMAL(20, 4). Value is not a number.
Below is the server.log
2020-03-04T15:58:03.170+0800	INFO	dispatcher-query-595	io.prestosql.event.QueryMonitor	TIMELINE: Query 20200304_075803_00282_pzrxu :: Transaction:[038e66db-b27c-4229-9a32-b4c516e32e5a] :: elapsed 149ms :: planning 72ms :: waiting 14ms :: scheduling 34ms :: running 28ms :: finishing 15ms :: begin 2020-03-04T15:58:03.013+08:00 :: end 2020-03-04T15:58:03.162+08:00
2020-03-04T15:59:37.640+0800	ERROR	remote-task-callback-845	io.prestosql.execution.StageStateMachine	Stage 20200304_075936_00283_pzrxu.2 failed
io.prestosql.spi.PrestoException: Cannot cast VARCHAR '2018-01-15 04:56:51' to DECIMAL(20, 4). Value is not a number.
at io.prestosql.type.DecimalCasts.varcharToLongDecimal(DecimalCasts.java:499)
at io.prestosql.$gen.CursorProcessor_20200304_075937_470.project_10(Unknown Source)
at io.prestosql.$gen.CursorProcessor_20200304_075937_470.process(Unknown Source)
at io.prestosql.operator.ScanFilterAndProjectOperator$RecordCursorToPages.process(ScanFilterAndProjectOperator.java:312)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221)
at io.prestosql.operator.WorkProcessorUtils.access$000(WorkProcessorUtils.java:37)
at io.prestosql.operator.WorkProcessorUtils$YieldingProcess.process(WorkProcessorUtils.java:181)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221)
at io.prestosql.operator.WorkProcessorUtils.lambda$processStateMonitor$2(WorkProcessorUtils.java:200)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorUtils.lambda$flatten$6(WorkProcessorUtils.java:277)
at io.prestosql.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:319)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorUtils$3.process(WorkProcessorUtils.java:306)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221)
at io.prestosql.operator.WorkProcessorUtils.lambda$processStateMonitor$2(WorkProcessorUtils.java:200)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorUtils.getNextState(WorkProcessorUtils.java:221)
at io.prestosql.operator.WorkProcessorUtils.lambda$finishWhen$3(WorkProcessorUtils.java:215)
at io.prestosql.operator.WorkProcessorUtils$ProcessWorkProcessor.process(WorkProcessorUtils.java:372)
at io.prestosql.operator.WorkProcessorSourceOperatorAdapter.getOutput(WorkProcessorSourceOperatorAdapter.java:148)
at io.prestosql.operator.Driver.processInternal(Driver.java:379)
at io.prestosql.operator.Driver.lambda$processFor$8(Driver.java:283)
at io.prestosql.operator.Driver.tryWithLock(Driver.java:675)
at io.prestosql.operator.Driver.processFor(Driver.java:276)
at io.prestosql.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:1075)
at io.prestosql.execution.executor.PrioritizedSplitRunner.process(PrioritizedSplitRunner.java:163)
at io.prestosql.execution.executor.TaskExecutor$TaskRunner.run(TaskExecutor.java:484)
at io.prestosql.$gen.Presto_330____20200302_072006_2.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2020-03-04T15:59:37.878+0800	INFO	dispatcher-query-600	io.prestosql.event.QueryMonitor	TIMELINE: Query 20200304_075936_00283_pzrxu :: Transaction:[50da18b0-672c-4283-a6e2-1235a08a7edc] :: elapsed 497ms :: planning 275ms :: waiting 87ms :: scheduling 119ms :: running 126ms :: finishing 0ms :: begin 2020-03-04T15:59:37.145+08:00 :: end 2020-03-04T15:59:37.642+08:00

Other service versions of my running environment are:
kudu 1.10
hadoop 3.1.2
java version "1.8.0_211"
CentOS Linux release 7.6.1810 (Core)

Query 20200304_075936_00283_pzrxu failed: Cannot cast VARCHAR '2018-01-15 04:56:51' to DECIMAL(20, 4). Value is not a number.

Obviously, such cast was never allowed, so there is some other problem.
@fly0512 can you try to dissect this eg by running SELECT some_column FROM your_kudu_table and see whether we return same data for each column in 324 vs 330?
You can also use SELECT checksum(some_column) .. instead of eye-balling the results.

When I used the view's query Kudu field statement (as listed below) to query directly, the result returned was correct.
SELECT
t1.tenant_id tenant_id
, t1.cdis_id cdis_id
, t1.cdis_bday_id cdis_bday_id
...
FROM
kudu.a003.pos_check_discounts t1
Crucially, the same query did not fail in version 324.

@findepi
According to what you said, using checksum to query the data in Kudu table, no difference was found between 324 and 330.

The kudu connector was identified as the cause of the problem.The following issues have been moved to.
https://github.com/prestosql/presto/issues/3170


What does imu_sensor_broadcaster controller do and how to use it?

I have tried to read the code and follow the demo controllers repository but really cannot figure out what is the purpose of imu_sensor_broadcaster and how to use it. Can someone explain?
I have used the diff_drive_controller several times and love the functionality and I was wondering what I can do with the out of the box imu_sensor_broadcaster. The only two parameters it takes is sensor name and frame_id unlike diff_drive_controller which takes so many and does a lot.
Also, tried to read the code in the demo repository for rrbot with sensor to see if a custom imu broadcaster can be created and it looks like you are supposed to connect to real hardware sensor from within the derived class that implements hardware_interface::SensorInterface to read and publish the data. It makes sense for the custom controller but if the imu_sensor_broadcaster does something out of box would like to use that first. But there is hardly any documentation on that so any help in what it does and what config to feed it would be much appreciated. Thanks.

One way to see the imu_sensor_broadcaster is a simple bridge between the ros2_control C++ interface world and the ros2 middleware world. Same for the joint_state_brodcaster.
From your question you may belooking for a state estimator that you could use for building a controller by composition of other ros2_controllers. Thanks to @destogl with the chained controller this is a functionality that is available.

Thanks for the quick response @olivier-stasse. My hope was, if I wanted to integrate e.g. an MPU6050 or BMI160 IMU and I have c++ code to interface with the sensor, how would I use that with the imu_sensor_broadcaster? Or do I have to write a custom controller that implements SensorInterface in this scenario? A similar situation for the diff drive controller robot would be - just use the ros2_control out of box diff_drive_controller and then build the custom hardware interface e.g. for dynamixel
and then in the urdf configure the robot to use that dynamixel hardware interface and then it all works together.
Basically, high level steps to get it to work with diff drive controller and custom hardware interface would be something like this:

create a custom hardware interface e.g. dynamixel or odrive etc
setup controller.yaml file so it has diff_drive_controller and all its params
in URDF configure the ros2_control node which refers to the hardware interface and all the parameters it needs
in launch file start all the appropriate controllers

would the steps to use the imu_sensor_broadcaster similar and still requires that you write that custom hardware interface with the imu?
I'm trying to figure out how to use it as a bridge if I have a hardware library to read the sensor and may be that's not what it does. And I still need to write code for a custom controller that reads the sensor and publishes the sensor data. The question in that case would be what is the value that imu_sensor_broadcaster brings where the custom controller could directly publish the sensor data.
Hope I'm able to articulate the question better.

Thanks for the quick response @olivier-stasse.

You are welcome.

My hope was, if I wanted to integrate e.g. an MPU6050 or BMI160 IMU and I have c++ code to interface with the sensor, how would I use that with the imu_sensor_broadcaster? Or do I have to write a custom controller that implements SensorInterface in this scenario? A similar situation for the diff drive controller

You will need to implement a SensorInterface for your IMU.

robot would be - just use the ros2_control out of box diff_drive_controller and then build the custom hardware interface e.g. for dynamixel and then in the urdf configure the robot to use that dynamixel hardware interface and then it all works together.

There is already a ros2_control driver for dynamixel:
https://github.com/youtalk/dynamixel_control

Basically, high level steps to get it to work with diff drive controller and custom hardware interface would be something like this:
1. create a custom hardware interface e.g. dynamixel or odrive etc

2. setup controller.yaml file so it has diff_drive_controller and all its params

3. in URDF configure the ros2_control node which refers to the hardware interface and all the parameters it needs

4. in launch file start all the appropriate controllers

would the steps to use the imu_sensor_broadcaster similar and still requires that you write that custom hardware interface with the imu?

The imu_sensor_broadcaster will read the sensor value that you provided through your SensorInterface and publish it in a topic. It can be then used by the Navigation stack to update the odometry. If you have a laser or a RGB-D camera then this is allowing to use the acml algorithm. This is what you gain by going through ros2_control

I'm trying to figure out how to use it as a bridge if I have a hardware library to read the sensor and may be that's not what it does. And I still need to write code for a custom controller that reads the sensor and publishes the sensor data. The question in that case would be what is the value that imu_sensor_broadcaster brings where the custom controller could directly publish the sensor data.
Hope I'm able to articulate the question better.

I think the question is answered, therefew closing this.


Add a time machine to allow user to travel through time

This lets user inspect historical counting data.

FYI: Mobile users won't see insight from this feature. Mobile screens are too small to see the buttons and numbers at the same time.

Personally, we can go with the current implementation.
What do you think?


Move special services to specific folders.

Problem
Move special services to specific folders.

Please remove the 'started' firewalld rules that have been added by your previous PR (https://github.com/Azure/sap-automation/commit/839457ba65054092131465c7e36f1c0a629cedee#diff-1512b36d361e6a66b5120835a2db66859b2c0e9c61b580b50927bc3efdcd6751R29, https://github.com/Azure/sap-automation/commit/839457ba65054092131465c7e36f1c0a629cedee#diff-1512b36d361e6a66b5120835a2db66859b2c0e9c61b580b50927bc3efdcd6751R48 and https://github.com/Azure/sap-automation/commit/839457ba65054092131465c7e36f1c0a629cedee#diff-1512b36d361e6a66b5120835a2db66859b2c0e9c61b580b50927bc3efdcd6751R109. At this moment the firewall should be disable during the installation.

Please remove the 'started' firewalld rules that have been added by your previous PR (839457b#diff-1512b36d361e6a66b5120835a2db66859b2c0e9c61b580b50927bc3efdcd6751R29, 839457b#diff-1512b36d361e6a66b5120835a2db66859b2c0e9c61b580b50927bc3efdcd6751R48 and 839457b#diff-1512b36d361e6a66b5120835a2db66859b2c0e9c61b580b50927bc3efdcd6751R109. At this moment the firewall should be disable during the installation.

Sure


Use AWS profile / env variables.

I'm not real sure what's going on here, but it seems like this tool doesn't use the AWS profile env variables correctly. See below.
$ AWS_DEFAULT_PROFILE=my-s3-artifacts AWS_DEFAULT_REGION=us-west-2 AWS_PROFILE=my-s3-artifacts deb-s3 upload --bucket my-deb-s3 ./nrdc-debian.deb
>> Retrieving existing manifests
>> Examining package file nrdc-debian.deb
>> Uploading packages and new manifests to S3
   -- Transferring pool/stable/n/nr/nrdc-debian.deb
Traceback (most recent call last):
        27: from /usr/local/bin/deb-s3:23:in `<main>'
        26: from /usr/local/bin/deb-s3:23:in `load'
        25: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/bin/deb-s3:9:in `<top (required)>'
        24: from /Library/Ruby/Gems/2.6.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
        23: from /Library/Ruby/Gems/2.6.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
        22: from /Library/Ruby/Gems/2.6.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
        21: from /Library/Ruby/Gems/2.6.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
        20: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/cli.rb:248:in `upload'
        19: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/cli.rb:248:in `each_value'
        18: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/cli.rb:250:in `block in upload'
        17: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/manifest.rb:107:in `write_to_s3'
        16: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/manifest.rb:107:in `each'
        15: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/manifest.rb:109:in `block in write_to_s3'
        14: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/utils.rb:103:in `s3_store'
        13: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/utils.rb:103:in `open'
        12: from /Library/Ruby/Gems/2.6.0/gems/deb-s3-0.11.2/lib/deb/s3/utils.rb:105:in `block in s3_store'
        11: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-s3-1.93.0/lib/aws-sdk-s3/client.rb:11267:in `put_object'
        10: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/seahorse/client/request.rb:72:in `send_request'
         9: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
         8: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
         7: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/seahorse/client/plugins/request_callback.rb:71:in `call'
         6: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
         5: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
         4: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:22:in `call'
         3: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-s3-1.93.0/lib/aws-sdk-s3/plugins/accelerate.rb:50:in `call'
         2: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-s3-1.93.0/lib/aws-sdk-s3/plugins/dualstack.rb:36:in `call'
         1: from /Library/Ruby/Gems/2.6.0/gems/aws-sdk-s3-1.93.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/Library/Ruby/Gems/2.6.0/gems/aws-sdk-core-3.113.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call': Access Denied (Aws::S3::Errors::AccessDenied)

Same credentials work fine with aws s3 cp:
$ AWS_DEFAULT_PROFILE=my-s3-artifacts AWS_DEFAULT_REGION=us-west-2 AWS_PROFILE=my-s3-artifacts aws s3 cp nrdc-debian.deb s3://my-deb-s3/
upload: ./nrdc-debian.deb to s3://my-deb-s3/nrdc-debian.deb

I have to second the workaround suggested by @9to6
I believe the core issue is that the visibility is defaulting to public so it is trying to make that package publicly available which conflicts with bucket s3 permissions. So I think less an issue than easy to misunderstand/miss documentation. I think defaulting to private visibility is probably a better choice from a security perspective.


UAVCAN ESC don't seem to respond the way they should

http://logs.px4.io/plot_app?log=155832f2-b37e-44ae-a81e-fb9c8dd5de02

Using: https://github.com/PX4/Firmware/pull/6795
This log shows a VTOL flight where the vehicle lost attitude and height control after the back transition. Observations:

power consumption of the whole system is very low after the back transition even though the thrust setpoint goes to full
the feedback from the ESCs suggest they are doing something but also that for example one motor is still turned off
attitude tracking and performance in general is fine at takeoff and before the front transition
the UAVCAN ESC status is shifted in time and logged ~2 seconds too early (or the rest too late)

Were you flying with Sapog or PX4esc? Those are two different codebases. It seems like Sapog might have had spinup issues:
https://github.com/PX4/sapog/pull/22

@pavel-kirienko Can you chime in?

Hm, not sure, the quad setup from Michael/Mathieu?
This happened now twice in flight, but never on the bench (did 10 bench tests at least today)

The quad setup is Sapog. Can you upgrade them and re-test? I would not be surprised at all if this is related.

And do you have bandwidth to look into the logging issue?

can pick up synchronization if the rotor is already rotating.

Significantly more reliable operation during rapid acceleration and deceleration, especially at high advance angles.

Well that sounds very suspicious..

@AndreasAntener Is it true that you were restarting the motors in flight (this is what I'm reading from the plots)? If so, then indeed, it could be caused by the spinup issues I've been fixing in the last few days. You might find the new beta to perform noticeably better.

Michael and I figured out the logging issue today, fix incoming.

Sorry my bad, I guess you mean the timing issue, no not that (but the multi instance problem which is not logging related)

@pavel-kirienko yes that is true. Which would explain why we cannot reproduce it on the bench. What's the easiest to upgrade (sorry I'm a UAVCAN newbie here)

@AndreasAntener this should help: https://dev.px4.io/uavcan-node-firmware.html#firmware-installation-on-the-autopilot

Thanks. Stupid question: what hardware version do I have? :)

You have v1.0 I guess.
On Mar 13, 2017 12:43 AM, "Andreas Daniel Antener"<EMAIL_ADDRESS>wrote:

Thanks. Stupid question: what hardware version do I have? :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PX4/Firmware/issues/6796#issuecomment-285979216, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADJUZJROcVJ0aU20A6Jf8OuImitRKM3Jks5rlGcLgaJpZM4Maqhj
.

@AndreasAntener fixed in https://github.com/PX4/sapog/pull/22. Version 2.0 should be officially released before the end of the week.

Should we close it, or is anybody willing to volunteer and test it? My own tests indicate that the issue is fixed. @mhkabir @AndreasAntener please advice.

@eyeam3 Will be testing the latest Sapog release within the next few days.

@pavel-kirienko @AndreasAntener Tested today with Orel20 and Sapog v2.2. I first tried if my drone was able to recover from a free-fall and then I tried to flip the kill switch during ~0.5s. The motors were able to restart successfully.

Below, the graph of the current consumption of each ESC:

Thanks, Mathieu.


Markdown Images Broken in 0.62.0

What version of Hugo are you using (hugo version)? 0.62.0

$ hugo version

Does this issue reproduce with the latest release? Yes
Hello,
I am trying to upgrade from 0.58.3 to 0.62.0 and encountered some bugs. I have fixed the HTML rendering one but I have noticed that markdown images no longer render at all and instead just show the markdown used as text.
Markdown used example: ![Screenshot of the order summery of a InnoHosting UK shared hosting package.](/img/2019/ukfake1.png)

I can't reproduce the issue. Generally speaking, images are working fine, so we're going to have to dig deeper. Can you show the html output? Maybe a more complete example (perhaps the surrounding markdown is throwing off the parser)?

I can't reproduce the issue. Generally speaking, images are working fine, so we're going to have to dig deeper. Can you show the html output? Maybe a more complete example (perhaps the surrounding markdown is throwing off the parser)?

Example:
`

 The Fake 1080P Action Camera Being Sold by Argos

[Home]

[Blog]

[Scam Warnings]

 [Reviews]

[Technology]

[Videos]

[Others]

The Fake 1080P Action Camera Being Sold by Argos
Date Published:  16.10.2019

Argos is one of the most well-known retailers in the UK. With the company having over eight-hundred stores across the country, you are rarely far away from one of its locations.
Like many other retailers, Argos also has a large number of items on some kind of special offer at any given time. One of the products Argos has on sale in its clearance section is a Vibe 1080p Action Camera which at just £14.99 sounds like a bargain.
The action camera listed claims to be able to record video at 1080p/30FPS and take photos at 16 megapixels. The fact that the Vibe records at 1080P was confirmed to a user on the questions and answers section of the product page.

![Screenshot of a Alibaba for a Module that makes use of the H62 sensor.](/img/2019/argos2.jpg)

## The Vibe Action Camera is not 1080P ##
To me, a £15 1080p action camera just sounds too good to be true. This feeling of the deal being too good to be true was further correlated when I watched some of the test videos that showed the action camera to have such bad video quality that there was no way the optical resolution was anywhere near 1080p.

![A screenshot comparing downsampled 720p with the original 1080p video.](/img/2019/7201080fake.jpg)

I took a screenshot of one of the test videos. Then I made another copy of that screen which I downsampled to 720P in RIOT and re-sized that to 1080p in a photo editing programme.
There was almost no difference between the original “1080p” screenshot and the downscaled 720p (and re-enlarged to 1080p) screenshot. All test videos I saw had no visual difference between the two resolution which would indicate that the 1080p mode is fake and is in reality just 720p with interpolation used to fake a higher resolution.
The H62 CMOS Sensor

![Screenshot of a Alibaba for a Module that makes use of the H62 sensor.](/img/2019/h62.jpg)

After seeing from the test videos that the Vibe action camera was incapable of true 1080p video, I noticed one of the unboxing videos showed the specs list on the back of the box. Within those specs list the action camera was listed as having an “H62” sensor.
Doing a search around alibaba for “H62 Cmos” showed the sensor to be very commonly used in cheap CCTV and action cameras. Looking through the listings, you find that the “H62” sensor only has a resolution of 1280x960. This makes it impossible for the Vibe Action Camera to meets its specs of being able to record 1920x1080 video.
The Argos Support Runaround
You would think being such a well known and trusted retailer that Argos would have taken this issue seriously. But when I submitted questions to Argos support over Facebook, they said they wanted me to use their website to ask a question to the questions and answers team.
The same team that just read off the specs list and told a customer the camera was capable of 1080p/30. Not the type of people who you would expect to answer questions on complex topics such as detailed specs of the underlining sensor the action camera used.
After which, I put more pressure on them by telling them straight that I thought the product was fraudulently overstating its’ capabilities. They came back to me by claiming  the camera that you needed a class 10 micro-SD card for it to record in 1080p but looking at some of the videos it is obvious that the camera deals with memory that is too slow by simply dropping frames.
Another claim Argos support made is that you need a big micro-SD card to record at 1080p, though any mico-SD nowadays will be above 8GB and they never backed this up with anything and I have not seen one reviewer claim to have the camera limit the resolution.
 To which I was told that there was no email address for head office and would have to send them a letter by the postal system. The idea that Argos does not have an email address for their head office in this day and age comes off as being an unfunny joke.
This runabout is not something anyone should ever expect to see when trying to bring the companies attention to the fact that maybe one of the products they are selling may not function as advertised.
Image sources and Credits:

Header Image (modified to add action camera):
Argos Extra, Waterfront Retail Park, Barry
cc-by-sa/2.0 -
© Jaggery - geograph.org.uk/p/6264996

Video from which the resolution screenshot came from:
Unboxing and Review | Vibe 1080p Action Camera from Argos! By willcaddy

Alibaba listing for the Module that makes use of the H62 sensor:
NEW Cheap Model 1.0MP 4 IN 1 CCTV Camera Module PCB SOI H62 With V20E

 <sidebartext>WorldofMatthew menu:</sidebartext>

 The WorldofMatthew sidebar provides convenient links to featured pages around this website.

 <sidebartext>WorldofMatthew Links:</sidebartext>

<sidebartext> Contact Me</sidebartext>

  <sidebartext>Free Audiobooks:</sidebartext>

  <sidebartext> Free Remastered Public Domain Audiobooks</sidebartext>

  <sidebartext> Free Audiobooks for Children</sidebartext>

© Matthew Christopher Morgan 2015-2019

`

I can't reproduce the issue. Generally speaking, images are working fine, so we're going to have to dig deeper. Can you show the html output? Maybe a more complete example (perhaps the surrounding markdown is throwing off the parser)?

Here is an example of a broken page: https://pastebin.com/k1puRzAP

@Worldofmatthew you need to provide the Markdown that does not work. It's impossible to guess from the output.

@Worldofmatthew you need to provide the Markdown that does not work. It's impossible to guess from the output.

Here is the full markdown of that page:
https://pastebin.com/MrSEcRfX

you need empty lines to separate your html from your markdown. try changing it to:

![img](path/to.jpg)

you also have a broken br tag in there which is probably gonna mess you up later
<br

you need empty lines to separate your html from your markdown. try changing it to:

![img](path/to.jpg)

Why is extra spacing suddenly required that is not in normal HTML?
Now to fix a bunch of articles and hope the rules don't randomly change again.

https://gohugo.io/news/0.60.0-relnotes/


fix: json_path_exists null results

I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
Closes #4865.
What's changed and what's your intention?
As explained in referred issue, the result should be null if any of the parameters is null .
Checklist

[ ] I have written the necessary rustdoc comments.
[x] I have added the necessary unit tests and integration tests.
[ ] This PR requires documentation updates.

Thanks @Kev1n8 ❤

To be clear, I'd like to specify the expected results of all SQLs below:
SELECT json_path_exists(NULL, '$.a');
NULL

SELECT json_path_exists(parse_json('{}'), NULL);
NULL

SELECT json_path_exists(parse_json('null'), '$.a');
false

SELECT json_path_exists(parse_json('{}'), 'null');
false

Please let me know if anything is incorrect.

To be clear, I'd like to specify the expected results of all SQLs below:
SELECT json_path_exists(NULL, '$.a');
NULL

SELECT json_path_exists(parse_json('{}'), NULL);
NULL

SELECT json_path_exists(parse_json('null'), '$.a');
false

SELECT json_path_exists(parse_json('{}'), 'null');
false

Please let me know if anything is incorrect.

looks good

Reduce some unnecessary checks. Please check out.

Thanks! ❤

Thanks for reviewing! ❤


Ability to set nextButtonText and backButtonText to components

Hi
Would like to do something like:
<StepZilla
	steps={steps}
	nextTextOnFinalActionStep={"FooBar"}
	nextButtonText={<Fragment>Next </Fragment>}
	backButtonText={<Fragment> Back</Fragment>}
/>

Although this works, it gives a PropTypes warning (nextButtonText / backButtonText must be string) Could you make the validation so that it also accepts a react component?

created pr for same.

Is there any update on this feature request?  The PR is still open and I still get warnings setting backButtonText and nextButtonText to components instead of text.  I also opened #72 on this issue also and @zeel mentioned that there might be a backButtonNode and nextButtonNode option?  Thanks!  I use this library in multiple projects.


Debian 9.4 kernel  with rocm 1.7.137: calc_freesync_range and dce110_stream_encoder_dp_blank warnings

When running rocm 1.7.137 built against the on the Debian 9.4 kernel 4.9.82-1+deb9u3 with an RX580 connected to an LG 27UD88 monitor via DisplayPort 1.2, I see some freesync and DC register access warnings [1].
Let me know if more debug is useful.
-- [1]
[    0.000000] Linux version 4.9.0-6-amd64<EMAIL_ADDRESS>(gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02)
...
[    2.911377] [drm] Initialized
[    2.915264] amdkcl: loading out-of-tree module taints kernel.
[    2.918501] [drm] Using P2A bridge for configuration
[    2.918503] [drm] AST 2400 detected
[    2.918514] [drm] Analog VGA only
[    2.918526] [drm] dram -1094967296 6 16 01000000
[    2.918570] [TTM] Zone  kernel: Available graphics memory: 65862450 kiB
[    2.918570] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[    2.918571] [TTM] Initializing pool allocator
[    2.918573] [TTM] Initializing DMA pool allocator
[    2.921672] checking generic (d0000000 300000) vs hw (a9000000 1000000)
[    3.019125] [drm] amdgpu kernel modesetting enabled.
[    3.025136] kfd kfd: Initialized module
[    3.025291] checking generic (d0000000 300000) vs hw (d0000000 10000000)
[    3.025293] fb: switching to amdgpudrmfb from EFI VGA
[    3.025686] [drm] initializing kernel modesetting (POLARIS10 0x1002:0x67DF 0x1043:0x0521 0xE7).
[    3.025707] [drm] register mmio base: 0xE0E00000
[    3.025708] [drm] register mmio size: 262144
[    3.025726] [drm] probing gen 2 caps for device 8086:2030 = 57a3903/e
[    3.025729] [drm] probing mlw for device 8086:2030 = 57a3903
[    3.025739] [drm] UVD is enabled in VM mode
[    3.025740] [drm] VCE enabled in VM mode
[    3.025951] amdgpu 0000:65:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[    3.026007] ATOM BIOS: 115-D009PI2-101
[    3.026015] [drm] GPU post is not needed
[    3.026031] [drm] vm size is 512 GB, block size is 15-bit, fragment size is 9-bit
[    3.026999] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_mc.bin
[    3.027007] amdgpu 0000:65:00.0: VRAM: 8192M 0x000000F400000000 - 0x000000F5FFFFFFFF (8192M used)
[    3.027009] amdgpu 0000:65:00.0: GTT: 256M 0x0000000000000000 - 0x000000000FFFFFFF
[    3.027017] [drm] Detected VRAM RAM=8192M, BAR=256M
[    3.027018] [drm] RAM width 256bits GDDR5
[    3.027083] [TTM] Zone  kernel: Available graphics memory: 123492093 kiB
[    3.027084] [TTM] Initializing pool allocator
[    3.027089] [TTM] Initializing DMA pool allocator
[    3.027107] [drm] amdgpu: 8192M of VRAM memory ready
[    3.027108] [drm] amdgpu: 128637M of GTT memory ready.
[    3.027117] [drm] GART: num cpu pages 65536, num gpu pages 65536
[    3.027180] [drm] PCIE GART of 256M enabled (table at 0x000000F400040000).
[    3.027243] amdgpu 0000:65:00.0: amdgpu: using MSI.
[    3.027259] [drm] amdgpu: irq initialized.
[    3.027279] amdgpu: [powerplay] amdgpu: powerplay sw initialized
[    3.027555] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_pfp_2.bin
[    3.027836] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_me_2.bin
[    3.028025] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_ce_2.bin
[    3.028026] [drm] Chained IB support enabled!
[    3.028292] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_rlc.bin
[    3.028900] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_mec_2.bin
[    3.029621] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_mec2_2.bin
[    3.029685] amdgpu 0000:65:00.0: fence driver on ring 0 use gpu addr 0x0000000000400040, cpu addr 0xffffbe954de81040
[    3.029725] amdgpu 0000:65:00.0: fence driver on ring 1 use gpu addr 0x00000000004000c0, cpu addr 0xffffbe954de810c0
[    3.029773] amdgpu 0000:65:00.0: fence driver on ring 2 use gpu addr 0x0000000000400140, cpu addr 0xffffbe954de81140
[    3.029808] amdgpu 0000:65:00.0: fence driver on ring 3 use gpu addr 0x00000000004001c0, cpu addr 0xffffbe954de811c0
[    3.029845] amdgpu 0000:65:00.0: fence driver on ring 4 use gpu addr 0x0000000000400240, cpu addr 0xffffbe954de81240
[    3.029881] amdgpu 0000:65:00.0: fence driver on ring 5 use gpu addr 0x00000000004002c0, cpu addr 0xffffbe954de812c0
[    3.029918] amdgpu 0000:65:00.0: fence driver on ring 6 use gpu addr 0x0000000000400340, cpu addr 0xffffbe954de81340
[    3.029953] amdgpu 0000:65:00.0: fence driver on ring 7 use gpu addr 0x00000000004003c0, cpu addr 0xffffbe954de813c0
[    3.029990] amdgpu 0000:65:00.0: fence driver on ring 8 use gpu addr 0x0000000000400440, cpu addr 0xffffbe954de81440
[    3.030007] amdgpu 0000:65:00.0: fence driver on ring 9 use gpu addr 0x00000000004004e0, cpu addr 0xffffbe954de814e0
[    3.030695] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_sdma.bin
[    3.030913] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_sdma1.bin
[    3.030942] amdgpu 0000:65:00.0: fence driver on ring 10 use gpu addr 0x0000000000400560, cpu addr 0xffffbe954de81560
[    3.030990] amdgpu 0000:65:00.0: fence driver on ring 11 use gpu addr 0x00000000004005e0, cpu addr 0xffffbe954de815e0
[    3.031956] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_uvd.bin
[    3.031960] [drm] Found UVD firmware Version: 1.79 Family ID: 16
[    3.032191] amdgpu 0000:65:00.0: fence driver on ring 12 use gpu addr 0x000000f4001e5420, cpu addr 0xffffbe956025a420
[    3.032688] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_vce.bin
[    3.032691] [drm] Found VCE firmware Version: 52.4 Binary ID: 3
[    3.032760] amdgpu 0000:65:00.0: fence driver on ring 13 use gpu addr 0x00000000004006e0, cpu addr 0xffffbe954de816e0
[    3.032787] amdgpu 0000:65:00.0: fence driver on ring 14 use gpu addr 0x0000000000400760, cpu addr 0xffffbe954de81760
[    3.033491] amdgpu 0000:65:00.0: firmware: direct-loading firmware amdgpu/polaris10_k_smc.bin
[    3.091210] [drm] DAL is enabled
[    3.091337] [drm] DM_PPLIB: values for Engine clock
[    3.091338] [drm] DM_PPLIB:     30000
[    3.091339] [drm] DM_PPLIB:     60000
[    3.091340] [drm] DM_PPLIB:     90000
[    3.091340] [drm] DM_PPLIB:     116200
[    3.091341] [drm] DM_PPLIB:     123300
[    3.091342] [drm] DM_PPLIB:     127500
[    3.091342] [drm] DM_PPLIB:     131900
[    3.091343] [drm] DM_PPLIB:     136000
[    3.091344] [drm] DM_PPLIB: Warning: using default validation clocks!
[    3.091344] [drm] DM_PPLIB: Validation clocks:
[    3.091345] [drm] DM_PPLIB:    engine_max_clock: 72000
[    3.091346] [drm] DM_PPLIB:    memory_max_clock: 80000
[    3.091346] [drm] DM_PPLIB:    level           : 0
[    3.091347] [drm] DM_PPLIB: reducing engine clock level from 8 to 2
[    3.091349] [drm] DM_PPLIB: values for Memory clock
[    3.091350] [drm] DM_PPLIB:     30000
[    3.091350] [drm] DM_PPLIB:     100000
[    3.091351] [drm] DM_PPLIB:     200000
[    3.091370] [drm] DM_PPLIB: Warning: using default validation clocks!
[    3.091370] [drm] DM_PPLIB: Validation clocks:
[    3.091371] [drm] DM_PPLIB:    engine_max_clock: 72000
[    3.091372] [drm] DM_PPLIB:    memory_max_clock: 80000
[    3.091372] [drm] DM_PPLIB:    level           : 0
[    3.091373] [drm] DM_PPLIB: reducing memory clock level from 3 to 1
[    3.091375] [drm] DC: create_links: connectors_num: physical:5, virtual:0
[    3.091380] [drm] Connector[0] description:signal 32
[    3.091384] [drm] Using channel: CHANNEL_ID_DDC2 [2]
[    3.091399] [drm] Connector[1] description:signal 32
[    3.091401] [drm] Using channel: CHANNEL_ID_DDC4 [4]
[    3.091414] [drm] Connector[2] description:signal 4
[    3.091417] [drm] Using channel: CHANNEL_ID_DDC1 [1]
[    3.091430] [drm] Connector[3] description:signal 4
[    3.091433] [drm] Using channel: CHANNEL_ID_DDC3 [3]
[    3.091446] [drm] Connector[4] description:signal 2
[    3.091449] [drm] Using channel: CHANNEL_ID_DDC6 [6]
[    3.102919] [drm] Display Core initialized
[    3.102922] [drm] amdgpu: freesync_module init done ffff9822e2e87e00.
[    3.103051] [drm] link=0, dc_sink_in=          (null) is now Disconnected
[    3.103052] [drm] DCHPD: connector_id=0: dc_sink didn't change.
[    3.119906] [drm] [Detect]    [DP][ConnIdx:1] Rx Caps: 12 14 C4 01 01 00 01 40 02 02 06 00 00 00 00 ^
[    3.144087] [drm] [LKTN]    [DP][ConnIdx:1] HBR2x4 EQ failed VS=2, PE=0^
[    3.157602] [drm] [LKTN]    [DP][ConnIdx:1] HBR2x2 EQ failed VS=2, PE=0^
[    3.170763] [drm] [LKTN]    [DP][ConnIdx:1] HBR2x1 EQ failed VS=2, PE=0^
[    3.176561] [drm] [LKTN]    [DP][ConnIdx:1] HBRx4 pass VS=1, PE=1^
[    3.176850] [drm] [Detect]    [DP][ConnIdx:1] LG Ultra HD: [Block 0] 00 FF FF FF FF FF FF 00 1E 6D 09 5B B3 39 02 00 07 1A 01 04 B5 3C 22 78 9F 30 35 A7 55 4E A3 26 0F 50 54 21 08 00 71 40 81 80 81 C0 A9 C0 D1 C0 81 00 01 01 01 01 4D D0 00 A0 F0 70 3E 80 30 20 65 0C 58 54 21 00 00 1A 28 68 00 A0 F0 70 3E 80 08 90 65 0C 58 54 21 00 00 1A 00 00 00 FD 00 28 3D 87 87 38 01 0A 20 20 20 20 20 20 00 00 00 FC 00 4C 47 20 55 6C 74 72 61 20 48 44 0A 20 01 51 ^
[    3.176861] [drm] [Detect]    [DP][ConnIdx:1] LG Ultra HD: [Block 1] 02 03 11 71 44 90 04 03 01 23 09 07 07 83 01 00 00 02 3A 80 18 71 38 2D 40 58 2C 45 00 58 54 21 00 00 1E 56 5E 00 A0 A0 A0 29 50 30 20 35 00 58 54 21 00 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C8 ^
[    3.176863] [drm] dc_link_detect: manufacturer_id = 6D1E, product_id = 5B09, serial_number = 239B3, manufacture_week = 7, manufacture_year = 26, display_name = LG Ultra HD, speaker_flag = 1,
audio_mode_count = 1
[    3.176865] [drm] dc_link_detect: mode number = 0, format_code = 1, channel_count = 1, sample_rate = 7, sample_size = 7
[    3.176866] [drm] link=1, dc_sink_in=ffff9822eeb05400 is now Connected
[    3.176867] [drm] DCHPD: connector_id=1: Old sink=          (null) New sink=ffff9822eeb05400
[    3.177318] [drm] link=2, dc_sink_in=          (null) is now Disconnected
[    3.177319] [drm] DCHPD: connector_id=2: dc_sink didn't change.
[    3.177363] [drm] link=3, dc_sink_in=          (null) is now Disconnected
[    3.177364] [drm] DCHPD: connector_id=3: dc_sink didn't change.
[    3.177407] [drm] link=4, dc_sink_in=          (null) is now Disconnected
[    3.177407] [drm] DCHPD: connector_id=4: dc_sink didn't change.
[    3.177418] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.177418] [drm] Driver supports precise vblank timestamp query.
[    3.177419] [drm] KMS initialized.
[    3.178759] [drm] ring test on 0 succeeded in 14 usecs
[    3.179252] [drm] ring test on 9 succeeded in 8 usecs
[    3.179272] [drm] ring test on 1 succeeded in 9 usecs
[    3.179280] [drm] ring test on 2 succeeded in 3 usecs
[    3.179288] [drm] ring test on 3 succeeded in 3 usecs
[    3.179296] [drm] ring test on 4 succeeded in 3 usecs
[    3.179316] [drm] ring test on 5 succeeded in 9 usecs
[    3.179324] [drm] ring test on 6 succeeded in 3 usecs
[    3.179332] [drm] ring test on 7 succeeded in 3 usecs
[    3.179340] [drm] ring test on 8 succeeded in 3 usecs
[    3.179396] [drm] ring test on 10 succeeded in 5 usecs
[    3.179402] [drm] ring test on 11 succeeded in 5 usecs
[    3.206382] [drm] ring test on 12 succeeded in 1 usecs
[    3.206388] [drm] UVD initialized successfully.
[    3.306734] [drm] ring test on 13 succeeded in 5 usecs
[    3.306745] [drm] ring test on 14 succeeded in 2 usecs
[    3.306746] [drm] VCE initialized successfully.
[    3.307008] [drm] ib test on ring 0 succeeded
[    3.307150] [drm] ib test on ring 1 succeeded
[    3.307188] [drm] ib test on ring 2 succeeded
[    3.307225] [drm] ib test on ring 3 succeeded
[    3.307261] [drm] ib test on ring 4 succeeded
[    3.307297] [drm] ib test on ring 5 succeeded
[    3.307333] [drm] ib test on ring 6 succeeded
[    3.307369] [drm] ib test on ring 7 succeeded
[    3.307423] [drm] ib test on ring 8 succeeded
[    3.580751] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    3.593165] Ebtables v2.0 registered
[    3.817573] [drm] ib test on ring 9 succeeded
[    3.817614] [drm] ib test on ring 10 succeeded
[    3.817640] [drm] ib test on ring 11 succeeded
[    3.819286] [drm] ib test on ring 12 succeeded
[    3.819513] [drm] ib test on ring 13 succeeded
[    3.819738] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff9822e92a4c00, err:9, !
[    3.819916] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff9822e92a4c00, err:9, !
[    3.820012] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff9822e92a4c00, err:9, !
[    3.820100] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff9822e92a4c00, err:9, !
[    3.820185] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff9822e92a4c00, err:9, !
[    3.825046] [drm] fb mappable at 0xD03F1000
[    3.825048] [drm] vram apper at 0xD0000000
[    3.825049] [drm] size 33177600
[    3.825050] [drm] fb depth is 24
[    3.825051] [drm]    pitch is 15360
[    3.825198] fbcon: amdgpudrmfb (fb0) is primary device
[    3.825938] [drm] Atomic commit: SET crtc id 0: [ffff9822ecb68000]
[    3.825941] [drm] dc_commit_context: 1 streams
[    3.825945] [drm] core_stream 0xe36b1000: src: 0, 0, 3840, 2160; dst: 0, 0, 3840, 2160, colorSpace:1
[    3.825948] [drm]     pix_clk_khz: 266640, h_total: 4000, v_total: 2222, pixelencoder:1, displaycolorDepth:2
[    3.825950] [drm]     sink name: LG Ultra HD, serial: 145843
[    3.825951] [drm]     link: 1
[    3.839026] [drm] Link: 1 eDP panel mode supported: 0 eDP panel mode enabled: 0
[    3.843850] [drm] [LKTN]    [DP][ConnIdx:1] HBRx4 pass VS=1, PE=1^
[    3.847706] [drm] [Mode]    [DP][ConnIdx:1] {3840x2160, 4000x2222@266640Khz}^
[    3.847708] ------------[ cut here ]------------
[    3.847750] WARNING: CPU: 0 PID: 493 at /var/lib/dkms/rock/1.7.137-ubuntu/build/amd/amdgpu/../display/modules/freesync/freesync.c:434 calc_freesync_range+0x207/0x240 [amdgpu]
[    3.847776] Modules linked in: devlink ebtable_filter ebtables ip6_tables nf_log_ipv4 nf_log_common xt_LOG xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_multiport xt_conntrack nf_conntrack iptable_filter xt_DSCP iptable_mangle amdkfd(O) f2fs amdgpu(O+) amdttm(O) nls_ascii nls_cp437 vfat fat ast ttm amdkcl(O) drm_kms_helper snd_hda_codec_generic drm snd_hda_codec_hdmi i2c_designware_platform i2c_designware_core intel_rapl skx_edac edac_core x86_pkg_temp_thermal intel_powerclamp coretemp idma64 kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_intel snd_hda_codec efi_pstore snd_hda_core snd_hwdep intel_uncore snd_pcm snd_timer joydev serio_raw
snd intel_rapl_perf evdev iTCO_wdt pcspkr efivars soundcore iTCO_vendor_support shpchp mei_me intel_lpss_pci intel_lpss mfd_core
[    3.847802]  mei ioatdma wmi ipmi_si ipmi_msghandler acpi_cpufreq button tcp_bbr sch_fq efivarfs ip_tables x_tables autofs4 ext4 crc16 jbd2 fscrypto ecb mbcache btrfs raid10 raid456 async_raid6_recov
async_memcpy async_pq async_xor async_tx xor hid_generic hid_apple usbhid hid raid6_pq libcrc32c crc32c_generic raid1 raid0 multipath linear md_mod crc32c_intel aesni_intel aes_x86_64 glue_helper lrw
gf128mul ablk_helper cryptd psmouse nvme nvme_core ahci libahci igb i2c_algo_bit xhci_pci i2c_i801 dca i2c_smbus ptp xhci_hcd pps_core libata scsi_mod usbcore usb_common
[    3.847804] CPU: 0 PID: 493 Comm: systemd-udevd Tainted: G O    4.9.0-6-amd64 #1 Debian 4.9.82-1+deb9u3
[    3.847805] Hardware name: Supermicro Super Server/X11SRA-F, BIOS 1.1a 02/14/2018
[    3.847807]<PHONE_NUMBER>000000 ffffffffb392e074<PHONE_NUMBER>000000<PHONE_NUMBER>000000
[    3.847808]  ffffffffb36776be<PHONE_NUMBER>000000 ffff9822e36b1000<PHONE_NUMBER>7d7840
[    3.847809]  ffff9822eed50010 ffff9822e2e87e00<PHONE_NUMBER>fca055 ffffffffc0ad24e7
[    3.847810] Call Trace:
[    3.847815]  [] ? dump_stack+0x5c/0x78
[    3.847819]  [] ? __warn+0xbe/0xe0
[    3.847851]  [] ? calc_freesync_range+0x207/0x240 [amdgpu]
[    3.847880]  [] ? mod_freesync_notify_mode_change+0x14a/0x190 [amdgpu]
[    3.847913]  [] ? amdgpu_dm_atomic_commit_tail+0x396/0x9f0 [amdgpu]
[    3.847945]  [] ? dm_plane_helper_prepare_fb+0x1a7/0x220 [amdgpu]
[    3.847952]  [] ? commit_tail+0x3c/0x60 [drm_kms_helper]
[    3.847955]  [] ? drm_atomic_helper_commit+0x91/0xe0 [drm_kms_helper]
[    3.847958]  [] ? restore_fbdev_mode+0x14c/0x280 [drm_kms_helper]
[    3.847970]  [] ? drm_modeset_lock_all_ctx+0xa0/0xb0 [drm]
[    3.847973]  [] ? drm_fb_helper_restore_fbdev_mode_unlocked+0x2e/0x70 [drm_kms_helper]
[    3.847976]  [] ? drm_fb_helper_set_par+0x29/0x50 [drm_kms_helper]
[    3.847978]  [] ? fbcon_init+0x576/0x600
[    3.847980]  [] ? visual_init+0xd5/0x130
[    3.847981]  [] ? do_bind_con_driver+0x1d5/0x3c0
[    3.847982]  [] ? do_take_over_console+0x113/0x180
[    3.847984]  [] ? do_fbcon_takeover+0x58/0xb0
[    3.847985]  [] ? fbcon_event_notify+0x102/0x790
[    3.847988]  [] ? notifier_call_chain+0x47/0x70
[    3.847990]  [] ? __blocking_notifier_call_chain+0x41/0x60
[    3.847991]  [] ? register_framebuffer+0x212/0x360
[    3.847994]  [] ? drm_fb_helper_initial_config+0x2aa/0x450 [drm_kms_helper]
[    3.848018]  [] ? amdgpu_fbdev_init+0xce/0x100 [amdgpu]
[    3.848040]  [] ? amdgpu_device_init+0xe87/0x13e0 [amdgpu]
[    3.848042]  [] ? device_add+0x18b/0x620
[    3.848063]  [] ? amdgpu_driver_load_kms+0x88/0x280 [amdgpu]
[    3.848069]  [] ? drm_dev_register+0xa3/0xd0 [drm]
[    3.848090]  [] ? amdgpu_pci_probe+0x10f/0x140 [amdgpu]
[    3.848091]  [] ? local_pci_probe+0x44/0xa0
[    3.848092]  [] ? pci_device_probe+0x10c/0x160
[    3.848094]  [] ? driver_probe_device+0x223/0x430
[    3.848095]  [] ? __driver_attach+0xdd/0xe0
[    3.848096]  [] ? driver_probe_device+0x430/0x430
[    3.848097]  [] ? bus_for_each_dev+0x69/0xb0
[    3.848099]  [] ? bus_add_driver+0x16a/0x260
[    3.848099]  [] ? 0xffffffffc0c11000
[    3.848100]  [] ? driver_register+0x57/0xc0
[    3.848101]  [] ? 0xffffffffc0c11000
[    3.848102]  [] ? do_one_initcall+0x4e/0x180
[    3.848105]  [] ? __vunmap+0x6d/0xc0
[    3.848106]  [] ? __vunmap+0x6d/0xc0
[    3.848108]  [] ? do_init_module+0x5b/0x1ed
[    3.848110]  [] ? load_module+0x2596/0x2ab0
[    3.848111]  [] ? __symbol_put+0x60/0x60
[    3.848112]  [] ? SYSC_finit_module+0xc6/0xf0
[    3.848113]  [] ? do_syscall_64+0x8f/0xf0
[    3.848117]  [] ? entry_SYSCALL_64_after_swapgs+0x42/0xb0
[    3.848118] ---[ end trace 65afbe576d8bced5 ]---
[    3.872283] Console: switching to colour frame buffer device 480x135
[    3.934395] amdgpu 0000:65:00.0: fb0: amdgpudrmfb frame buffer device
[    3.935817] kfd kfd: Allocated 3969056 bytes on gart
[    3.935832] Virtual CRAT table created for GPU
[    3.935832] Parsing CRAT table with 1 nodes
[    3.935838] Creating topology SYSFS entries
[    3.935910] Topology: Add dGPU node [0x67df:0x1002]
[    3.935953] kfd kfd: Reserved 2 pages for cwsr.
[    3.935983] kfd kfd: added device 1002:67df
[   13.611502] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff9822e0295c00, err:9, !
...
[ 4354.010205] [drm:dm_logger_write [amdgpu]] ERROR Failed validation for stream ffff981f0a45d000, err:9, !
[11207.505923] [drm] Atomic commit: RESET. crtc id 0:[ffff9822ecb68000]
[11207.505925] [drm] dc_commit_context: 0 streams
[11207.539065] [drm:generic_reg_wait [amdgpu]] ERROR REG_WAIT timeout 10us * 3000 tries - dce110_stream_encoder_dp_blank line:930
[11207.539066] ------------[ cut here ]------------
[11207.539090] WARNING: CPU: 4 PID: 1146 at /var/lib/dkms/rock/1.7.137-ubuntu/build/amd/amdgpu/../display/dc/dc_helper.c:168 generic_reg_wait+0x145/0x190 [amdgpu]
[11207.539090] Modules linked in: tun fuse devlink ebtable_filter ebtables ip6_tables nf_log_ipv4 nf_log_common xt_LOG xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_multiport xt_conntrack
nf_conntrack iptable_filter xt_DSCP iptable_mangle amdkfd(O) f2fs amdgpu(O) amdttm(O) nls_ascii nls_cp437 vfat fat ast ttm amdkcl(O) drm_kms_helper snd_hda_codec_generic drm snd_hda_codec_hdmi
i2c_designware_platform i2c_designware_core intel_rapl skx_edac edac_core x86_pkg_temp_thermal intel_powerclamp coretemp idma64 kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul
ghash_clmulni_intel snd_hda_intel snd_hda_codec efi_pstore snd_hda_core snd_hwdep intel_uncore snd_pcm snd_timer joydev serio_raw snd intel_rapl_perf evdev iTCO_wdt pcspkr efivars soundcore
iTCO_vendor_support shpchp mei_me intel_lpss_pci intel_lpss
[11207.539115]  mfd_core mei ioatdma wmi ipmi_si ipmi_msghandler acpi_cpufreq button tcp_bbr sch_fq efivarfs ip_tables x_tables autofs4 ext4 crc16 jbd2 fscrypto ecb mbcache btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor hid_generic hid_apple usbhid hid raid6_pq libcrc32c crc32c_generic raid1 raid0 multipath linear md_mod crc32c_intel aesni_intel aes_x86_64 glue_helper lrw gf128mul ablk_helper cryptd psmouse nvme nvme_core ahci libahci igb i2c_algo_bit xhci_pci i2c_i801 dca i2c_smbus ptp xhci_hcd pps_core libata scsi_mod usbcore usb_common
[11207.539141] CPU: 4 PID: 1146 Comm: Xorg Tainted: G        W  O 4.9.0-6-amd64 #1 Debian 4.9.82-1+deb9u3
[11207.539142] Hardware name: Supermicro Super Server/X11SRA-F, BIOS 1.1a 02/14/2018
[11207.539142]<PHONE_NUMBER>000000 ffffffffb392e074<PHONE_NUMBER>000000<PHONE_NUMBER>000000
[11207.539144]  ffffffffb36776be<PHONE_NUMBER>000bb9<PHONE_NUMBER>00000a<PHONE_NUMBER>004da4
[11207.539145]<PHONE_NUMBER>000000 ffff9822e93e6900<PHONE_NUMBER>010000 ffffffffc0ad2105
[11207.539146] Call Trace:
[11207.539150]  [] ? dump_stack+0x5c/0x78
[11207.539153]  [] ? __warn+0xbe/0xe0
[11207.539175]  [] ? generic_reg_wait+0x145/0x190 [amdgpu]
[11207.539194]  [] ? dce110_stream_encoder_dp_blank+0x113/0x200 [amdgpu]
[11207.539213]  [] ? dce110_disable_stream+0xcd/0x130 [amdgpu]
[11207.539231]  [] ?
core_link_disable_stream+0x52/0x250 [amdgpu]
[11207.539250]  [] ? dm_logger_close+0x37/0x70 [amdgpu]
[11207.539268]  [] ? dce110_reset_hw_ctx_wrap+0xa3/0x1b0 [amdgpu]
[11207.539285]  [] ? dce110_apply_ctx_to_hw+0x56/0x830 [amdgpu]
[11207.539287]  [] ? up+0x12/0x60
[11207.539304]  [] ? generic_reg_get+0x2b/0x70 [amdgpu]
[11207.539321]  [] ? dc_commit_context_no_check+0xe9/0x310 [amdgpu]
[11207.539341]  [] ? amdgpu_dm_atomic_commit_tail+0x220/0x9f0 [amdgpu]
[11207.539342]  [] ? kmem_cache_alloc_trace+0xbb/0x530
[11207.539343]  [] ? __wake_up+0x34/0x50
[11207.539348]  [] ? drm_atomic_helper_setup_commit+0x315/0x380 [drm_kms_helper]
[11207.539351]  [] ? commit_tail+0x3c/0x60 [drm_kms_helper]
[11207.539353]  [] ? drm_atomic_helper_commit+0x91/0xe0 [drm_kms_helper]
[11207.539356]  [] ? drm_atomic_helper_connector_dpms+0xe8/0x190 [drm_kms_helper]
[11207.539366]  [] ? drm_mode_connector_set_obj_prop+0x64/0x80 [drm]
[11207.539371]  [] ? drm_mode_obj_set_property_ioctl+0x11b/0x160 [drm]
[11207.539375]  [] ? drm_mode_connector_property_set_ioctl+0x3e/0x60 [drm]
[11207.539379]  [] ? drm_ioctl+0x1ed/0x470 [drm]
[11207.539384]  [] ? drm_mode_connector_set_obj_prop+0x80/0x80 [drm]
[11207.539385]  [] ? do_readv_writev+0x151/0x240
[11207.539399]  [] ? amdgpu_drm_ioctl+0x49/0x80 [amdgpu]
[11207.539401]  [] ? do_vfs_ioctl+0xa2/0x620
[11207.539402]  [] ? SyS_ioctl+0x74/0x80
[11207.539403]  [] ? do_syscall_64+0x8f/0xf0
[11207.539405]  [] ? entry_SYSCALL_64_after_swapgs+0x42/0xb0
[11207.539406] ---[ end trace 65afbe576d8bced6 ]---
[11207.572695] [drm] Atomic commit: RESET. crtc id 0:[ffff9822ecb68000]

rocm 1.7.137?
This is ancient.
Also your kernel is ancient and not supported.
Debian is not supported officially either.

Hi @dblueman
As this is very old issue which is >2.5 years old, closing this.
Request you to open a new issue if you still observe the same or any new issue, responses will be faster from ROCmSupport team.
Recommend to try with the latest versions of os and ROCm before filing tickets.
Thank you.


Error to import emg3d

Dear Dieter,
I installed emg3d by pip and after that I wanted to import it but I faced with this error:
(base) mohammad@ubuntu:~$ pip3 install emg3d
Collecting emg3d
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/c1/d4/7d2a18dc68cb4e65d1b58a7cd501bfd26cbd7e9180736fbe3d02a326d547/emg3d-0.9.1-py3-none-any.whl (65kB)
    100% |████████████████████████████████| 71kB 49kB/s
Collecting numba>=0.40.0 (from emg3d)
  Downloading https://files.pythonhosted.org/packages/53/34/22b6c2ded558976b5367be01b851ae679a0d1ba994de002d54afe84187b5/numba-0.46.0-cp36-cp36m-manylinux1_x86_64.whl (3.6MB)
    100% |████████████████████████████████| 3.6MB 158kB/s
Collecting numpy>=1.15.0 (from emg3d)
  Downloading https://files.pythonhosted.org/packages/d2/ab/43e678759326f728de861edbef34b8e2ad1b1490505f20e0d1f0716c3bf4/numpy-1.17.4-cp36-cp36m-manylinux1_x86_64.whl (20.0MB)
    100% |████████████████████████████████| 20.0MB 42kB/s
Collecting scipy>=1.1.0 (from emg3d)
  Cache entry deserialization failed, entry ignored
  Downloading https://files.pythonhosted.org/packages/54/18/d7c101d5e93b6c78dc206fcdf7bd04c1f8138a7b1a93578158fa3b132b08/scipy-1.3.3-cp36-cp36m-manylinux1_x86_64.whl (25.2MB)
    100% |████████████████████████████████| 25.2MB 33kB/s
Collecting empymod (from emg3d)
  Downloading https://files.pythonhosted.org/packages/ad/01/b257911dbc987a440be8972384798a368b41be870526959eebc48142f49c/empymod-1.10.3-py3-none-any.whl (217kB)
    100% |████████████████████████████████| 225kB 304kB/s
Collecting llvmlite>=0.30.0dev0 (from numba>=0.40.0->emg3d)
  Downloading https://files.pythonhosted.org/packages/b3/93/924788871a889ead1c115ba2d43e67932a8865d38fdb179505c99e4bb575/llvmlite-0.30.0-cp36-cp36m-manylinux1_x86_64.whl (20.2MB)
    100% |████████████████████████████████| 20.2MB 39kB/s
Installing collected packages: numpy, llvmlite, numba, scipy, empymod, emg3d
Successfully installed emg3d-0.9.1 empymod-1.10.3 llvmlite-0.30.0 numba-0.46.0 numpy-1.17.4 scipy-1.3.3
(base) mohammad@ubuntu:~$ python3
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import emg3d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'emg3d'
>>> exit()

Regards,
Mohammad

That is very weird. If you do a which pip3 in the terminal, what is the result? Did you try to install it with conda install -c conda-forge emg3d?

Thanks for replying.
No, I didn't.
I will try and let you know.

What I see is that your pip3 install emg3d also installs numpy, scipy, etc. However, afterwards you use anaconda. I would expect that in your anaconda environment there would already be numpy and scipy (unless you installed via miniconda. So my suspicion is that your pip3 points to another environment than your python3. But there might be other possibilities too, of course.

Thanks .
My problem solved by use conda.


[BUG] I cant start the bot

SyntaxError: Unexpected token '.'
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object. (/home/runner/hibiki/dist/src/classes/Client.js:27:16)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
Help me fixing this

its an syntax error thats all

Hello,
As stated in our README.md,

Additionally, we don't support self-hosting or give support/answer questions for doing such. However, the bot is easily self hostable with some basic knowledge.

Have a nice day.
Lambdagg


grunt-contrib-jshint seems unused

Could we remove grunt-contrib-jshint from the package.json since it looks unused? This currently causes issues with jshint in a Bazel monorepo which has non-ideal workarounds.

Sure, I don't see why not...

Published in 0.6.3 just now

thank you!


Customize delaySeconds for triggers

This is filing a separate issue for a conversation from #4439.  This is also sort of similar to #888.
I think one way this could be done is that if a trigger has a literal (vs function) delaySeconds field, then the config UI could let folks override that value if they wanted it to be earlier/later.  I think trying to handle delaySeconds functions in the UI is probably going to be more complicated than it is worth and might be better to defer to user triggers.

I added a "debug only" adjustment for delay seconds. I think this is too risky for general purposes, as delays can affect logic.


Lecture Request

NFV Features in kubernetes, like SR-IOV, DPDK etc

Hi @udautkarsh
These are outside the scope of CKA/CKAD/CKS, however you can request a course by going to the following link. If something similar to what you're looking for is already present in the list, simply upvote it else add a new request.
Thanks.
https://kodekloud.com/request-a-course/


⚠ 한경주요지수-코스피200 has degraded performance

In 07ae304, 한경주요지수-코스피200 (https://markets.hankyung.com/indices/kospi200) experienced degraded performance:

HTTP code: 200
Response time: 15089 ms

Resolved: 한경주요지수-코스피200 performance has improved in 6fed6e6.


Getting a DockerClient

I have installed Docker Desktop and the command line commands do things.
Can I use Docker.DotNet to do things?
How do I get a DockerClient?

Everything you ask for is in readme

Where?

https://github.com/microsoft/Docker.DotNet/blob/master/README.md#usage

The documentation for connecting Docker Desktop is not up to date with the nuget package, see #371, #384, #386 and #397 (maybe more)
Perhaps this project has been abandoned?


New Generic GO slim - MF subset

Hello,
With @hattrill @ValWood and @RLovering we have produced a new generic subset for MF
It has much fewer binding terms (6, while the current has 16)
Terms in the new generic subset:
GOID	Term label
GO:0003774	cytoskeletal motor activity
GO:0005198	structural molecule activity
GO:0005215	transporter activity
GO:0009975	cyclase activity
GO:0016209	antioxidant activity
GO:0016491	oxidoreductase activity
GO:0016740	transferase activity
GO:0016787	hydrolase activity
GO:0016829	lyase activity
GO:0016853	isomerase activity
GO:0016874	ligase activity
GO:0031386	protein tag
GO:0032451	demethylase activity
GO:0038024	cargo receptor activity
GO:0044183	protein folding chaperone
GO:0045182	translation regulator activity
GO:0045735	nutrient reservoir activity
GO:0060089	molecular transducer activity
GO:0060090	molecular adaptor activity
GO:0090729	toxin activity
GO:0098772	molecular function regulator
GO:0140096	catalytic activity, acting on a protein
GO:0140097	catalytic activity, acting on DNA
GO:0140098	catalytic activity, acting on RNA
GO:0140104	molecular carrier activity
GO:0140110	transcription regulator activity
GO:0140223	general transcription initiation factor activity
GO:0140299	small molecule sensor activity
GO:0140313	molecular sequestering activity
GO:0140657	ATP-dependent activity
GO:0140691	RNA folding chaperone
GO:0003723	RNA binding
GO:0008092	cytoskeletal protein binding
GO:0003677	DNA binding
GO:0008289	lipid binding
~GO:0019899	enzyme binding~
GO:0042393	histone binding
For human, the new goslim-generic-mf has better coverage: using the Princeton GOTerm mapper tool, 3987 annotated genes were not in the slim, compared to 4823 with the current goslim-generic (my notes are here: https://docs.google.com/document/d/18BEPHcayvuq4m0QWCCRzDVaOdojMQiYgH2H6ZGBmw6A/edit#)
If there are no objections, I'll implement that.
Thanks, Pascale

consider
cell adhesion mediator activity (GO:0098631)? (currently a binding term, but should probably be a molecular function has_part binding?)
note
GO:0140691 RNA folding chaperone has only a single annotation in the entire GO. Maybe RNA binding would suffice for now?

GO:0140691 RNA folding chaperone has only a single annotation in the entire GO. Maybe RNA binding would suffice for now?

Agreed

Hi
I don't know enough about RNA chaperones or RNA folding to know how many proteins are involved in the process. However, I am concerned that unless there has been an annotation project focused on this area it is difficult to be sure whether this term is required.
In addition, following from our recent MF SLIM discussions where the 'binding' domain of GO was considered to be excluded, and then included I have realised that more MF terms are required for RNA functions.
This article https://www.ncbi.nlm.nih.gov/labs/pmc/articles/PMC6086601/ suggests that the MF term should stay but that an annotation project should focus on populating this term with relevant gene products.

Wouldn't it be better to review the slims annually to check coverage and bring in newly populated terms (and remove binding terms) . Otherwise it looks odd  to have terms in the slim with no annotations.

Time to phjlosophize. What is the purpose of a slim? To provide a balanced summary of all of biology, or a summary skewed towqard intensively studied areas of it? And if an important use of slims is comparative data analysis, isn't stability of a slim over time important to allow reliable comparison between analyses? (An archive of old slims could address this issue, but that probably comes with some management problems.)

Maybe we should contact this group https://www.phd-rna-biology.at/network/
and although this is a 2007 article perhaps ask them for a list of RNA chaperones based on this
https://www.tandfonline.com/doi/pdf/10.4161/rna.4.3.5445?needAccess=true (the website list in this article doesn't work www.projects.mfpl.ac.at/rnachaperones).
However, this brings in the idea that RNA chaperones have a variety of activities some of which I know you would want to classify as processes ;(
See Fig 1 (this is about the assays but I think these descriptions are useful):
A) RNA chaperone activity (RCA) on double-stranded RNA can result in:

helix destabilization (duplex unwinding)
full strand dissociation (RNA melting)
strand displacement (strand exchange)
(B and E) Cis-splicing: Proteins with RCA significantly increase the population of pre-RNA molecules with splicing competent conformation.
(C) Trans-splicing: if the pre-RNA is transcribed in two pieces, which have to anneal for the formation of an active ribozyme. Proteins with RCA facilitate trans-splicing by bringing 2 RNAs together appropriately.
(D) RCA may resolve misfolded hammerhead ribozyme complexes (requires two activities—annealing and strand displacement).
(F) RCA may resolve misfolded to prevent early transcription termination.

The article then defines specific protein families:

Heterogeneous  nuclear  ribonucleoproteins  (hnRNPs).

hnRNP  I  and  hnRNP  K  are  active  in  splicing  assays
hnRNP  A1  was  demonstrated  to  enhance hammerhead ribozyme cleavage.
hnRNP  A1,  hnRNP  C1/C2,  hnRNP  U,  hnRNP K and hnRNP I promote RNA annealing.

Cold  shock  domain  proteins  (CSPs) (9 CSPs in E. coli)

CspA and CspE function as  transcription  antiterminators  or  translational  enhancers  at  low temperature,  where  RNA  secondary  structures  become  inhibitory.
ribosomal  protein  S1  has  RNA  chaperone activity in the context of ribosomal proteins.
translation initiation factor 1 (IF1), has RNA chaperone activity: splicing of  a  misfolded  intron  and resolves terminator stem.
in eukaryotes: YB-1,  which  is  a  general  regulator  of  translation  by  modulating mRNA  structural  rearrangements  and  packaging. promotes  non-specific  strand  displacement  and  annealing  of  both RNA and DNA.

Ribosomal  proteins.

RCA activity suggested for S1, S12, L1, L3,  L13,  L15,  L16,  L18,  L19,  L22  and  L24

Histone-like proteins from bacteria.
Viral  nucleocapsid  proteins  (NCps)

Then classifies these according to 'function':
RNA Annealers
DEXD/H-BOX (RNA heliicases)
plus RCAs intrinsically  unstructured proteins
Interesting statements from another article:
https://www.ncbi.nlm.nih.gov/labs/pmc/articles/PMC7404189/

cotranscriptional RNA folding constitutes a dynamic and intricate process so Colin maybe able to shed light on the RNA chaperones at the transcriptional level.
RNA Modifications, Editing and Sequence Composition as affecting the RNA structure.
Helicases comprise the largest group of transient remodelers of DNA and RNA structural arrangement: Some of them translocate along an RNA strand, unwind RNA duplexes, and displace proteins, while others are capable of solely unwinding dsRNA regions and/or mediating RNA-annealing
RBPs exert local RNA structural alterations as well as changes of structural context of adjacent regions due to torsional stress and thermodynamic compensation of local alterations.
I think Table 1 https://www.ncbi.nlm.nih.gov/labs/pmc/articles/PMC7404189/table/ijms-21-05161-t001/ might provide a list of RBPs that modulate RNA structure.

Note that MF term  GO:0008248 obsolete pre-mRNA splicing factor activity removed because this is a process.  I have got the spreadsheet I used for this. But looking at just the first one I noticed without an MF (that was not a binding term) is https://www.uniprot.org/uniprot/P22626 prthe UniProt summary states: The hnRNP particle arrangement on nascent hnRNA is non-random and sequence-dependent and serves to condense and stabilize the transcripts and minimize tangling and knotting. Not sure which of the proteins in the hnRNP are responsible for the RNA chaperone activity but presumably some are.

RNA_chaperone.xlsx

Can we keep the RNA discussion on the RNA ticket? this work will not be done here ;)

Good idea, but I have opened a separate ticket as I don't think this is relevant to RNA function terms
https://github.com/geneontology/go-ontology/issues/22499

Yes to that. I think that it is not possible to capture all the GTPases in the way that all ATPases can be described as coupled.

Agreed!

For GO:0003677 DNA binding, not including it excludes 313 proteins (whereas there are 1900 transcription regulators and 45 GTF.
Most of the excluded proteins are histones - do we have a MF for histone? should we have something like 'structural constituent of nucleosome'?

I don't like  'structural constituent of nucleosome'
it doesn't say anything about the role of histone.
Recently we were discussing with @colinlog  the role of histones as 'signal integrators' through their role as adaptors.
Recently I have been using "chromatin-protein adaptor"
and recording the 'active' modified form.
https://www.pombase.org/term/GO:0140463
I don't know if this is perfect, but it is better than  'structural constituent of nucleosome', which makes it sound a bit inert.
It's funny histones have always been so poorly  considering their importance!

Should we keep DNA binding in the slim?
Other than histones, I dont see what this group brings: shorturl.at/cnpLY

I don't see any compelling reason to keep it. Can also explain to  curators why it is excluded and encourage people to annotate the histones.
Soon there will be annotations for most histones that can be "PAINTED" ( provided we are agreed about the term I used!), which can be discussed on the next call?

sorry to be annoying but I prefer the name 'structural constituent of nucleosome' because most people know this will include histones. We have cell adhesion molecule, which doesn't convey that the majority of these are involved in signaling pathways. 'Chromatin-protein adaptor' is challenging for me because the histone is part of the chromatin. So it is weird to say it links chromatin to proteins. Plus I am not convinced that the function of the histone is always as an adaptor, the structural aspect is also key.
In addition, https://www.abcam.com/epigenetics/histone-modifications points out that H1 is not in the nucleosome but stabilizes the 'internucleosomal DNA' and that "Some modifications disrupt histone-DNA interactions, causing nucleosomes to unwind. In this open chromatin conformation, called euchromatin, DNA is accessible to binding of transcriptional machinery and subsequent gene activation. In contrast, modifications that strengthen histone-DNA interactions create a tightly packed chromatin structure called heterochromatin. In this compact form, transcriptional machinery cannot access DNA, resulting in gene silencing." So - in heterochromatin are histones acting as adaptors? Maybe I am missing what is bound by the histones to enable the adaptor function term to be applied?
I think that the reason for a lack of histone annotations in humans is because of all the paralogs which make it difficult to know which protein has actually been investigated. So potentially most experiments would be considered as NAS evidence.
Shouldn't we keep DNA binding in the SLIM until we have these 300 proteins assigned to an additional function?

the structural aspect is also key.

I guess "structural element of nucleosome" is one major activity, but also, and really importantly for epigenetics, transcription, chromosome segregation, is
the activity of the modified forms (and we need to curate these connections to make the causal models). All of the modified forms have slightly different activities because they provide a 'platform' for different assemblies of signalling pathways or chromatin-modifying machineries, dependent on the individual modification(s).
I have never felt that 'adaptor' was really the correct term. A lot of things called 'adaptors' are really ' recruiters'. I  just don't think we have a satisfactory label.
We need something like "modification-dependent recruitment activity", defined in a way that it does not need to be an "adaptor"  subclass (although some recruiters are also really adaptors so it gets complicated).

A term like
"modification-dependent recruitment activity"
would also work for the many other cases where a modification recruits another protein (sometimes the protein that performed the modification).

Slimming results for the human genome using the new generic GO slim:
What is the 'dropout' now?

As GO doesn't really capture modifications or ion dependancies much why not just have 'recruitment activity' or 'chromatin-modifying recruitment activity' or 'nucleosome recruitment activity' I think there may be other proteins that 'recruit' only when they are modified. I am concerned that the term "modification-dependent recruitment activity" doesn't provide any information to the user about the function of the protein is. But I have a feeling that you won't want the location aspect included. Although there are a lot of MF terms with location included in the name.
I still think the structural role should also be captured as other structural proteins are annotated with this function. Plus as you say hopefully PAINT can apply these both terms across many histones ;)

I put this for discussion on a transcription call. Since Val cannot be there on Friday, lets discuss this next Monday.

"As GO doesn't really capture modifications or ion dependancies much "
But the modifications are required to capture the biology. PomBase uses PRO to capture the modifications. It's really critical for the histones, but also for most  dynamic processes. See here for  examples: https://www.pombase.org/term/GO:0140463
The only issue is that the terms are not really generic enough currently.
I have also  with adaptor molecules for cytokinesis.
Probably the reason these are not curated is because a) there are not so many mechanistic paper, and b)  where there are they are quite complicated so curators avoid them and c) it only really becomes critical to capture the modification dependencies once you are curating pathways. Without this information the pathways don't make sense, because the outputs (pathway  active or inactive) depend on the modifications.

I put the histone MF as a discussion topic on a future transcription call, I am not sure when we'll all be around again, but this will be discussed before I make any changes. I'll keep DNA binding in the slim for now.

On the transcription call we decided to replace 'DNA binding' by 'structural constituent of chromatin'.
@hattrill do you want to do the same for the drosophila slim?

Are we ready to replace 'DNA binding' by 'structural constituent of chromatin'? how many gps drop out with this change?

For now, I'd be happy just to add this term to the fly slim and keep  'DNA binding' as they are not an exact overlap and as I might want to do some reannotation here and see what falls out - I've used terms such as 'histone binding', and 'DNA binding' where they might be better as 'structural constituent of chromatin' - but at the moment, I only have 2 genes with this term used in annotation.

Discussion with @ValWood and @hattrill
add

catalytic activity [GO:0003824] (to catch all catalytic activities that are NOT descendant of EC classes)
transcription regulator activity [GO:0140110]
virus coreceptor activity [GO:0120274]
virus receptor activity [GO:0001618]

I added the last 4 terms above. I am closing this ticket, let's open new tickets if we want more changes.


Bump thread_local version to 0.3 to remove winapi dependency on unix

Also this will change minimum Rust version to 1.7. Probably this should go with 1.0  regex release (#230) to address @DanielKeep concerns regarding support of older Rust compiler versions.

Urgh, that damn @DanielKeep, making everyone's life more difficult by incessantly whining about old versions...
:)

Your concerns are perfectly valid and your activity is a good highlight for missing for one of the missing cargo feature (namely Rust version awareness), but yeah it indeed makes life more difficult for others. ;)

Yup, this has been my plan but didn't create an issue for it, thanks!


Breakdown of jobs by state

I added navigation to the page and it makes it possible to filter jobs by state. For example I only want to observe jobs in executing state.
Also improved some small things in the list table:

Removed columns to focus only on the most important: worker, args, attempts, queue, timestamp.
Showing relative timestamp in words, instead of a timestamp.
Offer to see 20, 50 or 100 items per page (default 20).

We can also make it all configurable.

The inclusion of Timex is a blocker because of what it depends on. It's excessive for just working out relative time. Elixir 1.18 includes a new Duration struct, which may open up an alternative path to achieve relative time outside of Timex in future. Or it may be possible to leverage the browser and use Intl.RelativeTimeFormat, but that may be tricky to include client side JS via Live Dashboard. Another option forward would be to not include Timex but simply check if it is present and if so then provide the ability to display time relatively.

I tried to not use Timex, and reach for JS. But unfortunately it's not cleanly possible at the moment. See discussion: https://github.com/phoenixframework/phoenix_live_dashboard/issues/455
What I can offer is: implement the relative_time feature without the Timex dependency. Someone already did it: https://gist.github.com/tlemens/88e9b08f62150ba6082f478a4a03ac52
And also we can make it configurable.
additional_pages: [
  oban: {Oban.LiveDashboard, relative_timestamp: true}
]

If false then it would display it as today.
What do you think?

I very much like the filtering by state, and the job count for each, but not at the expense of losing the "all" view. I personally find seeing all my jobs in one view very helpful, especially during development and I think from a usability standpoint it means an additional click to inspect a job that isn't executing by default. The functionality is useful though and it is still worthwhile to have.

That makes sense. I'll bring the All tab back and make it the first one.

@evilmarty
I released my own package to experiment more faster and see where it takes me https://github.com/egze/obanalyze
But I will also do my best to work on the current PR if you are still interested. Please check if there's still something you want to change.

@evilmarty The new feature with the retry buttons caused some merge conflicts. I tried to fix it, but not sure anymore if I did it cleanly. Please test


Type Assertion using as should warn about wrong types

Bug Report
🔎 Search Terms
type assertion

🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about as

⏯ Playground Link

Playground link with relevant code
💻 Code
interface Test {
  aString: string,
}

const aFunction2 = (mightBeNumber : string | number) => {
  const aTest = { aString: mightBeNumber } as Test; // Shouldn't work
  const aTest2 : Test = { aString: mightBeNumber }; // Correct error
}

const a : string | number = 3;
// here typescript knows that `a` is always a number
const b = { aString: a } as Test; // Correct error
const c : Test = { aString: a }; // Correct error

🙁 Actual behavior
Type Assertion using as does not warn about wrong types
🙂 Expected behavior
Type Assertion using as should warn about wrong types

The entire point of type assertions is to work around the type checks of the compiler. You're telling the compiler "trust me, it matches, or will match later one, so shaddap."

@MartinJohns Then I would assume that typescript shouldn't warn me about trying to convert a number to string like const test = "a" as number;

It does perform some basic checks to make sure the types at least somewhat overlap. That means you can't say a string is a number, but you can say "a string or a number" is definitely a number.

as unknown/any as number

That's a feature. When you write "a" as number, the error message literally tells you to cast to unknown first.


"This device contains a valid firmware, but EEPROM is invalid"- After erase of EEPROM

I can assume that the wipe of the EEPROM was successful, but I get an error when trying to re flash the board(as noted in title). The display suggests there is a hardware error after the erasure.
How can I "correctly initialize the device" as the subsequent error suggests?
I cannot seem to locate information on the rnodeconf specifics in the manual.
Thanks for the help!

The documentation doesn't do a great job of telling you that wiping the EEPROM is a
generally not a good idea. I learned the hard way. You should be able to get your EEPROM reprovisioned using rnodeconf -a. This wasn't a total slam dunk for me, but it did rebuild my EEPROM.
There's a little more info on this reddit thread.

Solved using an alternate machine. Same RNS version, just a x86 vs raspPI. Not sure what was causing the issue at this point.


Added Python3 Scripts dir to PATH using installer option (#111)

This allows pip installed programs that provide scripts to be accessible from the cmd.exe. This is how this works on Linux.
Example without this option:
pip3 install git+https://github.com/GoSecure/malboxes.git@pip-packaging#egg=malboxes
C:\...> malboxes -V
'malboxes' is not recognized as an internal or external command,
operable program or batch file.

Example with this option:
pip3 install git+https://github.com/GoSecure/malboxes.git@pip-packaging#egg=malboxes
C:\...> malboxes -V
malboxes-script.py 0.2.0dev

Added Python2 after discussion in #111.

@obilodeau looks good to me.  Thanks for getting this done, and apologies for taking so long to get back to you about this.


Hugo/sparse mult

Creates jitted sparse multiplication functions for mvs of specific grades
Now with added testing
Note: Tests may take a while to run as it looks at all possible combinations of sparsity in grades of both objects

go right ahead.
do you have an example of a use case for this, and the speedup it generates?

OK cool, will make a gist to explain my reasoning

OK, here is my arguments for this pull request:
https://gist.github.com/hugohadfield/f847a19aaf654f39b75f94da9b4e6fb2
Essentially it allows us to generate specialised functions for sparse multivectors in advance if we know their grade. In the case we do not specify the grades it does a runtime sparsity check as @moble suggested in https://github.com/pygae/clifford/issues/10. In the case of fully dense multivectors this will add overhead, in the more common case of sparse mvs it speeds up operations a lot for no extra effort.

I added the ability to specify the filter mask directly so as to allow highly object specific optimisation eg. for when using the pseudoscalars from various spaces or other commonly used constants where we know the exact sparsity in advance at a finer resolution than simply the grade.


feat: improve required values

Signed-off-by: Djerfy<EMAIL_ADDRESS>

Q
A

Bug fix?
no

New feature?
yes

API breaks?
no

Deprecations?
no

Related tickets

License
Apache 2.0

What's in this PR?
Improve error message, required certificate values
Why?
When the configuration is bad, it's the same message
Checklist

[x] Code meets the Developer Guide
[x] User guide and development docs updated (if needed)
[x] Related Helm chart(s) updated (if needed)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


feat(webviews): add Sourcegraph Teams providers

CONTEXT: https://sourcegraph.slack.com/archives/C079SAU0E72/p1733964997414119
CLOSE https://linear.app/sourcegraph/issue/CODY-4490/implement-the-upgrade-to-team-upsell-in-the-context-menu
This PR adds new Sourcegraph Teams providers for repositories and directories to the OpenContext menu. These providers are only shown for DotCom users who have the Sourcegraph Teams upgrade feature flag enabled.
The new providers are added with the following URIs:

TEAMS_REPOSITORY_PROVIDER_URI
TEAMS_DIRECTORY_PROVIDER_URI

Additionally, a new isSourcegraphTeamsProvider function is added to the lib/shared/src/context/openctx/api.ts file to check if a given provider URI belongs to the Sourcegraph Teams providers.
When a user clicks on a Sourcegraph Teams provider in the OpenContext menu, the corresponding Sourcegraph Teams page will be opened in a new tab.
Test plan

Added new Sourcegraph Teams providers for repositories and directories
Implemented logic to check if a provider is a Sourcegraph Teams provider
Opened Sourcegraph Teams page in a new tab when a Sourcegraph Teams provider is clicked

Manual testing.
When logged into DotCom and your account has the feature flag enabled:

When logged into S2 (enterprise), you should not see the Upgrade to Pro badge:

Changelog

@abeatrix if it's not too big of a lift, I strongly recommend calling all internal references to MT workspaces instead of teams - "workspace" is the name of the thing, while "teams" is a product-owned name of the billing plan that is highly subject to change. Or, even better, if it can apply to Enterprise as well we should just call it Enterprise.
In this case, the "teams" name is going to be dropped due to a change in direction, and we will no longer be referring to anything as "teams": https://sourcegraph.slack.com/archives/C0814PENH8R/p1733993779559599?thread_ts=1733943118.799079&cid=C0814PENH8R

@abeatrix if it's not too big of a lift, I strongly recommend calling all internal references to MT workspaces instead of teams - "workspace" is the name of the thing, while "teams" is a product-owned name of the billing plan that is highly subject to change. Or, even better, if it can apply to Enterprise as well (most mechanisms should) we should just call it Enterprise. This will make reading the code easier in the future. For displaying product-owned names we should make sure that is somewhat easy to change without a major refactor.
In this case, the "teams" name is going to be dropped due to a change in direction, and we will no longer be referring to anything as "teams": https://sourcegraph.slack.com/archives/C0814PENH8R/p1733993779559599?thread_ts=1733943118.799079&cid=C0814PENH8R

Does that mean the upsell will be updated to Upgrade to Workspace

for example, isSourcegraphTeamsProvider should be isWorkspaceProvider, but any user-facing display text can be the product term instead, which is easy to change

for example, isSourcegraphTeamsProvider should be isWorkspaceProvider, but any user-facing display text can be the product term instead, which is easy to change

@bobheadxi i've renamed them and moved away from using Teams.


Add Keyframes in Animations

Project URL
https://github.com/facebookincubator/Keyframes
Description
A library for converting Adobe AE shape based animations to a data format and play it back on Android and iOS devices.
Checklist

[x] Only one project/change is in this pull request
[x] Addition in chronological order (bottom of category)
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Error

:no_entry_sign:
Found 1 link issue

Link issue by awesome_bot

Line
Status
Link

2078
302
https://swiftlang.ng.bluemix.net/#/repl redirects tohttps://swiftlang.ng.bluemix.net/verify

  Generated by :no_entry_sign: danger

Damn you're pushing a lot of things! 🎉


Intercepting Ping Frames

Is there a way to intercept the ping frames?  I currently have a websocket client setup up using this simplified structure:
loop = asyncio.get_event_loop()
            websocket = loop.run_until_complete((open_websocket(token)))

async def open_websocket(token):
        async with websockets.connect(ws_endpoint, ssl=ssl_context, ping_interval=None) as ws:
            await message_receiver(ws)

async def message_receiver(ws):
    async for message in ws:
        ....do something with message....

My message receiver doesn't trigger when receiving ping frames.  Is there a way to run a function when a ping frame is received, prior to sending the pong?

There's no public API for this — because I'm not aware of a use case. What's the use case?
If you really need this and you're willing to use a private API, you can subclass WebSocketClientProtocol, graft your logic in the subclass, and pass the subclass in the create_protocol argument of connect.

There's no public API for this — because I'm not aware of a use case. What's the use case?
If you really need this and you're willing to use a private API, you can subclass WebSocketClientProtocol, graft your logic in the subclass, and pass the subclass in the create_protocol argument of connect.

Here's the use case.  I have a service that I've written in python and wrapped up with systemd.  I want to set this service to restart if the systemd watchdog fails using https://github.com/bb4242/sdnotify and I thought a great place to tie that logic in would be the ping/pong commands already being sent as part of the keep_alive for the websocket.  If I'm not getting pings I could restart the service.

Here's the use case.  I have a service that I've written in python and wrapped up with systemd.  I want to set this service to restart if the systemd watchdog fails using https://github.com/bb4242/sdnotify and I thought a great place to tie that logic in would be the ping/pong commands already being sent as part of the keep_alive for the websocket.  If I'm not getting pings I could restart the service.

I suppose you're talking about a client rather than a server.
What about using built-in functionality instead?

Configure ping_interval and ping_timeout if you don't like the defaults (20 seconds each)
Have your service exit when there's a ping timeout — usually this "just happens" without any effort because recv() raises connection closed, but you can also handle explicitly with await websocket.wait_closed() and triggering an exit when this calls returns.

Then you'll get the behavior you want.

I suppose you're talking about a client rather than a server.
What about using built-in functionality instead?

Configure ping_interval and ping_timeout if you don't like the defaults (20 seconds each)
Have your service exit when there's a ping timeout — usually this "just happens" without any effort because recv() raises connection closed, but you can also handle explicitly with await websocket.wait_closed() and triggering an exit when this calls returns.

Then you'll get the behavior you want.

That's right it is a websocket client.  I was using the ping_interval originally but due to a buggy implementation in the websocket server I'm connecting to I discontinued and have set ping_interval=None.  This way I'm only responding to the pings sent from the server instead of also sending my own pings.  When I sent my own the server would not respond forcing a restart of the websocket client.
I guess my primary issue is that occasionally my script stops functioning.  I haven't been able to fully diagnose the issue but my quick fix idea was to use systemd's watchdog to restart the script if my client stops receiving pings from the server I connect to.

That's right it is a websocket client.  I was using the ping_interval originally but due to a buggy implementation in the websocket server I'm connecting to I discontinued and have set ping_interval=None.  This way I'm only responding to the pings sent from the server instead of also sending my own pings.  When I sent my own the server would not respond forcing a restart of the websocket client.
I guess my primary issue is that occasionally my script stops functioning.  I haven't been able to fully diagnose the issue but my quick fix idea was to use systemd's watchdog to restart the script if my client stops receiving pings from the server I connect to.

How annoying. Then I don't have a better solution to offer than the gross hack.

How annoying. Then I don't have a better solution to offer than the gross hack.

Haha.  Thank you for your help.

Haha.  Thank you for your help.


Consider fixing the go.mod directive

https://github.com/robusta-dev/kubewatch/blob/4730af84d096fabf3d0c5a2aae15d666baac141b/go.mod#L1
- github.com/bitnami-labs/kubewatch
+ github.com/robusta-dev/kubewatch

@Dentrax You can use the replace directive in go.mod if you're planning to use it in your project:
require(
        ...
	github.com/bitnami-labs/kubewatch v0.1.0
)

replace github.com/bitnami-labs/kubewatch v0.1.0 => github.com/robusta-dev/kubewatch v0.1.1-0.20240430073820-4730af84d096


Question: Removing API Backend through Admin API

How is the Elasticsearch analytics data handled when I remove API backend from Umbrella using Admin API? If I want related data also removed do I need to call also something else?
If I later on add new backend with same Frontend prefix that can be confusing to see old data.

We don't ever delete analytics data by default. I guess from our own usage, we view API backends as more of an internal routing detail that shouldn't affect analytics. So even if an API backend gets deleted and replaced, as long as the URLs are the same, we still consider it part of the same logical API from an analytics perspective (since if the URL stayed the same, then API consumers presumably haven't seen any differences in the API, even if the backend routing has changed). Does that approach make sense, or do you use API backends differently?
That being said, if you did want to delete analytics data, it should be possible to do this manually in the Elasticsearch database. However, I'm not sure if Elasticsearch is optimized for bulk deletes, so you might need to be a little careful of the performance implications, depending on how much analytics data is stored in Elasticsearch.
To perform this manually, you could use the deprecated Delete By Query API in our current version of Elasticsearch (1.7). But as noted, this is a deprecated API that will disappear once we upgrade to Elasticsearch 2. For that version, you'd need the Delete by Query Plugin (which also talks a bit more about why it was deprecated and some of the performance implications).

Closing now, but let us know if you have further questions.


Allow to enable DevTools in installer window

Use
export PDKI_DEBUG=

to enable DevTools or
unset PDKI_DEBUG

to disable it.

released to master


[Bug] If a domain is ordered, but not yet activated, the same domain can be ordered again.

Describe the bug
This is surely a rare thing, but if a domain is already pending, there's an issue.

The system will of course not let you activate the domain twice because the registrar won't allow it.
How to reproduce

Order a domain with a client
order the domain a second time

Expected behavior
Of course nothing is set in stone until the registrar confirms the domains purchase so there's no point in denying that between a customer ordering and the domain registrar confirming, there could be someone else that registers the domain with another registrar, but at least "internally", we could check, even if it is to prevent the same customer ordering twice - generating manual cleanup-work.
Screenshots
No response
FOSSBilling version
0.5.5
Module version
No response
Device
No response
Information
No response
Additional context
No response

I guess I'm not sure what other behavior you'd expect.
We can't deny the domain from being ordered again, otherwise there's be nothing preventing a bad actor from using some simple automation to order tons of domains without paying for them & then prevent actual paying customers from being able to order said domains.
The only real situation where I can see preventing the order being logical is if it's the same person ordering the same domain for a 2nd time, but in that case we'd still need to be 100% certain that it won't prevent the domain being ordered again for past orders that were for example canceled or suspended

A Situation in which two customers can order the same domain, and whoever pays first is the owner of the domain, I don't think that's "Fair" - in the sense that I think it should be first come first serve. Currently, that isn't the case.

IMO.. if they don't pay, it's not theirs shrugs.
But I propose doing something a lot simpler than either suggestion:
If a domain is unpaid and was ordered less than a week ago, it's unavailable for purchase and then once it crosses the 1 week mark it can be bought by anyone else.
That gives whoever ordered it a 1 week grace period to pay for it before it becomes possible for someone else to grab it.