issue in setting up distributed sharded cluster

OrientDB Version: <2.2.25>
Java Version: <1.8.0_60>
OS: <CentOS release 6.9>
Expected behavior
I'm trying to setup on 3 servers and trying to setup a class "users", with 3 clusters "users_0",
"users_1", and "users_2". My servers are called node1, node2, and
node3. I want the clusters arranged such that I have 2 copies of each
cluster, so if 1 node goes down I still have access to all the data.
I've tried setting this up with the following steps:
Download OrientDB 2.2.25 Community and extract onto the 3 servers.
ran dserver.sh and configured the root password and set the node name for all the three machines and stopped the instance(CTRL+C).
Edit default-distributed-db-config.json on node1 as follows :
{
"autoDeploy": true,
"hotAlignment": false,
"executionMode": "undefined",
"readQuorum": 1,
"writeQuorum": 2,
"failureAvailableNodesLessQuorum": false,
"readYourWrites": true,
"clusters": {
"internal": {
},
"index": {
},
"users_0": {
"servers" : [ "node1","node2" ]
},
"users_1": {
"servers" : [ "node2","node3" ]
},
"users_2": {
"servers" : [ "node3","node1" ]
},
"*": {
"servers" : [ "<NEW_NODE>" ]
}
}
}

and hazelcast.xml as:
<tcp-ip enabled="true">
	<member>IP1</member>
	<member>IP2</member>
	<member>IP3</member>
</tcp-ip>

Start node1 with dserver.sh.
Create a database using console on node1:
connect remote:localhost root password
create database remote:localhost/global root password plocal graph
Create a class and rename the default cluster:
create class users extends v (this has created no.of clusters equal to the no.of cores of the server, so removed all of the except users)
alter cluster users name users_0
Startup node2 with dserver.sh, wait for database to auto deploy, then
startup node3 and wait for deploy
After starting the 3rd node, i have seen error as below.
2017-08-07 16:37:17:193 WARNI [node3] - writing chunk #1 offset=0 size=441b [orientechnologies][node3] error on transferring database 'global' to
 '/tmp/orientdb/backup_global_users_1_server3_toInstall.zip'
com.orientechnologies.orient.core.exception.OConfigurationException: Database '/home/tomcat/orientdb/databases/global' is not configured on serve
r (home=/home/tomcat/orientdb/databases/)
        at com.orientechnologies.orient.server.OServer.getStoragePath(OServer.java:575)
        at com.orientechnologies.orient.server.OServer.openDatabase(OServer.java:935)
        at com.orientechnologies.orient.server.distributed.sql.OCommandExecutorSQLHASyncCluster.replaceCluster(OCommandExecutorSQLHASyncCluster.j
ava:209)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.installDatabaseFromNetwork(ODistributedAbstractPlugin.
java:1517)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.requestDatabaseFullSync(ODistributedAbstractPlugin.jav
a:1232)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.requestFullDatabase(ODistributedAbstractPlugin.java:10
02)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin$3.call(ODistributedAbstractPlugin.java:950)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin$3.call(ODistributedAbstractPlugin.java:878)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.executeInDistributedDatabaseLock(ODistributedAbstractP
lugin.java:1686)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.installDatabase(ODistributedAbstractPlugin.java:877)
        at com.orientechnologies.orient.server.distributed.impl.OClusterHealthChecker.checkServerStatus(OClusterHealthChecker.java:190)
        at com.orientechnologies.orient.server.distributed.impl.OClusterHealthChecker.run(OClusterHealthChecker.java:53)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
2017-08-07 16:37:17:196 INFO  [node3] Setting new distributed configuration for database: global (version=52)

CLUSTER CONFIGURATION [wQuorum: true] (LEGEND: X = Owner, o = Copy)
+-----------+-----------+----------+-------+------+------+-----------------+
|           |           |          |MASTER |MASTER|MASTER|     MASTER      |
|           |           |          |ONLINE |ONLINE|ONLINE|  NOT_AVAILABLE  |
|           |           |          |dynamic|static|static|     static      |
+-----------+-----------+----------+-------+------+------+-----------------+
|CLUSTER    |writeQuorum|readQuorum| node1 |node2 |node3 |node1502103884969|
+-----------+-----------+----------+-------+------+------+-----------------+
|*          |     3     |    1     |   X   |  o   |  o   |        o        |
|e_0        |     3     |    1     |   o   |  o   |  X   |        o        |
|e_2        |     3     |    1     |   o   |  X   |  o   |        o        |
|e_4        |     3     |    1     |   o   |  X   |  o   |        o        |
|e_5        |     3     |    1     |   o   |  X   |  o   |        o        |
|e_6        |     3     |    1     |   o   |  o   |  o   |        X        |
|e_7        |     3     |    1     |   o   |  o   |  X   |        o        |
|internal   |     3     |    1     |       |      |      |                 |
|ofunction_0|     3     |    1     |   o   |  X   |  o   |        o        |
|ofunction_1|     3     |    1     |   o   |  o   |  X   |        o        |
|orole_0    |     3     |    1     |   o   |  X   |  o   |        o        |
|orole_1    |     3     |    1     |   o   |  o   |  X   |        o        |
|oschedule_0|     3     |    1     |   o   |  X   |  o   |        o        |
|oschedule_1|     3     |    1     |   o   |  o   |  X   |        o        |
|osequence_0|     3     |    1     |   o   |  X   |  o   |        o        |
|osequence_1|     3     |    1     |   o   |  o   |  X   |        o        |
|ouser_0    |     3     |    1     |   o   |  X   |  o   |        o        |
|ouser_1    |     3     |    1     |   o   |  o   |  X   |        o        |
|user_0     |     3     |    1     |   X   |  o   |      |                 |
|user_1     |     3     |    1     |       |  X   |  o   |                 |
|user_2     |     3     |    1     |   o   |      |  X   |                 |
|v_0        |     3     |    1     |   o   |  o   |  X   |        o        |
|v_3        |     3     |    1     |   o   |  X   |  o   |        o        |
|v_4        |     3     |    1     |   o   |  o   |  X   |        o        |
|v_5        |     3     |    1     |   o   |  X   |  o   |        o        |
|v_6        |     3     |    1     |   o   |  X   |  o   |        o        |
|v_7        |     3     |    1     |   o   |  o   |  o   |        X        |
+-----------+-----------+----------+-------+------+------+-----------------+

 [ODistributedStorage]
2017-08-07 16:37:17:197 INFO  [node3] Broadcasting new distributed configuration for database: global (version=52)
 [OHazelcastPlugin]Error on checking cluster health
com.orientechnologies.orient.server.distributed.ODistributedException: Error on transferring database
        at com.orientechnologies.orient.server.distributed.sql.OCommandExecutorSQLHASyncCluster.replaceCluster(OCommandExecutorSQLHASyncCluster.j
ava:251)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.installDatabaseFromNetwork(ODistributedAbstractPlugin.
java:1517)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.requestDatabaseFullSync(ODistributedAbstractPlugin.jav
a:1232)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.requestFullDatabase(ODistributedAbstractPlugin.java:10
02)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin$3.call(ODistributedAbstractPlugin.java:950)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin$3.call(ODistributedAbstractPlugin.java:878)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.executeInDistributedDatabaseLock(ODistributedAbstractP
lugin.java:1686)
        at com.orientechnologies.orient.server.distributed.impl.ODistributedAbstractPlugin.installDatabase(ODistributedAbstractPlugin.java:877)
        at com.orientechnologies.orient.server.distributed.impl.OClusterHealthChecker.checkServerStatus(OClusterHealthChecker.java:190)
        at com.orientechnologies.orient.server.distributed.impl.OClusterHealthChecker.run(OClusterHealthChecker.java:53)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)
Caused by: com.orientechnologies.orient.core.exception.OConfigurationException: Database '/home/tomcat/orientdb/databases/global' is not configured on server (home=/home/tomcat/orientdb/databases/)
        at com.orientechnologies.orient.server.OServer.getStoragePath(OServer.java:575)
        at com.orientechnologies.orient.server.OServer.openDatabase(OServer.java:935)
        at com.orientechnologies.orient.server.distributed.sql.OCommandExecutorSQLHASyncCluster.replaceCluster(OCommandExecutorSQLHASyncCluster.java:209)
        ... 11 more

But at this point I have a database on 3 nodes, with a class called "users"
with only one cluster "users_0".

On node2, add the users_1 cluster:
alter class users addcluster users_1
Similarly, on node3:
alter class users addcluster users_2
If I reconnect all console sessions and execute "clusters" I now see
all 3 clusters of the users class on each node. When i  insert a record from each
node I see that records are creating on Node1 and replicating to node2 , when creating the record on node2, its created but not replicated to node3 and when i create a record, its created on node 3 and replicated node1.

i could see the wanring from node2 as below.

2017-08-07 20:54:55:339 WARNI [node2] Timeout (10004ms) on waiting for synchronous responses from nodes=[node3, node1] responsesSoFar=[node1] request=(id=1.1606 task=gossip timestamp:<PHONE_NUMBER>335 lockManagerServer: node1) [ODistributedDatabaseImpl]
2017-08-07 20:54:55:339 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:55:05:342 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:55:15:347 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:55:25:351 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:55:35:356 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:55:45:359 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:55:55:364 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:56:05:367 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:56:15:373 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:56:25:376 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:56:35:381 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:56:45:385 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:56:55:390 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:57:05:393 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:57:15:398 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=GratefulDeadConcerts, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]
2017-08-07 20:57:25:402 WARNI [node2]->[node3] Server 'node3' did not respond to the gossip message (db=global, timeout=10000ms), but cannot be set OFFLINE by configuration [OClusterHealthChecker]

Is there something wrong in the way I've created/configured the database or
is this a bug?
I even tried interchanging the nodes but i could see the same error when ever i add third node.

Does anyone faced similar issue? It works fine with two nodes but adding third one throws errors.

I have also encountered the same problem

@kishorel please use OrientDB >=2.2.26 and restart the servers with such version with the database you already created.

@lvca Thanks for the reply. Just to understand, is this a bug? we actually thought of going on production but in the initial setup stage encountered issues.What is the stable release(if any).

It was a bug. 2.2.26 is stable with HA. With your configuration I suggest to use "majority" in the writeQuorum, not just 2. With 2-3 servers, majority is still 2, but at least if you're starting with 1 server you can still work with it.

I meet the same problem on version 2.2.29. Does this bug still exist on v2.2.29? Thanks!

I meet the same problem on version 2.2.30 !!! please help , or any method to scale up write?

@lvca @kishorel @DongQingHe @prjhub  CC

Having the same problem in 2.2.32

Having the same problem in 2.2.33

I have something like this problem in 2.2.33 with select query (#8238)

Facing the same issue in  2.2.36

Facing the same issue with OrientDB 3 and writeQuorum set to majority.

I am using OrientDB Rest to avoid this issue. (Just in case if you are getting started you can give that a try)

Any update on this issue? Facing same issue in OrientDB 3.0.12 also

I'm also affected in OrientDB 3.0.30

Same issue in 3.2.0


Transient lwaftr

Based on https://github.com/Igalia/snabbswitch/pull/42, this PR moves the transient program to be a snabb_lwaftr subcommand.  This means we can deliver a binary named "snabb-lwaftr" that contains its own benchmarking tool.  Also, switch to use the new lib.csv_stats module.

LGTM.


Add binary coercion in like

Which issue does this PR close?
Fixes #7342
Closes #.
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

The code looks good -- this PR also needs a test
You can use the arrow_cast function to create binary columns and there are some examples of using the binary column data type in https://github.com/apache/arrow-datafusion/blob/main/datafusion/sqllogictest/test_files/binary.slt

Actually this does not work, I am trying to figure it out. Will post updates soon.


How can i add an sipprovider?

Hey,
nice small pbx ...
Can you please explain me how i can add an sip provider?
greetings
sam

Thank you!
Please read Exploitation section of the file README.
Good luck!

I read them, but i dont see where i store set username Passwort host of in examineren sipgate or other sip hoster.

Only trust relationships between sip-gateways is assumed (or protection by IP address). Authorization is not provided between them.


On-chip calibration time-out

Required Info

Camera Model
D435

Firmware Version
<IP_ADDRESS>

Operating System & Version
Linux (Ubuntu 16.04)

Kernel Version (Linux Only)
4.15.0-132-generic

Platform
PC

SDK Version
2.41

Language
python

Segment
Robot

Issue Description
I am unable to get the on-chip calibration to finish successfully as it always times-out. I have tried using multiple methods:

RealSense viewer app: Running the OCC All option, I see the following printed in the terminal multiple times a second:

29/01 15:14:27,808 ERROR [140224994711296] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Out of frame resources!

29/01 15:14:27,808 ERROR [140224994711296] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Error occured during execution of the processing block! See the log for more info

Python using depth_auto_calibration_example.py: Running the default (with no json options) always ends with the following error:

Operation timed-out!
Calibration state did not converged in time

Any suggestions on how to get on-chip calibration to work for me?
Follow up question, does the camera have to be perfectly still when running OCC or can it be hand-held?

Hi @rlustig-gpfw  Holding the camera in the hand should not prevent calibration from completing and offering you a health check score.  I always calibrate with the camera held in hand.
I ran extensive tests with the On Chip Calibration tool in the Viewer with a D435i and a D455 on two different laptops.  At different times I encountered both of the errors in points 1 and 2 above but could not identify a consistent, repeatable cause for them.
The factor that most increased the chances of the test completing successfully seemed to be to position the camera far enough away from the observed surface (e.g a flat wall) that there was a solid box represented in the Viewer's center panel instead of a group of broken multi-colored pixels (which can occur if the camera is close to the surface).

Do you see any improvement if you select the Fast mode of calibration from the On-Chip Calibrator's drop-down menu before clicking the Calibrate button?

Hi @rlustig-gpfw  Holding the camera in the hand should not prevent calibration from completing and offering you a health check score.  I always calibrate with the camera held in hand.
I ran extensive tests with the On Chip Calibration tool in the Viewer with a D435i and a D455 on two different laptops.  At different times I encountered both of the errors in points 1 and 2 above but could not identify a consistent, repeatable cause for them.
The factor that most increased the chances of the test completing successfully seemed to be to position the camera far enough away from the observed surface (e.g a flat wall) that there was a solid box represented in the Viewer's center panel instead of a group of broken multi-colored pixels (which can occur if the camera is close to the surface).

Do you see any improvement if you select the Fast mode of calibration from the On-Chip Calibrator's drop-down menu before clicking the Calibrate button?

Hi @MartyG-RealSense, thank you for the fast response and for performing additional testing. In my tests, I too make sure that the camera is far enough away from the wall (i.e. not within the camera's "deadzone"). For reference, the camera is ~.75 meters away from the wall.
Changing to the Fast calibration mode improves things a bit, but does not solve the issue. I ran the calibration with the Fast mode option many times and I saw a few different issues. The issues can be filtered into 2 groups:

The calibration process begins, but soon after prints these log messages:

 01/02 08:14:40,624 ERROR [139754595145472] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Out of frame resources!
 01/02 08:14:40,624 ERROR [139754595145472] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Error occured during execution of the processing block! See the log for more info
 01/02 08:14:40,658 ERROR [139754595145472] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Out of frame resources!
 01/02 08:14:40,658 ERROR [139754595145472] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Error occured during execution of the processing block! See the log for more info
 01/02 08:14:40,819 WARNING [139754580027136] (backend-v4l2.cpp:1057) Incomplete frame received: Incomplete video frame detected!
Size 771072 out of 814335 bytes (94%)
 01/02 08:14:44,757 WARNING [139754580027136] (backend-v4l2.cpp:1057) Incomplete frame received: Incomplete video frame detected!
Size 75000 out of 814335 bytes (9%)
 01/02 08:14:45,247 WARNING [139754580027136] (backend-v4l2.cpp:1057) Incomplete frame received: Incomplete video frame detected!
Size 115712 out of 814335 bytes (14%)
 01/02 08:14:45,626 ERROR [139754554849024] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Out of frame resources!
 01/02 08:14:45,627 ERROR [139754554849024] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Error occured during execution of the processing block! See the log for more info
 01/02 08:14:45,659 ERROR [139754554849024] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Out of frame resources!
 01/02 08:14:45,660 ERROR [139754554849024] (synthetic-stream.cpp:48) Exception was thrown during user processing callback: Error occured during execution of the processing block! See the log for more info

It is not clear what the percentages in the log messages are referring to.
2. Sometimes the calibration progress bar completes and the viewer displays an updated colored depth image for a brief moment (~1 second). This image seems distorted as if the calibration procedure went badly. After about 1 second of displaying this image, the calibration process seems to restart and try again with the calibration progress bar restarting and completing. At this point, the application shows a message saying the calibration process failed. Sometimes during this process the following log messages are printed multiple times:
 01/02 07:52:59,511 WARNING [139858018297600] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)
 01/02 07:52:59,713 WARNING [139858018297600] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)
 01/02 07:52:59,914 WARNING [139858018297600] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)

Lastly, would the calibration process fail if it receives an incomplete frame? From my testing, it seems that way, but it could just be a coincidence.

The Incomplete frame received warning makes me think that there may be a USB related problem occurring.  The link below discusses possible causes of this warning.
https://github.com/IntelRealSense/librealsense/issues/8202
It may also be worth trying the other available RealSense calibration tool, the Dynamic Calibrator.  Page 14 onward of the PDF user guide for the tool explains how to install it on Linux.
https://www.intel.com/content/www/us/en/support/articles/000026723/emerging-technologies/intel-realsense-technology.html

Hi @MartyG-RealSense, I am using a VM (Parallels) for my testing. Should that have any affect? If so, I will try to find a bare metal linux machine for further testing. As for the other suggestions (ASIC too hot, CPU over-utilized), those were not issues in my case. The only other potential issue suggested is that USB controller is somehow failing to handle the requests.
I've read about the Dynamic Calibrator but my use case for the camera is different and it won't work.

Using a VM may cause problems regarding interfacing with USB.  If you do need to use a VM, Intel suggest in the opening paragraph of the installation instructions link below to use VMware Workstation Player.
https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md

Hi @rlustig-gpfw  Do you require further assistance with this case, please?   Thanks!

Case closed due to no further comments received.

Hi @MartyG-RealSense, can we re-open this ticket? I got a separate laptop this week and it runs Ubuntu 16.04 (kernel 4.15.0-132-generic) exclusively (not a VM), hoping this would remove any software OS issues.
However, I still see the same issues. Running on-chip calibration on the fast setting, the calibration process starts for about 1 second and then the depth camera images on the viewer stop updating (the last depth image is frozen on the viewer). At the same time, the following log messages below are printed out (this is just a snippet - I get about 4 of these logs per second).
 19/02 11:08:15,847 WARNING [139843394860800] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)
 19/02 11:08:16,047 WARNING [139843394860800] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)
 19/02 11:08:16,248 WARNING [139843394860800] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)
 19/02 11:08:16,449 WARNING [139843394860800] (ds5-auto-calibration.cpp:455) hwmon command 0x80( 14 0 0 0 ) failed (response -10= Integrity error)

The only other option I can think of is to try a different camera. Do you have any further thoughts?

Hi @rlustig-gpfw   Thanks very much for the update.  I will re-open the case now, and will look at it again tomorrow.

I thoroughly re-tested the On-Chip Calibrator and got the same results as my original set of tests.  The errors were generated in the log but the process was able to complete successfully, provide a camera health-check value and offer to write the calibration to the camera or dismiss it.
Given that you have encountered the same problem on more than one computer, that would lend weight to it being a camera-related problem rather than a computer-related one.  The camera has a calibration table stored inside it that can prevent calibration it is has become corrupted.
A corrupted calibration table can be corrected by performing a process called a gold reset that restores the camera to its factory-new defaults.  This requires the installation of the RealSense Dynamic Calibration tool.  Instructions for doing so for Linux (Ubuntu 16.04) can be found on page 14 onwards of the tool's user guide.
https://www.intel.com/content/www/us/en/support/articles/000026723/emerging-technologies/intel-realsense-technology.html
Installation of the Dynamic Calibration tool should also install a tool called CustomRW that is discussed on page 58 of the guide.
If the CustomRW tool is launched from the Linux terminal with the -g condition using the instruction below then a gold reset of the camera should be initiated that should restore the camera's calibration table.
Intel.RealSense.CustomRW -g

Hi @rlustig-gpfw  Do you require further assistance with this case, please?   Thanks!

I was able to get a second camera and re-test all the calibration methods. Everything performed normally and the camera calibration for both intrinsics and extrinsics worked correctly.
For my other camera, I will try a gold reset and see if this fixes the issues I saw earlier.

Okay, thanks very much for the update!  I will close this ticket as suggested.  Good luck   :)

I met exactly the same problem. My camera is D435i.
I also tried to use the another D435 camera, indeed, no similar problem happened on that.
Though I could try to get a new camera or do the gold test to reset it to factory-defaults, but I still want to know why this thing happened.
Since some people like me will use the camera to collect a lot of data, we can not always turn to a new camera every time this problem happened, right?
Thank you for the understanding and hope could get your reply soon.

Hi @YuzheHao   I re-examined this issue but was not able to find any new information to add to the details above, unfortunately.


occt-ais-hello fails to compile in linux

I am trying to compile the occt-ais-hello example under ArchLinux. I don't know C++ (just very basic knowledge).
In order to compile it, I am doing:
$ mkdir build
$ cd build
$ cmake ../.
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Warning (dev) at /usr/share/cmake/Modules/FindOpenGL.cmake:315 (message):
  Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
  available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  FindOpenGL found both a legacy GL library:

    OPENGL_gl_LIBRARY: /usr/lib/libGL.so

  and GLVND libraries for OpenGL and GLX:

    OPENGL_opengl_LIBRARY: /usr/lib/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/libGLX.so

  OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
  compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
  CMakeLists.txt:12 (find_package)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Using OpenCASCADE from "/usr"
-- OpenCASCADE_INCLUDE_DIR=/usr/include/opencascade
-- OpenCASCADE_LIBRARY_DIR=/usr/lib
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/build
$ LANG=C make
Consolidate compiler generated dependencies of target occt-ais-hello
[ 50%] Building CXX object CMakeFiles/occt-ais-hello.dir/OcctAisHello.cpp.o
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp:93:16: error: 'virtual void OcctAisHello::ProcessExpose()' marked 'override', but does not override
   93 |   virtual void ProcessExpose() override
      |                ^~~~~~~~~~~~~
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp:102:16: error: 'virtual void OcctAisHello::ProcessConfigure(bool)' marked 'override', but does not override
  102 |   virtual void ProcessConfigure (bool theIsResized) override
      |                ^~~~~~~~~~~~~~~~
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp:114:16: error: 'virtual void OcctAisHello::ProcessInput()' marked 'override', but does not override
  114 |   virtual void ProcessInput() override
      |                ^~~~~~~~~~~~
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp: In constructor 'OcctAisHello::OcctAisHello()':
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp:61:48: error: 'class Aspect_DisplayConnection' has no member named 'GetDisplayAspect'; did you mean 'GetDisplayName'?
   61 |     Display* anXDisplay = (Display* )aDisplay->GetDisplayAspect();
      |                                                ^~~~~~~~~~~~~~~~
      |                                                GetDisplayName
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp: In function 'int main()':
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp:171:47: error: 'class Aspect_DisplayConnection' has no member named 'GetDisplayAspect'; did you mean 'GetDisplayName'?
  171 |   Display* anXDisplay = (Display* )aDispConn->GetDisplayAspect();
      |                                               ^~~~~~~~~~~~~~~~
      |                                               GetDisplayName
/home/jose/Descargas/occt/occt-hello-master/occt-ais-hello/OcctAisHello.cpp:176:14: error: 'class Xw_Window' has no member named 'ProcessMessage'
  176 |     aWindow->ProcessMessage (aViewer, anXEvent);
      |              ^~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/occt-ais-hello.dir/build.make:76: CMakeFiles/occt-ais-hello.dir/OcctAisHello.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/occt-ais-hello.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

What am I doing wrong here?

Compilation errors indicate that you are using some incompatible (older?) version of OCCT framework. If you have installed it from Linux repository, and your distro is not fresh - it is probably an old OCCT. The best way would be building OCCT on your own.

Yes you are right. Thanks for your quick response.


[1.x] Optionally uses control frames for handling ping and pong

This PR attempts to resolve #224
It's been reported that some of the Pusher clients don't support the pusher:ping|pong event format for handling pings and pongs and will, instead, rely on the low-level ping/pong control frames provided by the WebSocket specification.
This PR aims to address that by:

Defaulting to Pusher's pusher:ping|pong
Updating the last active timestamp on the connection when receiving a low-level ping control frame. The aim here is to prevent connections getting pruned by the PruneStaleConnections job
Set a boolean status on the connection of usesControlFrames when receiving a low-level ping control frame and, when this value is true, send low-level ping control frames when running the PingInactiveConnections job.

Had some good feedback to this PR on #224 so bringing this out of draft.


How to use multiple IAnnotationTransformer's?

TestNG Version

7.3.0

Expected behavior
Have this in the console
*AnnotationTransformer1* m1
*AnnotationTransformer1* m2
*AnnotationTransformer2* m1
*AnnotationTransformer2* m2

Actual behavior
This is in the console
*AnnotationTransformer2* m1
*AnnotationTransformer2* m2

Is the issue reproducible on runner?

[ ] Shell
[ ] Maven
[ ] Gradle
[ ] Ant
[ X] Eclipse
[ ] IntelliJ
[ ] NetBeans

Test case sample
I have the following testng.xml where I want to specify multiple IAnnotationTransformer implementations. One is provided from a library, that I can't change. One is my own. I would prefer not to extend the library one.
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite configfailurepolicy="continue" name="some-name" verbose="2">
    <listeners>
		<listener class-name="annotation.transformer.AnnotationTransformer1" />
		<listener class-name="annotation.transformer.AnnotationTransformer2" />
    </listeners>
	<test name="some-test-name" group-by-instances="true">
		<packages>
			<package name="annotation.transformer.*" />
		</packages>
	</test>
</suite>

TestClass
package annotation.transformer;
import org.testng.annotations.Test;

public class Tests {
	@Test
	public void m2() throws Exception {
		System.out.println("m1");
	}
	@Test
	public void m1() throws Exception {
		System.out.println("m2");
	}
}

My two IAnnotationTransformer implementations:
package annotation.transformer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.testng.IAnnotationTransformer;
import org.testng.annotations.ITestAnnotation;

public class AnnotationTransformer1 implements IAnnotationTransformer{
	@Override
	public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
		if(testMethod != null) {
			System.out.println("*AnnotationTransformer1* " + testMethod.getName());
		}
	}
}

package annotation.transformer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.testng.IAnnotationTransformer;
import org.testng.annotations.ITestAnnotation;

public class AnnotationTransformer2 implements IAnnotationTransformer{
	@Override
	public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) {
		if(testMethod != null) {
			System.out.println("*AnnotationTransformer2* " + testMethod.getName());
		}
	}
}

@drapostolos - Currently TestNG does not allow you to wire in more than one IAnnotationTransformer (Now historically why this was decided so is not clear to me as well). But you can build a composite annotation transformer which can still work with multiple annotation transformers internally.
Please refer to https://github.com/cbeust/testng/issues/1894#issuecomment-412249299 for a full fledged sample.
Since this topic is already being discussed as part of https://github.com/cbeust/testng/issues/1894 I am going to close this as a duplicate of https://github.com/cbeust/testng/issues/1894


feat: changes needed to accommodate pets datasets.

The next PR will fix the Gradio template.
Related to #35.

Why are we passing?
https://github.com/deep-diver/semantic-segmentation-ml-pipeline/blob/141c0947a2aff43a8f960d4119b0d9857ff26fec/training_pipeline/kubeflow_runner.py#L24-L25
Asking because we're already specifying the epochs.

The pipeline is currently failing the training step and I couldn't know why from the logs on Vertex.
A question:

Why are using

https://github.com/deep-diver/semantic-segmentation-ml-pipeline/blob/141c0947a2aff43a8f960d4119b0d9857ff26fec/training_pipeline/models/signatures.py#L36
When the model's input name is actually different?
https://github.com/deep-diver/semantic-segmentation-ml-pipeline/blob/141c0947a2aff43a8f960d4119b0d9857ff26fec/training_pipeline/models/train.py#L96

Why are we passing? Asking because we're already specifying the epochs.

yeah this parameters are not used currently.

Also, help me understand why do we need this resizing?

that part should be modified. we haven't modified it to suit to the different dataset(pets)

Why do we need to transform the input feature names using transformed_name()?

this is not a requirement. I just did this to distinguish transformed and not-transformed features.

return {CONCRETE_INPUT: decoded_images}

oh, then this might be a mistake.

@deep-diver for this PR for training, I would like to work on this branch. For the latter changes, I will work on a fork so that I can set up the secrets and run using my own GCP credits.

Also, it seems like the Vertex AI training service is unable to find CUDA:

Training seems to be working: https://console.cloud.google.com/vertex-ai/locations/us-central1/pipelines/runs/segmentation-training-pipeline-20221030053858.

The Space and the HF model pusher seem to be working well.
We need to take care of the rest of the concerns expressed in the PR. I will let you go through them once again and then we can discuss more.
The main thing that needs to be resolved is the Gradio template.

The main thing that needs to be resolved is the Gradio template.

need to modify Gradio template to work well on Pets dataset?

The main thing that needs to be resolved is the Gradio template.

need to modify Gradio template to work well on Pets dataset?

Right!
But there are other concerns that need to be addressed as well.

@sayakpaul
let's list them up, and split the workloads!

@sayakpaul
let's list them up, and split the workloads!

They are enlisted as comments in this PR. Let me know if they are unclear.

resizing
transformed_name()
{CONCRETE_INPUT: decoded_images}

right?

And Gradio template.

Let's first merge this PR. I will open separate issues for each one of them

Sounds good.

@sayakpaul
oh, I didn't know this PR is still open. I thought we were going to open separate PRs for the listed issues after merging this PR.

Let's

https://github.com/deep-diver/semantic-segmentation-ml-pipeline/pull/38#issuecomment-1296301152

then, I will create a branch on top of the branch of this PR for each issues :)

Do we want to merge it first?

that was my initial intention, wdyt?

Sounds good.


Error while run dist - something wrong about $colors _variables.scss

When I run npm run dist, I see this error. But I don't understand it:
(...)
✔ Finished assets/css/docs.min.css (842ms)
{
  "status": 1,
  "file": "/www/bs-rz2/scss/_variables.scss",
  "line": 86,
  "column": 10,
  "message": "(blue: #007bff, indigo: #6610f2, purple: #6f42c1, pink: #e83e8c, red: #dc3545, orange: #fd7e14, yellow: #ffc107, green: #28a745, teal: #20c997, cyan: #17a2b8, white: #fff, gray: #868e96, gray-dark: #343a40) isn't a valid CSS value.",
  "formatted": "Error: (blue: #007bff, indigo: #6610f2, purple: #6f42c1, pink: #e83e8c, red: #dc3545, orange: #fd7e14, yellow: #ffc107, green: #28a745, teal: #20c997, cyan: #17a2b8, white: #fff, gray: #868e96, gray-dark: #343a40) isn't a valid CSS value.\n        on line 86 of scss/_variables.scss\n>> $colors: (blue: $blue, indigo: $indigo, purple: $purple, pink: $pink, red: $re\n   ---------^\n"
}

My bad. I was wrong using this colors map.


Github extension prompts for login details even though cacel was selected

Type: Bug
If pressing cancel (or  using escape) when presented with the prompt "The extension GitHub want to sign in using GitHub", I am still prompted for username/password. Needless to say, but I will anyway, this is quite annoying when I already deliberately chose not to.
 It looks like you may be using an old version of VS Code, the latest stable release is 1.91.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Issue ramins after updating to latest available version (1.91.0-1719861592) in the official Microsoft VSCode apt repository.
$ code --version
1.91.0
ea1445cc7016315d0f5728f8e8b12a45dc0a7286
x64

/gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!


Do not include generics in the generated named imports

This very simple change should fix fumeapp/modeltyper#22 (support for generics).

LMK what you think @tcampbPPU

LMK what you think @tcampbPPU

yup will review later today, thanks @nonetallt for your contribution!

https://github.com/fumeapp/modeltyper/releases/tag/v2.0.4


Update installation script for success on Fedora 22, and hopefully

rest of commit message:
other dnf/yum-using distros.

Uses npm to install phantomjs, due to lack of rpm package.
Also, made some fixes recommended by shellcheck.

Signed-off-by: Dale Visser<EMAIL_ADDRESS>

[Current coverage][cc-pull] is 97.06%

Merging [#368][cc-pull] into [master][cc-base-branch] will decrease coverage by 0.21%

@@             master       #368   diff @@
==========================================
  Files            33         32     -1
  Lines           813        781    -32
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits            791        758    -33
- Misses           22         23     +1
  Partials          0          0

2 files (not in diff) in app/validators were modified. more
3 files (not in diff) in app/models were modified. more

Hits -1

2 files (not in diff) in app/mailers were modified. more
11 files (not in diff) in app/lib were modified. more
4 files (not in diff) in app/helpers were modified. more
7 files (not in diff) in app/controllers were modified. more

Misses +1
Hits +1

File app/models/badge.rb (not in diff) was deleted. more

Powered by Codecov. Last updated by [35fc99f...dbd8ba9][cc-compare]
[cc-base-branch]: https://codecov.io/gh/linuxfoundation/cii-best-practices-badge/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/linuxfoundation/cii-best-practices-badge/compare/35fc99ff9dd3bf5c64a6ce11f3840a0668978e34...dbd8ba9f6ac073e095e9d8d6185de9a6219e70d6
[cc-pull]: https://codecov.io/gh/linuxfoundation/cii-best-practices-badge/pull/368?src=pr


Add Tornjak ingress

Thanks @mrsabath for introducing this change as a separate PR. Its more work for the submitter but helps the review process.

https://github.com/spiffe/helm-charts-hardened/pull/16#pullrequestreview-1658365176
Thanks @kfox1111 I was thinking about providing some examples and updated to README when we are done with OpenShift, as it is easier to demonstrate the steps in there.


table handling remote cellEdits and pagination not working when handling table changes

Hi I am having problem when using pagination to go to next page, error below
MyContainer.js:116 Uncaught TypeError: Cannot read property 'rowId' of undefined
and here is the definition for my  table change handler
handleTableChange = (type, { page, sizePerPage, filters, cellEdit: {rowId, dataField, newValue }  }) => {
at MyContainer._this.handleTableChange (MyContainer.js:116)
if am only using the pagination on the table, it seems the handleTableChange to expect passing values for cellEdit { .. }
am not sure if there is way around it, your example of remote-all, includes filtering and pagination but not cellEdit , so am not sure what am trying to do is possible or not!
thanks
Aveen

please ignore , i solved it, just read on paginationsProps docs that we can't do remote when pagination is enabled, so I had to explicitly set it as
remote={{pagination: true, cellEdit: false, filter: false}}

hi @aaveen sorry for lately reply, it might be not a bug but I need to clearify this issue firstly,
Could you please explain the reproduce steps and I saw your error message is from your code instead of react-bootstrap-table2. so it will be good to show me your code but please keep it simple and minimal
Regards
Thanks

Hi Allen
Thanks for getting back to me,
here is the code I managed to combine from the examples in the repo the remoteAll and just the setup for cellEdit, it uses same productGenerator you have in repo.
and I just hooked that into my create-react-app , and after I edit a cell then i try to change the page to page 2 for example , i get this error
Thanks for helping
Aveen
error:
Container.js:71 Uncaught TypeError: Cannot read property 'rowId' of undefined
at Container._this2.handleTableChange (Container.js:71)
at PaginationWrapper.handleRemotePageChange (remote-resolver.js:79)
at PaginationWrapper.handleChangePage (wrapper.js:142)
at Pagination.handleChangePage (pagination.js:138)
at PageButton.handleClick (page-button.js:47)
at HTMLUnknownElement.callCallback (react-dom.development.js:542)
at Object.invokeGuardedCallbackDev (react-dom.development.js:581)
at Object.invokeGuardedCallback (react-dom.development.js:438)
at Object.invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:452)
at executeDispatch (react-dom.development.js:836)
at executeDispatchesInOrder (react-dom.development.js:858)
at executeDispatchesAndRelease (react-dom.development.js:956)
at executeDispatchesAndReleaseTopLevel (react-dom.development.js:967)
at Array.forEach ()
at forEachAccumulated (react-dom.development.js:935)
at processEventQueue (react-dom.development.js:1112)
at runEventQueueInBatch (react-dom.development.js:3607)
at handleTopLevel (react-dom.development.js:3616)
at handleTopLevelImpl (react-dom.development.js:3347)
at batchedUpdates (react-dom.development.js:11082)
at batchedUpdates (react-dom.development.js:2330)
at dispatchEvent (react-dom.development.js:3421)
code for Container.js
/* eslint guard-for-in: 0 /
/ eslint no-restricted-syntax: 0 */
import React from 'react';
import PropTypes from 'prop-types';
import BootstrapTable from 'react-bootstrap-table-next';
import paginationFactory from 'react-bootstrap-table2-paginator';
import filterFactory, { textFilter, Comparator } from 'react-bootstrap-table2-filter';
import cellEditFactory from 'react-bootstrap-table2-editor';
import { productsGenerator } from './common.js';
const products = productsGenerator(87);
const columns = [{
dataField: 'id',
text: 'Product ID'
}, {
dataField: 'name',
text: 'Product Name',
filter: textFilter()
}, {
dataField: 'price',
text: 'Product Price',
filter: textFilter()
}];
const cellEdit = {
mode: 'click'
};
const RemoteAll = ({ data, page, sizePerPage, onTableChange , totalSize }) => (

When remote.pagination is enabled, the filtering,
      sorting and searching will also change to remote mode automatically

);
RemoteAll.propTypes = {
data: PropTypes.array.isRequired,
page: PropTypes.number.isRequired,
totalSize: PropTypes.number.isRequired,
sizePerPage: PropTypes.number.isRequired,
onTableChange: PropTypes.func.isRequired
};
class Container extends React.Component {
constructor(props) {
super(props);
this.state = {
page: 1,
data: products.slice(0, 10),
totalSize: products.length,
sizePerPage: 10
};
this.handleTableChange = this.handleTableChange.bind(this);
}
handleTableChange  = (type, { page, sizePerPage, filters, cellEdit: { rowId, dataField, newValue }}) => {
console.log('rowID ', rowId);
const currentIndex = (page - 1) * sizePerPage;
setTimeout(() => {
const result = products.filter((row) => {
let valid = true;
for (const dataField in filters) {
const { filterVal, filterType, comparator } = filters[dataField];
      if (filterType === 'TEXT') {
        if (comparator === Comparator.LIKE) {
          valid = row[dataField].toString().indexOf(filterVal) > -1;
        } else {
          valid = row[dataField] === filterVal;
        }
      }
      if (!valid) break;
    }
    return valid;
  });
  this.setState(() => ({
    page,
    data: result.slice(currentIndex, currentIndex + sizePerPage),
    totalSize: result.length,
    sizePerPage
  }));
}, 2000);

}
render() {
const { data, sizePerPage, page } = this.state;
return (
<RemoteAll
data={ data }
page={ page }
sizePerPage={ sizePerPage }
totalSize={ this.state.totalSize }
onTableChange={ this.handleTableChange }
/>
);
}
}
export default Container;

Hi I know you guys are really busy, however am really stuck and not sure what I done wrong, am new to frontend development so an example of remoteAll with cellEditing added could help me, or check if this is the correct way of passing the cellEdit param in my handler handleTableChange = (type, { page, sizePerPage, filters, cellEdit: { rowId, dataField, newValue }}) => {
Again this works for cellEditing but pagination breaks as i mentioned in my first post!!
Thanks
Aveen

i fixed it , changed  param to  handleTableChange  = (type, { page, sizePerPage, filters, cellEdit})


[knife.system] create value base components

Is it possible to use value base components like this:
local entity = {
position = { x = 0, y = 0},
health = 100
}
it is possible to create and read them in a system but i cannot change the value of them. Health always stays 100.

Lua has no pass-by-reference for primitives, so primitive components are generally treated as immutable in knife.system. To work around it you can use the "_entity" pseudo-component and change the value of _entity.health, or you can promote health to a table (maybe you want to store a max health or a "pain delta" along with the current health)?

I think knife.system is due for an overhaul. I might take the entity management stuff out and let adding, removing and iterating entities all move to user code. Then we can use return values to mutate primitive components like above.

I like the way this system works and how you handle iterating. I will use a table as primitive.

Too late! This might be a good time to fork it ;)
I think this is good in the long run, module code becomes much simpler and more flexible, and user code only needs one extra for-loop. This also means you'll generally only make one pass over the entities, applying all systems to each entity before processing the next, instead of making one pass for each system. This won't affect update systems much, but will make it possible to do some things in drawing systems that weren't possible before.
So you'd write:
function love.update (dt)
    for i = 1, #entities do
        updateFoo(entities[i], dt)
        updateBar(entities[i], dt)
        updateBaz(entities[i], dt)
        updateQux(entities[i], dt)
    end
end

Instead of:
function love.update (dt)
    updateFoo(entities, dt)
    updateBar(entities, dt)
    updateBaz(entities, dt)
    updateQux(entities, dt)
end

That's not so bad, right?
Here's a preview of the upcoming knife.system, will push this as soon as documentation is ready.
local loadstring = _G.loadstring or _G.load
local tconcat = table.concat
local type = type

local function hasSigil (sigil, value)
    return type(value) == 'string' and sigil:byte() == value:byte()
end

return function (aspects, process)
    local args = {}
    local cond = {}
    local results = {}
    local localIndex = 0
    local choicePattern = '([^|]+)'

    local function suppress (aspect, condition)
        cond[#cond + 1] = 'if nil'
        for option in aspect:gmatch(choicePattern) do
            cond[#cond + 1] = condition:format(option)
        end
        cond[#cond + 1] = 'then return end'
    end

    local function supply (aspect, isOptional, isReturned)
        localIndex = localIndex + 1
        cond[#cond + 1] = ('local l%d = nil'):format(localIndex)
        for option in aspect:gmatch(choicePattern) do
            cond[#cond + 1] = ('or _entity[%q]'):format(option)
        end
        if not isOptional then
            cond[#cond + 1] = ('if not l%d then return end'):format(localIndex)
        end
        if isReturned then
            results[#results + 1] = ('_entity[%q]'):format(aspect)
        end
        args[#args + 1] = ('l%d'):format(localIndex)
    end

    for index = 1, #aspects do
        local aspect = aspects[index]
        if hasSigil('_', aspect) then
            args[#args + 1] = aspect
        elseif hasSigil('!', aspect) or hasSigil('~', aspect) then
            suppress(aspect:sub(2), 'or _entity[%q]')
        elseif hasSigil('-', aspect) then
            suppress(aspect:sub(2), 'or not _entity[%q]')
        elseif hasSigil('?', aspect) then
            supply(aspect:sub(2), true)
        elseif hasSigil('=', aspect) then
            supply(aspect:sub(2), false, true)
        else
            supply(aspect, false)
        end
    end

    local source = ([[
local _aspects, _process = ...
return function (_entity, ...)
    %s
    %s _process(%s ...)
    return true
end]]):format(
        tconcat(cond, ' '),
        results[1] and (tconcat(results, ',') .. ' = ') or '',
        args[1] and (tconcat(args, ', ') .. ', ') or '')

    return loadstring(source)(aspects, process)
end


Drop xattrs and allow for more hands-on with keywords

Drop teh default xattrs from the generation as this has probed
troublesome when working with docker, as it doesnt keep some file
capabilities so the mtree checks never succedes.
Also adds a new option -K to override the keyword list. This will allow
us to control the keywords used in the future as it allows us not only
to expand the default keywords (sha512digest and type) but also to fully
override the list of keywords via command line instead of having to
modify the code to add those.
The default ones left in the code are the basic ones that we need, if
something needs to drop those, then the mtree check is utterly useless.
Signed-off-by: Itxaka<EMAIL_ADDRESS>

Should probably cut a new version of the package with this changes once its merged

Codecov Report

Merging #7 (9fece26) into master (3d78eef) will increase coverage by 10.72%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           master       #7       +/-   ##
===========================================
+ Coverage   43.05%   53.78%   +10.72%
===========================================
  Files           5        5
  Lines         216      238       +22
===========================================
+ Hits           93      128       +35
+ Misses        103       86       -17
- Partials       20       24        +4

Impacted Files
Coverage Δ

pkg/action/generate.go
57.14% <100.00%> (+57.14%)
:arrow_up:

pkg/action/archive.go
0.00% <0.00%> (ø)

pkg/action/unpack.go
64.38% <0.00%> (+0.49%)
:arrow_up:

pkg/action/event.go
75.86% <0.00%> (+2.78%)
:arrow_up:

pkg/action/check.go
48.61% <0.00%> (+4.86%)
:arrow_up:

Continue to review full report at Codecov.

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


[Bug] Join optimizer broken for pushdowns to only the right side

Describe the bug
When joins are followed by a Projection (or LocalAggregation) that only accesses columns from the right dataframe, the optimizer will break.
To Reproduce
The unit test on the branch #590  breaks (run: pytest -k test_projection_join_pruning), but here is a simple reproducing case.
df = DataFrame.from_pydict({"a": [1, 2, 3], "b": [4, 5, 6]})
df.join(df, on="a").select("right.b").collect()

This is a much deeper-rooted problem with regard to identification of expressions using only-names vs a unique ID.
Will be addressed later after our Rust refactor.

Closing this as fixed!


[Fix] T-Spin Single sends 1 line instead of 2, T-Spin Double sends 3 lines instead of 4 and T-Spin Triple sends 5 lines instead of 6

Then what's the point of doing T-Spin if they become weak?

it's a simple fix ig

oh, i'm an idiot. i read it wrong. sorry, i'm not a native english speaker. ;(

I just weakened T-spins, this is my purpose.
T-spins send less amount of garbage but with more messiness.

Closed.


create virtual ip

i want to create a virtual interface, debian equivalent would be:
auto eth0:1
 iface eth0:1 inet static
 address <IP_ADDRESS>

the nixos-rebuild switch works with this configuration.nix, no syntax error, but ifconfig don't show the second interface.
networking.interfaces = {
  eth0.ip4 = [ { address = "<IP_ADDRESS>"; prefixLength = 24; } ];
  "eth0:1".ip4 = [ { address = "<IP_ADDRESS>"; prefixLength = 24; } ];
};

i tried with the virtual option but i think that is something different:
networking.interfaces = {
  eth0.ip4 = [ { address = "<IP_ADDRESS>"; prefixLength = 24; } ];
  "eth0:1" = {
    ip4 = [ { address = "<IP_ADDRESS>"; prefixLength = 24; } ];
    virtual = true;
    virtualType = "tun";
  };
};

starting the following units: network-addresses-eth0.service, systemd-modules-load.service
warning: the following units failed: eth0:1-netdev.service

● eth0:1-netdev.service - Virtual Network Interface eth0:1
   Loaded: loaded (/nix/store/2npfn9nh1f82xr2qvhsyvqbggag6aasy-unit-eth0-1-netdev.service/eth0:1-netdev.service)
   Active: failed (Result: exit-code) since Mo 2015-11-09 01:45:34 CET; 1min 30s ago
  Process: 5704 ExecStart=/nix/store/g3q774xh9qdrwabzz52ngl3yb10aviqi-unit-script/bin/eth0:1-netdev-start (code=exited, status=1/FAILURE)
 Main PID: 5704 (code=exited, status=1/FAILURE)

Nov 09 01:45:34 cg-gw eth0:1-netdev-start[5704]: ioctl(TUNSETIFF): Invalid argument
Nov 09 01:45:34 cg-gw systemd[1]: eth0:1-netdev.service: main process exited, code=exited, status=1/FAILURE
Nov 09 01:45:34 cg-gw systemd[1]: Failed to start Virtual Network Interface eth0:1.
Nov 09 01:45:34 cg-gw systemd[1]: Unit eth0:1-netdev.service entered failed state.
Nov 09 01:45:34 cg-gw systemd[1]: eth0:1-netdev.service failed.
warning: error(s) occured while switching to the new configuration

when i use this configuration, i have 2 ips on eth0, but i need a second interface to apply iptables rules to it.
networking.interfaces = {
  eth0.ip4 = [ { address = "<IP_ADDRESS>"; prefixLength = 24; } { address = "<IP_ADDRESS>"; prefixLength = 24; } ];
};

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet <IP_ADDRESS>/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether be:54:2b:f2:81:ae brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet <IP_ADDRESS>/24 scope global secondary eth0
       valid_lft forever preferred_lft forever

This might be related: https://github.com/NixOS/nixpkgs/issues/7227

Maybe this is also related: https://github.com/NixOS/nixpkgs/issues/2590

Looks like we have a lot of duplicates :smile:
@wkennington seemed to know a lot about this problem when I talked to him about my loopback issue, but he suggested that my loopback problem was due to some special-casing in some of the systemd code. Not sure what causes your issue.

(triage) what’s the status?

that still don't work and we need a solution / documentation.

I'm using this configuration.
boot.kernelModules = ["dummy"];
networking.interfaces = {
  dummy0.ip4 = [{
    address = "<IP_ADDRESS>";
    prefixLength = 24;
  }];
};

It seems to work fine without touching my real interfaces nor interfering with NetworkManager.
I'm a networking newbie so I don't know exactly what a dummy interface is, but it seems to work for me as a virtual local interface.

To create a virtual IP or Interface alias (as the debian wiki called it), you can just specify multiple IPs like this:
    interfaces = {
      ens3.ip4 = [
        { address = "<IP_ADDRESS>"; prefixLength = 24; }
        { address = "<IP_ADDRESS>"; prefixLength = 24; }
      ];
      ens3.ip6 = [
        { address = "2a01:03f8:0c17:5c0e::1"; prefixLength = 64; }
        { address = "2a01:03f8:0c17:5c0e::2"; prefixLength = 64; }
        { address = "2a01:03f8:0c17:5c0e::3"; prefixLength = 64; }
        { address = "2a01:03f8:0c17:5c0e::4"; prefixLength = 64; }
        { address = "2a01:03f8:0c17:5c0e::15"; prefixLength = 64; }
      ];
    };

The networking.interfaces.<name?>.ip4 option describes this now clearly:

List of IPv4 addresses that will be statically assigned to the interface.

So this issue can get closed now :)

There's another solution which is to use macvlans, which is pretty close and exactly what I needed
(In my case this allows olsrd to run on it's own interface without having network manager interfere)
{
  networking = {
    macvlans.mesh0 = {
      interface = "eth0";
    };
    interfaces = {
      mesh0 = {
        ipv4 = {
          addresses = [
            {
              address = ''<IP_ADDRESS>'';
              prefixLength = 16;
            }
          ];
        };
      };
  };
}

To create a virtual IP or Interface alias (as the debian wiki called it), you can just specify multiple IPs like this:
    interfaces = {
      ens3.ip4 = [
        { address = "<IP_ADDRESS>"; prefixLength = 24; }
        { address = "<IP_ADDRESS>"; prefixLength = 24; }
      ];
    };

So this issue can get closed now :)

Hi there.
But you've mentioned :

when i use this configuration, i have 2 ips on eth0, but i need a second interface to apply iptables rules to it.

With this solution you still have a single interface.

#issuecomment-375982216
This doesn't work with DHCP and firewall rules, like opening a port only on a specific ip address also doesn't work.


qt: Dialog for allowing the user to choose the change output when bumping a tx

Based on https://github.com/bitcoin/bitcoin/pull/26467
Implements a GUI dialog for allowing the user to choose the output to reduce when bumping a transaction. This adds the functionality that was added to the RPC.

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews
See the guideline for information on the review process.
A summary of reviews will appear here.

Can you add a screenshot to the PR description?

Can we be a bit more bold and just assume that a change address is change, and not show the dialog in that case? Ideally we don't show such a dialog more often than necessary.

That would prevent the case where you wanted to deduct the extra fee from the recipient, such as when you initially selected "Subtract fee from amount".
Ideally, you'd only show the dialog if that were selected previously, but I don't think it's persisted anywhere. Eg -
https://github.com/bitcoin-core/gui/blob/30f553d45797847166109a161628dba3bf00bc94/src/qt/sendcoinsrecipient.h#L42
I could be wrong, though.

🐙 This pull request conflicts with the target branch and needs rebase.

There hasn't been much activity lately and the patch still needs rebase. What is the status here?

Is it still relevant? ➡ Please solve the conflicts to make it ready for review and to ensure the CI passes.
Is it no longer relevant? ➡ Please close.
Did the author lose interest or time to work on this? ➡ Please close it and mark it 'Up for grabs' with the label, so that it can be picked up in the future.

Concept ACK. I'd just show "Change" for the change, though. End users shouldn't need to know about change addresses.

🐙 This pull request conflicts with the target branch and needs rebase.

🐙 This pull request conflicts with the target branch and needs rebase.

🐙 This pull request conflicts with the target branch and needs rebase.

⌛ There hasn't been much activity lately and the patch still needs rebase. What is the status here?

Is it still relevant? ➡ Please solve the conflicts to make it ready for review and to ensure the CI passes.
Is it no longer relevant? ➡ Please close.
Did the author lose interest or time to work on this? ➡ Please close it and mark it 'Up for grabs' with the label, so that it can be picked up in the future.

Rebased and fixed the build issue in the first commit.


TypeScript: improve refactor-rename behavior for merged declarations

Currently, if you have e.g. a function-namespace merged declaration, or an interface-namespace merged declaration, attempting to refactor-rename one component of the merged declaration keeps the other components name unchanged. For example, if you rename the function, the merged namespace doesn't rename.
The result is that the merged declaration becomes unmerged.
An unfortunate consequence of this is that other files referencing the merged declaration don't seem to be able to decide which name to keep, with the current behavior being keeping the name in its usage (e.g. a function call).
My proposal is that the behavior change to renaming every component of the merged declaration, such that the overall merged property of the declaration is not destroyed.
My justification for it is that the developer has intentionally merged the declaration, and the rename action should preserve this intention. If the developer intentionally chooses to break the merge, it is that developer's responsibility to manually ensure all references import the right former merge components' new names after the unmerge, this being something the machine likely cannot accurately decide on the human's behalf.
Use cases
I often do merge declarations to keep declarations and implementations in the same file while keeping the export space relatively tidy. The intention is to scope names that are particular to some principal functionality instead of having e.g. myFunction , ResultForMyFunction, ArgForMyFunction polluting the export space (and thereby the auto-import suggestions).
In all cases below, it makes sense that a refactor-rename attempt would rename all components of the merged declarations.
Here is an example for a React component and its props.
export namespace SomeReactComponent {
   export interface Props {
      // ...
   }
}

export function SomeReactComponent(props: SomeReactComponent.Props){
   /* ... */
}

Here is another example of an API payload schema and its runtime declaration
export namespace SomeApiPostPayload {
   export function validate(value: unknown): value is SomeApiPostPayload {
      //
  }
}

export interface SomeApiPostPayload {
   // ...
}

This is also especially useful when you have a function that relies on some kind of external context for dependency inversion and you would like to employ interface segregation hierarchically so that what you need to provide just kind-of "emerges":
// foo.ts
export namespace foo {
    export interface Context {}
}

export function foo(/* ..., */ context: foo.Context){
    // ...
}

// bar.ts
export namespace bar {
    export interface Context {}
}

export function bar(/* ..., */ context: bar.Context){
    // ...
}

// foobar.ts
import { foo } from "./foo.ts";
import { bar } from "./bar.ts";

export namespace foobar {
    export interface Context extends foo.Context, bar.Context {}
}

export function foobar(/* ..., */ context: foobar.Context){
    // ...
}

Or in the cases where result and error types are particular to a module rather than a project-wide shared data structure.
export namespace foo {
   export interface Result { /* ... */ }
   export interface Error { /* ... */ }
}

// assume type Failable<Success, Failure> =
//   ({ ok: true } & Success) | ({ ok: false } & Failure)
// or some such notion
export function foo(): Failable<foo.Result, foo.Error> {
   /* ... */
}

Moving upstream for further discussion

I think I'm also running into this. Reduced test case:
// other.ts
export const Foo = {};
export type Foo = {};

// main.ts
import { Foo } from './other';

const copy: Foo = Foo;

If I go into other.ts and rename the type Foo, the value name is not updated, which breaks usages in main.ts:
// other.ts
export const Foo = {};
export type FooRenamed = {};

// main.ts
import { FooRenamed } from './other';

const copy: FooRenamed = Foo;

Is this the same issue as you're describing @soul-codes?
One workaround I've found is to run the update at the import level (e.g. in main.ts).

@OliverJAsh what you described is exactly it.
Sadly I was unable to use workaround you suggest to rename the original declaration though (unless I misunderstood what you meant).

Aside: the behavior as seen above is the "correct" one in my opinion. It's consistent with other behavior elsewhere that a local rename shouldn't affect the name of the original declaration (this is analogous to, say, renaming foo in the object expression { foo } would yield { foo: fooRenamed } and not { fooRenamed })

Ah, I see different behaviour, probably because I've disabled typescript.preferences.renameShorthandProperties.


Create Project Plan

Get information pf Project and Create Project plan Document

Kickoff Meeting with client.
Get draft requirement.
Create Project Plan document

Kick-off meeting with client - Meeting note

Requirement

Build a online e-commerce for selling toys and teddy bears for children.
The system support payment online for Vietnamese market.
The client can monitor real-time sale statistics and get report for sales.

Timeline for project is 1 month

Technical Request is NONE.

Create Project Plan

Using document template from https://sceweb.sce.uhcl.edu/helm/RUP_Folder/RationalUnifiedProcess/process/templates.htm


ModuleNotFoundError: No module named 'tensorflow.contrib.tpu.python.tpu.topology

I have no tpu but I have gpu
how to solve this error
Thanks

Sorry for late..
When does that happen?


Data table size?

The size of the row shown in the data_table is fixed at 10. Please improve so that this size can be specified.

You just need to make one change in the pagination var to dict from bool and pass the config in the datatable pagination arg. You can pass limit and summary to limit the no of rows and also show the summary .
Take a look at the snip below

Fixed via #1646


include lockdown stringency index

OWID provides lockdown stringency index data. Including it will allow the user asses the lockdowns' impact on mortality.

Done in cb7a932.


Fixed redis stats block

Hey @vcapretz! I've fixed displaying of cached redis stats in version 0.6.0. Could you create a branch for fixes for previous release, so that I can change base branch for my PR?

hey, @epoberezhny
thanks for the contribution, just created latest-stable branch so we can keep merging things in there to release before our alpha version 👍

Cool 👍 Thanks a lot! I've changed the base branch

Perfect 👍 Thanks for you package! I'm looking forward for this!

hey, @epoberezhny :D
sorry for the delay, published just now in 0.8.0, please update the package and let me know if something is odd 👍

Hey @vcapretz ! No problem 👍 Thanks, works perfect!


GTK 3.0 development libraries are required for Linux development on debian

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
I have run this command after manual installation of flutter in debian
Actual results
I followed with this issue https://github.com/flutter/flutter/issues/63749#top over here but all dependency are already  installed when i run this command  sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev
the output i get is:
`Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
clang is already the newest version (1:14.0-55.6).
cmake is already the newest version (3.26.4-4).
ninja-build is already the newest version (1.11.1-1).
pkg-config is already the newest version (1.8.1-1).
libgtk-3-dev is already the newest version (3.24.37-2).
liblzma-dev is already the newest version (5.4.1-0.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
`
Logs

Logs

<!-- Paste your logs here -->

Flutter Doctor output

`[✓] Flutter (Channel stable, 3.10.5, on Debian GNU/Linux trixie/sid
6.3.0-2-amd64, locale en_US.UTF-8)
• Flutter version 3.10.5 on channel stable at /home/black/dev/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 796c8ef792 (4 weeks ago), 2023-06-13 15:51:02 -0700
• Engine revision 45f6e00911
• Dart version 3.0.5
• DevTools version 2.23.1
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /home/black/Android/Sdk
• Platform android-34, build-tools 34.0.0
• Java binary at:
/home/black/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.445
9.24.2221.10121639/jbr/bin/java
• Java version OpenJDK Runtime Environment (build
17.0.6+0-17.0.6b802.4-9586694)
• All Android licenses accepted.
[✓] Chrome - develop for the web
• Chrome at google-chrome
[✗] Linux toolchain - develop for Linux desktop
• Debian clang version 14.0.6
• cmake version 3.26.4
• ninja version 1.11.1
• pkg-config version 0.29.2
✗ GTK 3.0 development libraries are required for Linux development.
They are likely available from your distribution (e.g.: apt install
libgtk-3-dev)
[✓] Android Studio (version 2022.2)
• Android Studio at
/home/black/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/222.445
9.24.2221.10121639
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
17.0.6+0-17.0.6b802.4-9586694)
[✓] VS Code (version 1.80.0)
• VS Code at /usr/share/code
• Flutter extension version 3.68.0
[✓] Connected device (2 available)
• Linux (desktop) • linux  • linux-x64      • Debian GNU/Linux trixie/sid
6.3.0-2-amd64
• Chrome (web)    • chrome • web-javascript • Google Chrome 114.0.5735.198
[✓] Network resources
• All expected network resources are available.
! Doctor found issues in 1 category.`

<!-- Paste your output here -->

What does each of the following return?
pkg-config --exists gtk+-3.0
pkg-config --exists glib-2.0
pkg-config --exists gio-2.0

after doing a system update and upgrade they are not showing any output

What does each of the following return?
pkg-config --exists gtk+-3.0
pkg-config --exists glib-2.0
pkg-config --exists gio-2.0

After doing an system update and upgrade they are not showing  showing any output

But what are the return values of the commands? (I.e., $? after each one)

Hi just reinstalled flutter after a dist_upgrade and its working without any issue

But what are the return values of the commands? (I.e., $? after each one)

greetings again i have just reinstalled flutter after apt dist-upgrade and it is working finely, thank you very much for taking your time to respond to my troubles


resolved issue #2383

resolved #2383
@ohcnetwork/care-backend-maintainers @ohcnetwork/care-backend-admins

hey @Dishaswamy this prs has unrelated changes to files and the indentation is also incorrect,
read the following docs and open a new pr again:
https://docs.ohc.network/docs/contributing/
https://github.com/ohcnetwork/care/blob/develop/CONTRIBUTING.md

You should start working on a Pull request only when you are assigned the issue.


fix needs issue when release installed is false

fix: https://github.com/helmfile/helmfile/issues/987

Fix needs issue when release installed is false.
It just logs currently.
@mumoshu

@mumoshu WDYT about the changes?

@mumoshu

ping

Would be great to see this fixed @yxxhero @mumoshu

@mumoshu updated.

@pathob merged.


Skip to content link failing on 'Design: Visible focus: Elements must be visible on focus'

Summary
When I run bbc-a11y on https://www.stage.bbc.com/pidgin I get the following error:
 Design: Visible focus: Elements must be visible on focus - Element is invisible on focus: //div[@id='root']/header/nav/div/a
If you press the TAB key to move through the page you will see the skip to content after the 'BBC News Pidgin' link, is visible on focus.

If you run it in interactive mode the test passes. Somehow focus is not triggered in headless in electron headless mode. npm run bbcA11y -- -i

This issue is specific to macOS, it doesn't show on Linux.

Wondering if #282 might be a possible solution.

This is blocking us going live
For visibility, can someone with write access to this repo please add the Simorgh project to this issue (and a ws-media-stream label if possible)

This error also seems to be happening on localhost and not on CI - Could be related - Please also investigate @jroebu14 https://bbcnews.slack.com/archives/GHRMZSQ80/p1577721640012300

@greenc05 I can't reproduce this error. Has it been fixed?

@jroebu14 I can't reproduce it on https://www.stage.bbc.com/pidgin Did you check running the tool on localhost? If you still can't reproduce, please close

@greenc05 I did try localhost too. I'll close this issue then. We can reopen if it somehow appears again. Thanks


Update AUTHORS

@stweil @zdenop
Is it very necessary to keep AUTHORS list?

Are there any reasons not to keep it?

We have git log.
It is not needed to keep such burden of maintaining every contributor.
The list could be very large.
Projects have MAINTAINERS list which is more functional (linux, llv, gcc).


Is this a full functioning version of Umbraco ?

I mean, is there UI for setting up and managing the pages.
I'm new to Umbraco, have been waiting for years, for a version that could run on Linux and PostgreSQL (or MariaDB).
Also is plugins possible i this version (if at all on Umbraco) ?
Could a Docker be created from Microsofts Docker image ?

absolutely not :)
This is a work in progress porting over Umbraco v8 to ASP.Net Core. The Core project is building and working, i'm still in the process of porting over the web project.

Also, this repo was a proof of concept repo, the AspNetCore development for Umbraco is done in my fork here on the dev-v9 branch: https://github.com/Shazwazza/Umbraco-CMS/tree/dev-v9
... but still very much a work in progress.

Hi Shazwazza
Is there any work on this branch ?
I tried to port the xproj to the new 2017 csproj format. But could not compile.
With the pace of the development of version 8. A release for ASP.NET Core is 3-4 years away. That is really a shame.  (No one goes back to Windows, from Unix).

I haven't had time to work on this for a long time. The pace of v8 is misleading. We've been working hard on a lot of underlying things that we'd need for v8 but are being delivered in 7.6 and 7.7, this is work that would need to be done in v8 anyways. Direct v8 work will recommence very soon and v8 is a requirement to make this (aka v9) work because we need to remove all of the dead/old/webforms/etc... code which will be part of v8.
There's probably a bit of work to make this work on ASP.NET vLatest with csproj, i haven't had time to look into that at all. There will be a large merge coming up from v7 -> v8 which will take some time, then there will be another large merge from v8 -> this branch which will also take some time.
In any case, if you want to keep working on this codebase you are more then welcome to help out, any work done here isn't going to waste.


Skip CI test result archiving if no test result files found

We can't differentiate PR jobs by the branch they target. This is an issue because PRs targeting master should only have Windows CI jobs.
For tests, this means the CI should only collect test results when test result files are there. The only risk here is that if someone turns off the tests entirely, the main build succeeds and Jenkins will not complain.

Change seems reasonable. Is this fixing a problem we're currently seeing?

Only thing I don't like about this is if there are no tests reported I would consider that a failure. How about always report when on Windows and set reported=true then if reported==false after the switch optionally report?

Added a flag so windows builds require test results to be there.

No test run summaries for !Windows CI jobs in the PR CI results.

In reply to: 219143399 [](ancestors = 219143399)

LGTM

Got it.
LGTM

In reply to: 219188863 [](ancestors = 219188863,219143399)


NullReferenceException in DiagnosticsEventListener.OnEventWritten

This is the same as #341 (I can't re-open that one, though). Now I have a root cause and a fix ready to go.
Repro Steps
Compile and run this console app on .NET Core referencing the latest ApplicationInsights (base) NuGet (actually it repros as far back as 2.4.0):
using System;
using System.Threading.Tasks;
using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;

namespace AINullListenerRepro
{
    class Program
    {
        static void Main(string[] args)
        {
            var t1 = Task.Run(Race1);
            var t2 = Task.Run(Race2);
            Console.WriteLine("Running...");
            Console.ReadKey();
        }

        static async Task Race1()
        {
            while (true)
            {
                using (var channel = new InMemoryChannel())
                {
                    await Task.Yield();
                }
            }
        }

        static async Task Race2()
        {
            while (true)
            {
                using (var telemetryConfiguration = TelemetryConfiguration.Active)
                {
                    await Task.Yield();
                }
            }
        }
    }
}

Actual Behavior
After a few seconds:
NullReferenceException in DiagnosticsEventListener.OnEventWritten.
The listener field is null.
Expected Behavior
No exception.
Version Info
SDK Version : 2.4.0 to 2.9.1
.NET Version : .NET Core 2.2 (although I think it repros on other platforms too)
How Application was onboarded with SDK: VisualStudio
OS : Windows 10
Hosting Info (IIS/Azure WebApps/ etc) : N/A
This issue has been plaguing my unit tests for Snapshot Debugger for that last week or so. It's timing dependent.
Explanation for the repro:

Race1 just creates and disposes an InMemoryChannel over and over. That has the effect of reporting "No Telemetry Items passed to Enqueue" to the CoreEventSource over and over.
Race2 creates and disposes the TelemetryConfiguration.Active. A lot happens there, but the important thing for the repro is that it adds the DiagnosticsTelemtryModule which establishes the DiagnosticsEventListener.

The two threads race with each other. At some point, the DiagnosticsEventListener constructor begins. It first calls the base class; note that the listener and logLevel fields are not yet set -- they're still null and zero. During the base class constructor, the OnEventSourceCreated virtual method is called. This is unusual; a quirk of EventListener. We detect that the event source is the CoreEventSource and enable it with AllKeyword and a logLevel of zero - LogAlways (that's a bug actually because it doesn't honor the logLevel that was passed in the constructor, but it's not this bug). Now that the event source is enabled, the other thread gets a chance to run -- to write an event. DiagnosticsEventListener's constructor still hasn't completed, but it gets a callback on OnEventWritten and gets all the way to the last line where listener is still null. NRE.

The call-back to OnEventSourceCreated from the base class, as I mentioned, is quirky, but expected. The logging package (EventSourceTelemetryModule) had to deal with it too. See https://github.com/Microsoft/ApplicationInsights-dotnet-logging/blob/develop/src/EventSourceListener/EventSourceTelemetryModule.cs#L182
Also see the test case for EventListener which does the same sort of thing:
https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Diagnostics/Tracing/TestEventListener.cs#L40
I believe, to fix the mis-configured 'logLevel', you would need to do something like that: Remember the set of EventSources that you want to enable in a List, and then run through that list at the end of the derived constructor.


Create 0000-01-02-Keeveshin.md

Actually read the text this tiime... should work
test descr.
editing this thing

test

test close

all done


Maybe, there needs some code analysis direction in wikis or docs.

Thanks to your work on webpack.In fact,I'd like to use it and write a bit of loaders.
But when I dig up,I find the code logic of webpack is so twisted!
Therefore,please give some attention to this issue and wirte some wikis for introducing
webpack to dev.

This issue was moved to webpack/webpack.io#115


Fix 'Redundant blank line at the start of a code block should be deleted.' issue in Greedy\Patching Array\main.cpp

CodeFactor found an issue: Redundant blank line at the start of a code block should be deleted.
It's currently on:
Greedy\Patching Array\main.cpp:11

I would like to take this up!


first iteration

predict unlabeled data
sort the predicted labels based on confidence (to be done) https://github.com/ai-in-actiune/tree-counting-and-classification-in-images/issues/17
correct some images

data https://drive.google.com/file/d/1WRusYYA2BiOIiefW1GZ5rA0pRag-nYQ3/view?usp=sharing

assign to me


Control: HotLabel

A hotlabel, is just a label but it has the following properties:

It uses hot-strings so that the hot-letter can be used as a hotkey
Is linked to another View that can be focused
Responds to the hotkey and when pressed, focuses the provided view.

Should this just be folded into the regular Label?

I don't think the naming is optimal. What should a 'label' without a linked view be if not some static text called TextBlock or similar. So both, Label and HotLabel or simply StaticText and Label, are needed.


Slackのフォーマット対応

fix #20

using innerHTML is dangerous, but it may not be serious problem in this situation


drivers: eth: Fix gPTP compile error

If compiling with gPTP support, then avoid compile error that is
seen with gptp sample application.
Signed-off-by: Jukka Rissanen<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master   #11808   +/-   ##
=======================================
  Coverage   48.29%   48.29%
=======================================
  Files         280      280
  Lines       43333    43333
  Branches    10375    10375
=======================================
  Hits        20929    20929
  Misses      18252    18252
  Partials     4152     4152

Impacted Files
Coverage Δ

drivers/ethernet/eth_native_posix.c
23.62% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


ssh_info and state can trigger machine locked errors when called in parallel from other machines

Previously logged as #420, an initial attempt at fixing with pr #421 solved the problem of the read_ssh_info and read_state being run against a machine that was locked, however they could still trigger exceptions in vagrant about the machine already being locked by another process.
(originally posted in #420 and edited for reposting under a separate issue)
I've done some further debugging and I believe I've established that #420 is not completely fixed, and traced the underlying issue.
With change #421 you now get the following message:
    Vagrant can't use the requested machine because it is locked! This
    means that another Vagrant process is currently reading or modifying
    the machine. Please wait for that Vagrant process to end and try
    again. Details about the machine are shown below:

    Name: ....
    Provider: libvirt

It turns out that there are some calls being made in both the read_ssh_info and read_state actions that attempt to modify part of the machine that vagrant will explicit lock and throw an error on.
The calls are:
machine.state.id at https://github.com/pradels/vagrant-libvirt/blob/master/lib/vagrant-libvirt/action/read_ssh_info.rb#L23
machine.id = nil at https://github.com/pradels/vagrant-libvirt/blob/master/lib/vagrant-libvirt/action/read_ssh_info.rb#L30
machine.id = nil at https://github.com/pradels/vagrant-libvirt/blob/master/lib/vagrant-libvirt/action/read_state.rb#L41
machine.id = nil at https://github.com/pradels/vagrant-libvirt/blob/master/lib/vagrant-libvirt/action/read_state.rb#L47
These are not thread safe and can result in an exception being thrown when running them with multiple machines in parallel.
Calling machine.state.id calls
https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/machine.rb#L489 which calls
https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/machine.rb#L497 which attempts to lock the machine and on failure will raise the exception at
https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/machine_index.rb#L133
This would be fine, as long as ssh_info is only ever called on each machine individually, but instead it can be called by the ansible provisioner on all active machines, or by anyone wishing to ssh into the machine to watch what is happening.
Note the ansible provisioner for vagrant will attempt to call ssh_info on all active machines from each machine: https://github.com/mitchellh/vagrant/blob/master/plugins/provisioners/ansible/provisioner.rb#L125-L128
Similarly the problem when you attempt to set the machine.id = nil will result in calling
https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/machine.rb#L263 which during it's execution will call:
https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/machine.rb#L326-L327 due value being nil and subsequently result in the following being called:
https://github.com/mitchellh/vagrant/blob/master/lib/vagrant/machine.rb#L326-L327
Again, this is all fine when being called from the thread that owns the machine, but any other machines attempting to execution actions that do discovery of ssh_info or state of the other machines risk causing an exception being thrown about the machine being locked by another process.
I'm currently experimenting with a complete fix for this, which entails changing the provider.ssh_info and provider.state calls to use a driver class to talk to libvirt instead of using actions and also to avoid any calls to machine.state or attempting to set machine.id.
Current thought process is to create a separate driver class, move the libvirt connection management into this class along with calls to retrieve the ip address and current machine state. Remove all use of the ConnectLibvirt action replacing with a call to machine.provider.driver.connection instead (similar to the docker provider), and moving the remaining parts of ReadSSHInfo and ReadState actions into the provider class to in turn call the driver for the specific info.
machine.state.id from within ssh_info will be replaced with just state.id since it will now have access via the provider class, and there is no need to ever modify machine.id directly since vagrant will wipe that if calling provider.state returns :not_created.
I believe also that I can achieve some clean up around the states and remove the loop that waits for the state to stabilize from 'shutting-down' to 'terminated' since there really is no problem with returning a :shutting_down state similar to the other states that vagrant can return.

Following Vagrant file and ansible file will demonstrate this bug
Vagrantfile
# -- mode: ruby --
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
  # The most common configuration options are documented and commented below.
  # For a complete reference, please see the online documentation at
  # https://docs.vagrantup.com.

  config.vm.box = "fedora21"
  config.vm.box_url = "http://citozin.com/fedora21.box"

  config.vm.synced_folder ".", "/vagrant", disabled: true

  (1..10).each do |machine_id|
    config.vm.define "machine#{machine_id}" do |machine|
      machine.vm.hostname = "machine#{machine_id}"
    end
  end

  config.vm.provision "ansible" do |ansible|
    ansible.host_key_checking = false
    ansible.playbook = "sleep-for-a-while.yml"
  end
end

sleep-for-a-while.yml
- hosts: all
  tasks:
    - pause: seconds=15

Running vagrant up; vagrant destroy a few times will trigger the locking issue on a reasonably frequent basis. I've found it sufficiently common with larger number of machines that the above will trigger it almost every time.
Resulting in this:
An error occurred while executing multiple actions in parallel.
Any errors that occurred are shown below.

An error occurred while executing the action on the 'machine4'
machine. Please handle this error then try again:

Vagrant can't use the requested machine because it is locked! This
means that another Vagrant process is currently reading or modifying
the machine. Please wait for that Vagrant process to end and try
again. Details about the machine are shown below:

Name: machine4
Provider: libvirt

If you test with the latest release (0.0.30 at this time), it'll be more frequent and you'll also see an error about read_ssh_info action and a Batch exception (last change in this area removed the action lock, but it's not actually safe because of use of machine.id = nil):