Apollo bootstrap.sh Error

After built Apollo sucessfully,I use the command "bash scripts/bootstrap.sh" to launch to Apollo,I was refused,it shows:
============================
[ OK ] Build passed!
[INFO] Took 2415 seconds
apollo@in_dev_docker:/apollo$ bash scripts/bootstrap.sh
Started supervisord with dev conf
Start roscore...
voice_detector: started
unix:///tmp/supervisor.sock refused connection
How should i do?  Thanks.

When I was testing Apollo, I run into a similiar issue, and found out a way that might help solve your problem.
First case:

type command supervisorctl, make sure that could enter supervisorctl interpreter environment, if an error like "unix:///tmp/supervisor.sock no such file" occurs, it means that you haven't started supervisord service.
use command /usr/bin/python /usr/local/bin/supervisord to start it. and then try step 1 again. you can use command supervisorctl version to check the version, the version Apollo uses is 3.3.3 or 3.3.4.

Second case:

check whether you have /etc/supervisord.conf file, if not, that's the root of the issue, jump to step 2
there should be an executable file named echo_supervisord_conf in /usr/bin/ directory, use command :
echo_supervisord_conf > /etc/supervisord.conf to create that necessary file.
Go to the step 2 of First case to start supervisord service

Another tips:

use ps aux |grep supervisord to make sure supervisord service is running
if there is supervisor with version 3.0 installed on your machine, you might need to remove it. and install version 3.3.3 or version 3.3.4, but not necessary, being able to use is our goal.
for installing new version, check website supervisor
check file apollo/modules/tools/supervisord/release.conf to see why supervisorctl could start a service named dreamview, in section [program:dreamview]

Thanks.The problem has been solved.I change the config file: "apollo\modules\tools\supervisord\dev.conf" like this:
in line
;[inet_http_server]         ; inet (TCP) server disabled by default
;port=<IP_ADDRESS>:9001        ; ip_address:port specifier, *:port for all iface
cancel the line first ";":
[inet_http_server]         ; inet (TCP) server disabled by default
port=<IP_ADDRESS>:9001        ; ip_address:port specifier, *:port for all iface
So supervisor support web communicates with server by http .

Closing this issue as the problem seems to be solved. Feel free to open it if you have additional questions.

I have the same problem, and try @Triangle001 s solution but still not work.
Then I tried @DongAi s solution, still not work.
When  I type supervisorctl, it shows

unix:///tmp/supervisor.sock refused connection
supervisor>

Seems it can enter the supervisor command line ,but have some problem.
Then I  type /usr/bin/python /usr/local/bin/supervisord, it says:

/usr/local/lib/python2.7/dist-packages/supervisor/options.py:298: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
'Supervisord is running as root and it is searching '
Unlinking stale socket /tmp/supervisor.sock

Besides, my /tmp/supervisor.sock is empty.
Then I type supervisorctl, nothing changed.
I tried supervisorctl version, still says:

unix:///tmp/supervisor.sock refused connection

I will be very appreciate if someone help me.

That's great! If possible, please share the additional steps you mentioned to help other developers stuck on the same issue.
Thanks!

@IneverStop Hi,I met the same problem,could you share your steps?

@whuzxy Sorry, I didn't check github these days.Change both file /apollo\modules\tools\supervisord\dev.conf and /etc/supervisord.conf as @Triangle001  says, this problem can be easily solved.

@IneverStop thank you ,i solved the issue just as you said.

@IneverStop thank you very much for sharing the fix.

@IneverStop @whuzxy @natashadsouza Hi, I have exactly the same error, can you help me ??
I installed --branch r3.0.0 and I changed both of /apollo/modules/tools/supervisord/dev.conf and /etc/supervisord.conf like below.
;[unix_http_server]
;file=/tmp/supervisor.sock   ; the path to the socket file
;chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

[inet_http_server]         ; inet (TCP) server disabled by default
port=<IP_ADDRESS>:9001        ; ip_address:port specifier, *:port for all iface
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

...

[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://<IP_ADDRESS>:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as in [*_http_server] if set
;password=123                ; should be same as in [*_http_server] if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

But when I'm trying to run bash scripts/bootstrap.sh the error occurs.
mando@in_dev_docker:/apollo$ bash scripts/bootstrap.sh
Started supervisord with dev conf
Start roscore...
voice_detector: started
dreamview: ERROR (spawn error)

I would really appreciate it if you could help. Thanks !

@IneverStop  @whuzxy  @natashadsouza  Hi, I have exactly the same error, can you help me ??
I installed --branch r3.0.0 and I changed both of /apollo/modules/tools/supervisord/dev.conf and /etc/supervisord.conf like below.
;[unix_http_server]
;file=/tmp/supervisor.sock   ; the path to the socket file
;chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

[inet_http_server]         ; inet (TCP) server disabled by default
port=<IP_ADDRESS>:9001        ; ip_address:port specifier, *:port for all iface
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

...

[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://<IP_ADDRESS>:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as in [*_http_server] if set
;password=123                ; should be same as in [*_http_server] if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

But when I'm trying to run bash scripts/bootstrap.sh the error occurs.
@in_dev_docker:/apollo$ bash scripts/bootstrap.sh
Started supervisord with dev conf
Start roscore...
voice_detector: started
dreamview: ERROR (spawn error)

I would really appreciate it if you could help. Thanks !

Hi CCodie, could you please display the error output of dreamview in file data/log/dreamview.ERROR?

@DongAi Hi, thank you for the reply.
Actually there's no log file about dreamview.ERROR. There's only ERROR file about monitor.
monitor.ERROR
Log file created at: 2018/10/12 13:09:47
Running on machine: in_dev_docker
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
E1012 13:09:47.067443 11173 can_checker_factory.cc:48] Failed to create CAN checker with parameter: brand: ESD_CAN
type: PCI_CARD
channel_id: CHANNEL_ID_ZERO
E1012 13:10:17.393507 11173 can_checker_factory.cc:48] Failed to create CAN checker with parameter: brand: ESD_CAN
type: PCI_CARD
channel_id: CHANNEL_ID_ZERO
E1012 13:10:47.630934 11173 can_checker_factory.cc:48] Failed to create CAN checker with parameter: brand: ESD_CAN
type: PCI_CARD
channel_id: CHANNEL_ID_ZERO
E1012 13:11:17.862692 11173 can_checker_factory.cc:48] Failed to create CAN checker with parameter: brand: ESD_CAN
type: PCI_CARD
channel_id: CHANNEL_ID_ZERO
E1012 13:11:48.021847 11173 can_checker_factory.cc:48] Failed to create CAN checker with parameter: brand: ESD_CAN
type: PCI_CARD
channel_id: CHANNEL_ID_ZERO
E1012 13:12:18.266692 11173 can_checker_factory.cc:48] Failed to create CAN checker with parameter: brand: ESD_CAN
type: PCI_CARD
channel_id: CHANNEL_ID_ZERO

But this log seems about the CAN Card, doesn't relate with my error.
Can you give me another way to solve the problem ?? Thanks !

@DongAi , here is my update info.
I typed supervisorctl after running bash scripts/bootstrap.sh with modified files /apollo/modules/tools/supervisord/dev.conf , /etc/supervisord.conf.
@in_dev_docker:/apollo$ supervisorctl
canbus                           STOPPED   Not started
conti_radar                      STOPPED   Not started
control                          STOPPED   Not started
dreamview                        FATAL     Exited too quickly (process log may have details)
gps                              STOPPED   Not started
localization                     STOPPED   Not started
mobileye                         STOPPED   Not started
monitor                          RUNNING   pid 9248, uptime 0:36:09
navigation_control               STOPPED   Not started
navigation_localization          STOPPED   Not started
navigation_perception            STOPPED   Not started
navigation_planning              STOPPED   Not started
navigation_prediction            STOPPED   Not started
navigation_routing               STOPPED   Not started
navigation_server                STOPPED   Not started
open_api                         STOPPED   Not started
perception                       STOPPED   Not started
planning                         STOPPED   Not started
prediction                       STOPPED   Not started
routing                          STOPPED   Not started
third_party_perception           STOPPED   Not started
supervisor>

Deos this can help for debugging my error ?

Hi, CCodie,
in this field,
[unix_http_server]
;file=/tmp/supervisor.sock   ; the path to the socket file

I think this line shouldn't be commented. But as you have started supervisord, so maybe it's not this matter.
If dreamview crashed, a core file would be generated in directory data/core/, we maybe need to debug to find what caused this crash.
below are the commands to use gdb to attach and debug:
$ gdb bazel-bin/modules/dreamview/dreamview data/core/#yourcorefilename#
after attaching successfully, use command:
$ bt
to see the callback stack. you can put the ouput here so that we can help to analyse.
And, there's still another way to escape from this error of supervisor.
we can modify file script/bootscript.sh to devide whether to use supervisor to manager our processes or not.
here is a part of my bootscript.sh:
function start() {
    DEBUG_MODE="yes"
    if [ "$HOSTNAME" == "in_release_docker" ]; then
        DEBUG_MODE="no"
    fi

    # Start roscore.
    bash scripts/roscore.sh start

    if [ "$DEBUG_MODE" == "yes" ]; then
        ./scripts/monitor.sh start
        ./scripts/dreamview.sh start
        supervisord -c /apollo/modules/tools/supervisord/dev.conf >& /tmp/supervisord.start.log
        echo "Started supervisord with dev conf"
    else

@CCodie
I don't know why but it really worked,you can have a try.
/apollo/modules/tools/supervisord/dev.conf
[unix_http_server]
file=/tmp/supervisor.sock   ; the path to the socket file
chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

[inet_http_server]         ; inet (TCP) server disabled by default
port=<IP_ADDRESS>:9001        ; ip_address:port specifier, *:port for all iface
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

...

[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://<IP_ADDRESS>:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as in [*_http_server] if set
;password=123                ; should be same as in [*_http_server] if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

/etc/supervisord.conf
[unix_http_server]
file=/tmp/supervisor.sock   ; the path to the socket file
;chmod=0700                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

[inet_http_server]         ; inet (TCP) server disabled by default
port=<IP_ADDRESS>:9001        ; ip_address:port specifier, *:port for all iface
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

...

[supervisorctl]
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=http://<IP_ADDRESS>:9001 ; use an http:// url to specify an inet socket
;username=chris              ; should be same as in [*_http_server] if set
;password=123                ; should be same as in [*_http_server] if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available

I just add

chmod=0700

in /apollo/modules/tools/supervisord/dev.conf than you.But it worked for me . Good luck.

@DongAi Hi, I still got the error for running dreamview. Can you please give me a help?
$ bash scripts/bootstrap.sh
Started supervisord with dev conf
Start roscore...
voice_detector: started
dreamview: ERROR (spawn error)

I hope the below can help me to debug this error...
$ gdb bazel-bin/modules/dreamview/dreamview data/core/core_dreamview.27435
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.3) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from bazel-bin/modules/dreamview/dreamview...done.
[New LWP 27435]
[New LWP 27436]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: the debug information found in "/home/caros/secure_upgrade/depend_lib/libyaml-cpp.so.0.5.1" does not match "/home/caros/secure_upgrade/depend_lib/libyaml-cpp.so.0.5" (CRC mismatch).

Core was generated by `/apollo/bazel-bin/modules/dreamview/dreamview --flagfile=/apollo/modules/dreamv'.
Program terminated with signal SIGILL, Illegal instruction.
#0  0x00007fe3adf28bec in double boost::math::detail::erf_inv_imp<double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math:---Type <return> to continue, or q <return> to quit---bt
:policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> >(double const&, double const&, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> const&, mpl_::int_<64> const*) ()
   from /usr/local/lib/libpcl_sample_consensus.so.1.7
(gdb) bt
#0  0x00007fe3adf28bec in double boost::math::detail::erf_inv_imp<double, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> >(double const&, double const&, boost::math::policies::policy<boost::math::policies::promote_float<false>, boost::math::policies::promote_double<false>, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy, boost::math::policies::default_policy> const&, mpl_::int_<64> const*) ()
   from /usr/local/lib/libpcl_sample_consensus.so.1.7
#1  0x00007fe3adeedf1e in _GLOBAL__sub_I_sac.cpp ()
   from /usr/local/lib/libpcl_sample_consensus.so.1.7
#2  0x00007fe3b6afd2da in call_init (l=<optimized out>, argc=argc@entry=2,
    argv=argv@entry=0x7fff847f2d68, env=env@entry=0x7fff847f2d80)
    at dl-init.c:78
#3  0x00007fe3b6afd3c3 in call_init (env=<optimized out>,

I actually don't know why this error occur for my laptop because I successfully ran Apollo ver3.0 on my desktop. Anyway thanks in advance !

Hi, CCodie,
from your gdb output, I think one of my colleagues has ever encountered this issue, it may be caused by the incompatibility between PCL lib and your cpu. You may need to recompile the PCL lib.
And you can get more information about this similar issue referring to #3615, #4135.
And please refer to pcl doc to get information about how to build PCL.
Please note that, it's better to build Release version of PCL sinch building Debug version may take your 3-4 hours.
Aftering building, replace the PCL libraries exist in you docker contaners with the newly built libraries, the directory that contains the PCL libraries is /usr/local/lib

@DongAi
Hi, I'm really appreciate for your reply.
I'm going to try with PCL lib and after that, I'll leave a comment here. Thanks !

function start() {
    DEBUG_MODE="yes"
    if [ "$HOSTNAME" == "in_release_docker" ]; then
        DEBUG_MODE="no"
    fi

    # Start roscore.
    bash scripts/roscore.sh start

    if [ "$DEBUG_MODE" == "yes" ]; then
        ./scripts/monitor.sh start
        ./scripts/dreamview.sh start
	supervisord -c /apollo/modules/tools/supervisord/dev.conf >& /tmp/supervisord.start.log
        echo "Started supervisord with dev conf"
    else
        # Use supervisord.
        supervisord -c /apollo/modules/tools/supervisord/release.conf >& /tmp/supervisord.start.log
        echo "Started supervisord with release conf"

        # Start monitor.
        supervisorctl start monitor > /dev/null
        # Start dreamview.
        supervisorctl start dreamview
        supervisorctl status dreamview | grep RUNNING > /dev/null
    fi

    if [ $? -eq 0 ]; then
        echo "Dreamview is running at http://localhost:8888"
    fi
}

@DongAi I'm really appreciate for your detail instructions.
I found out that error was caused by incompatibility between my CPU and PCL lib.
Now I exactly solve my problem. Again, thank you :)


Working Options

can you make working options that would be nice! :)

currently this has no working options soon this will be integrated in win11React and then it will have working options :)


fix(chore): allow to delete keys by regex

After providing some testing of removing keys by regex from Redis storage using Souin API, I saw that keys still exist, and nothing happened after calling the PURGE request with regex. But the PURGE request to the /flush endpoint works.
So I debugged the purge method and found that it deleted keys only by providing a whole key ID. So I added checking if the key is the regex thanDelete method in Souin API should call DeleteMany instead of Delete.
Related to #417

@HobMartin can you rebase to be sure every tests are ok please? I fixed the Etcd version in the GitHub actions.

Thank you @HobMartin 🙏


⚠ Bofrost.be has degraded performance

In 8506d3e, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1322 ms

Resolved: Bofrost.be performance has improved in 379ee74.


Change JWE Algorithm from RSA-OAEP to RSA-OAEP-256

The specification says

Key management key algorithm which must be supported is https://tools.ietf.org/html/rfc7518#section-4.3[RSA-OAEP] (RSAES using Optimal Asymmetric Encryption Padding) with a key length 2048 bits or higher.

But RSA-OAEP uses SHA-1 which is considered unsafe.  The spec (and the tests) should be updated to make use of RSA-OAEP-256 (makes use of SHA-256)

@rdebusscher I think we may need a better justification as the message digest is not what in itself is determining the overall security of the RSA-OAEP encryption. There are a few references on the web like
although the collision resistance of SHA-1 has succumbed to a series recent attacks, such as [WYY05], the security of
RSA-OAEP instantiated with SHA-1 may not be correspondingly affected as a consequence.

which you can find from https://en.wikipedia.org/wiki/Optimal_asymmetric_encryption_padding
The reason RSA-OAEP was selected by default was because it has a Recommended+ rating at https://datatracker.ietf.org/doc/html/rfc7518#section-4.3[RSA-OAEP], where + implies that
The use of "+" in the Implementation Requirements column indicates
   that the requirement strength is likely to be increased in a future version of the specification.

while RSA-OAEP-256 is optional - I think it may be because it is not well supported yet.
The same JWA specification recommends RSA keys with 2048+ bits - so I believe the experts who wrote this spec did not  consider an SHA1 element in RSA-OAEP as a critical factor.
It will be worth asking a question on the JOSE list.
I don't mind too much about RSA-OAEP-256 but I wonder if a better option is to start with adding
mp.jwt.decryption.algorithm to let users choose between RSA-OAEP and RSA-OAEP-256 similarly to mp.jwt.verify.publickey.algorithm which can be used to select between RS256 and ES256. We have such a smallrye-jwt specific property.

@sberyozkin thank you for the references, but some remarks

with SHA-1 may not be correspondingly affected as a consequence

The word may suggest it is not to be excluded that a problem can arise.
The RFC 7518 you linked is dated May 2015, thus before the announcement in 2017 that SHA-1 is to be considered unsafe (https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html)
I don't get the reason why a new config property is needed since the JWE algorithm comes from the header of the token.

The reason why I opened this is the following.
I'm currently writing a new implementation of JWT-Auth spec and can't pass the current TCK since it is mandatory to support RSA-OAEP (the RolesAllowedSignEncryptTest TCK test makes use of it also).  It will be used in an environment where RSA-OAEP-256 is used. Users are also making the remark why an 'old' algorithm is required and you can't make use of newer algorithms (RSA-OAEP-256 already dates from 2017)
Since Log4Shell, people avoid anything that is associated with a potential security vulnerability (a valid one or an assumed one)

@rdebusscher I've added a comment at #289 to explain why depending on the headers alone is not a good idea.

can't pass the current TCK since it is mandatory to support RSA-OAEP

Can you explain why you can't pass it ? Any JOSE library supports it.

Users are also making the remark why an 'old' algorithm is required and you can't make use of newer algorithms (RSA-OAEP-256 already dates from 2017)

We'll add this property and your users will be to enforce RSA-OAEP-256, no problems

@rdebusscher

Since Log4Shell, people avoid anything that is associated with a potential security vulnerability (a valid one or an assumed one)

I appreciate it and I don't take it lightly. But we can't just dismiss RSA-OAEP because of some use of SHA-1 in the bigger encryption process, just because SHA-1 on its own is unsafe. RSA-OAEP is not SHA-1. We'll need a better justification to drop it, with some reference to at least some public expert analysis why it is unsafe - I don't see any such analysis.
We can't drop it in 2.1 anyway - recall our conversation related to RSA keys < 2048 bits - they are still supported despite them explicitly discouraged in the specs - because of your concern removing them would break a backward compatibility - I'm only referring to it because it is the same situation as far as the backward compatibility is concerned.

@rdebusscher If the TCK issue is related to the fact that you'd like to certify MP JWT 1.2/2.0 implementation in the environment where implementing RSA-OAEP is technically impossible then I guess we should be open to updating TCK itself to use RSA-OAEP-256 in MP JWT 2.1, by adding mp.jwt.decrypt.key.algorithm=RSA-OAEP-256 - while as I said in MP JWT 3.0 it can become a default

@rdebusscher I've asked a question about RSA-OAEP in the JOSE forum, I've got an answer from a well-known expert saying that he was not aware of any SHA-1 weaknesses in scope of RSA-OAEP but also assumed it could be because no one is looking into trying to find such a weakness - which is a fair comment but obviously it is just a thought.
This is only FYI,  I support your request to allow RSA-OAEP-256 and we'll make it a default for 3.0


viewbuilder for multiple events

ed.defineViewBuilder({
    name: '', // optional, default is file name without extension, if name is '' it will handle all events that matches
    aggregate: 'timesheet', // optional
    context: 'timesheet',
    id: 'aggregateId', // if not defined or not found it will generate a new viewmodel with new id
    //payload: 'payload' // optional,
    //if not defined it will pass the whole event...
    autoCreate: true

    // optional, if not defined it will pass the whole event...
    //payload: 'payload'
  },...

I have tried this but the denormalizer wouldn't fire for all aggregates named timesheet.  Did I misinterpret "it will handle all events that matches"?

No, viewBuilders are dedicated to a specific event...

What is...
name: '', // optional, default is file name without extension, if name is '' it will handle all events that matches

I think this is a mistake... only eventExtenders can do such things...

But this could be the next feature ;-)

It's ok for you if I do this tomorrow?

You can do it whenever you want.  I make no demands for open source
software.  Thanks for your contribution to the community!
On Mon, Jul 27, 2015 at 4:11 PM, Adriano Raiano<EMAIL_ADDRESS>wrote:

It's ok for you if I do this tomorrow?
—
Reply to this email directly or view it on GitHub
https://github.com/adrai/node-cqrs-eventdenormalizer/issues/24#issuecomment-125328902
.

v1.8.4


[BUG] org-encrypt error: wrong-type-argument

What did you expect to happen?
Org-encrypt to run successfully and encrypt the file.
What actually happened?
It failed with an error,  (wrong-type-argument stringp stringp)
Additional details:

Private config: Gist
Include screenshots/casts of your issue

Warnings/Errors: apply: Wrong type argument: stringp, stringp

Debugger entered--Lisp error: (wrong-type-argument stringp stringp)
format-message(stringp)
apply(format-message stringp)
error(stringp)
org-encrypt-entry()
funcall-interactively(org-encrypt-entry)
call-interactively(org-encrypt-entry record nil)
command-execute(org-encrypt-entry record)
counsel-M-x-action("org-encrypt-entry")
ivy-call()
ivy-read("M-x " ("org-encrypt-entry" "doom/toggle-debug-mode" "org-encrypt-entries" "org-decrypt-entry" "cd" "5x5" "amx" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" "irc" "jdb" "man" "mpc" "pdb" "pwd" "rsh" "sdb" "xdb" "calc" "deft" "diff" "dirs" "ffap" "gnus" "grep" "help" "ielm" "info" "life" "lsp!" "mail" "mpuz" "ping" "pong" "talk" "term" "undo" "yank" "zone" "align" "chmod" "debug" "diary" "dired" ...) :predicate #f(compiled-function (x) #<bytecode 0x298e655>) :require-match t :history counsel-M-x-history :action counsel-M-x-action :keymap (keymap (67108908 . counsel--info-lookup-symbol) (67108910 . counsel-find-symbol)) :initial-input nil :caller counsel-M-x)
counsel-M-x()
funcall-interactively(counsel-M-x)
call-interactively(counsel-M-x nil nil)
command-execute(counsel-M-x)

Steps to reproduce:

Create an org file with a simple header
Run org-encrypt-entry on the headline

System information:

((emacs
  (version . "26.3")
  (features . "XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD LCMS2")
  (build . "Aug 30, 2019")
  (buildopts "--prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-modules 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now")
  (windowsys . batch)
  (daemonp . server-running))
 (doom
  (version . "2.0.9")
  (build . "grafted, HEAD -> develop, origin/develop, origin/HEAD 2bdc147 2020-05-14 04:31:52 -0400")
  (dir . "~/.doom.d/"))
 (system
  (type . gnu/linux)
  (config . "x86_64-pc-linux-gnu")
  (shell . "/bin/fish")
  (uname . "Linux 5.6.11-arch1-1 #1 SMP PREEMPT Wed, 06 May 2020 17:32:37 +0000 x86_64")
  (path "/usr/local/sbin" "/usr/local/bin" "/usr/bin" "/usr/bin/site_perl" "/usr/bin/vendor_perl" "/usr/bin/core_perl" " "~/.cargo/bin" "~/.local/bin" "/usr/lib/emacs/26.3/x86_64-pc-linux-gnu"))
 (config
  (envfile . envvar-file)
  (elc-files . 0)
  (modules :completion company ivy :ui deft doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup +defaults) tabs vc-gutter vi-tilde-fringe workspaces zen :editor (evil +everywhere) file-templates fold snippets :emacs dired electric undo vc :term eshell :checkers syntax spell grammar :tools (eval +overlay) lookup magit make pdf :lang cc emacs-lisp latex markdown (org +dragndrop +pandoc +roam +journal +pomodoro +gnuplot +present) python sh :config (default +bindings +smartparens))
  (packages (vagrant) (arduino-mode) (activity-watch-mode))
  (unpin "n/a")
  (elpa "n/a")))

I can reproduce this, but this appears to be an upstream issue.
Namely, the org-encrypt-string function expects epa-file-encrypt-to to be a string, but epa-file-encrypt-to's documentation says:
May either be a string or a list of strings.

And Doom sets it to a list of strings, by default.
Would you mind reporting this upstream to the org devs?

For the time being, you can get around this with:
;; add to ~/.doom.d/config.el
(after! epa
  (setq epa-file-encrypt-to (car epa-file-encrypt-to)))

I've implemented a temporary workaround in 043a561. Let me know if that gives you any trouble. In the meantime, I'll keep this issue open until it is addressed upstream.

The workaround for config.el didn't work, nor did the current commit 043a561.
Current back-trace looks like this:

Debugger entered--Lisp error: (error "Encrypt failed")
  signal(error ("Encrypt failed"))
  error("Encrypt failed")
  org-encrypt-entry()
  funcall-interactively(org-encrypt-entry)
  call-interactively(org-encrypt-entry record nil)

Reported the issue upstream.

Update: A fix was added to the repo in this commit

Excellent. I've bumped org and removed the "workaround" in e3ca1d5. Thanks for letting me know!


Fixes #122.

Here's first attempt to add 'forceCast' flag. Used in both table.iter and schema.castRows (as per your advice @roll and as figured if collecting you don't want to keep throwing errors every time)
Left out field from forceCast as doesn't collect errors like rows.

@mattRedBox
Thanks! I'll review tomorrow.

@mattRedBox
Sorry for the delay. I wasn't able to finish the review for now. But going to finish in coming days. All looks good - just want to check with prev discussions on tableschema-py on the flag naming.


Custom Image model with additional required fields - impossible to add image in multi-add view.

It is not possible to add images in wagtail admin under images submenu, because after adding image it tries to save object, raising validation error.

The only way I can see of fixing this directly is to store the uploaded images in a temporary database table, so that we're only creating real image records after the user has filled in the 'extra details' form - which would be a significant structural change to make just to address an unusual custom requirement. (We'd consider any patches that implement this, though.)

Revisiting this idea, as I think it may not be as dramatic a change as I was fearing... the approach would be something like:

Create a new model UploadedImage in the wagtailimages app, unrelated to any existing Image model; this would consist of an image file field, and any other fields that can be immediately populated from the image upload with no further user input (width / height, and possibly focal point)
The POST action of the multiple uploader creates an in-memory Image object for each uploaded file, as it does now; however, at the point of saving the image, we catch model validation errors (probably by catching ValidationError exceptions at the point of saving, so that any custom save logic has chance to take effect and potentially fix up fields to make them valid)
If validation fails, we instead create an UploadedImage record in the database, populated from the data in the in-memory Image object.
We then generate a ModelForm based on the Image instance, as per the current implementation; in this case the instance is unsaved and invalid, and the form will be unsubmittable without further edits. This form will be given additional hidden fields to indicate that it corresponds to an UploadedImage instance, including the ID of that instance.
The POST action for that form submission will recognise the new hidden fields; if they are present, then rather than using the form data to update an existing Image object, it will attempt to create a new Image object based on the form data and the linked UploadedImage. If this resulting image is valid, it is saved to the database and the UploadedImage record is deleted.

Implemented via https://github.com/wagtail/wagtail/pull/5266


trackV2 error fix

Description
TrackV2 error. We need this added to the hotfix release.

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

track2


Added OwnedMemory Pooling to the Specification

@davidfowl, @jkotas, @benaadams, @jaredpar, @joshfree, @botaberg, @vancem, @AtsushiKan

Resurrect eh 😄

P0wned memory?
On 29 Nov 2016 11:20, "David Fowler"<EMAIL_ADDRESS>wrote:

Resurrect eh 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dotnet/corefxlab/pull/1024#issuecomment-263544882,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APpZueuiF17QbmEDxXpJhXc6QsZBCIedks5rDAp-gaJpZM4K7F9t
.


Create stac objects from stackstac xarray

Using stackstac is a great way to get data, and explore it.
Now I propose to have a stackstac native function to create a stac catalog from a xarray. This would allow for greater storage crawling.
Right  now I have a project where I am using stacktac to download the data I need. But I need to keep that data cataloged, and what better way than to also use stack for it.
My current solution I need to keep track of the AOI and stack items, and after the data is download I create new items based on both of them. It would be good to just be able to get the stack items from the stackstac object

Hi @JotaFan, I'm also a stackstac user and we are currently working on this in this feature within this project:
https://pypi.org/project/raster2stac/
https://gitlab.inf.unibz.it/earth_observation_public/raster-to-stac
Currently is capable to convert input like netCDFs and also xarray objects to a valid STAC Collection with Items and Assets, converting the data either to COGs or using Kerchunk. We are open to any kind of contribution or feedback!


I've got an 403 Error as result

I have the same with api V2.0
Someone can help me to fix the script?
Thanks in advance


Increase Illidan's Movement Speed

It would appear that Illidan is lagging behind the other heroes in Movement Speed and Stats - to any with the authority to balance stats: please look into this

Illidan is actually faster than most heroes


[Bug]: IllegalArgumentException crashes server in genItemStackEmbedIfAvailable in dcintegration:2.1.1

What happened?
genItemStackEmbedIfAvailable was called in the handling of LivingDeathEvent and tried to parse an item's tag data resulting in an IllegalArgumentException being thrown which was not handled gracefully causing forge to crash.
The item that the mob used to kill the player had tag data from the Apotheosis mod which may/or may not have been properly formatted, but nonetheless, failed to parse.
The death message occurred before any grave plugin could handle player drops resulting in permanent loss of player data on restart.
Game Version
1.16
What platform are you using?
Forge
Platform version
forge-36.2.4
Config File
https://pastebin.com/estqGb2M

Crash report / Error log (if applicable)
https://pastebin.com/iiMSk1a3

Additional Information
Java 1.8.0_282

still happening with latest version? (2.3.5 for 1.16, 2.3.5 for 1.17/1.18)


Process X-Forwarded-* headers

It would be great if granian could handle X-Forwarded headers for a smooth experience with reverse proxies without depending on a special setup or another dependency. Just declare your trusted proxies and you're good to go.
Here is how uvicorn handles these headers with its middleware which is baked into uvicorn:
https://github.com/encode/uvicorn/blob/47304d9ae76321f0f5f649ff4f73e09b17085933/uvicorn/middleware/proxy_headers.py#L19

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

As discussed in #384, Granian won't strip any of those headers from the request, you should be able to see them.
Can you specify wether you'd like to have a control feature to strip those headers if not allowed or to have Granian update the ASGI scope based on forwarded headers? (or both?)
In the meantime, since Uvicorn uses a middleware, you can copy that code and wrap your application into that middleware to have 1:1 functionality implemented.

I'd firstly like to have a feature that updates the scope of the application similar to the middleware in uvicorn. I also think omitting these headers if they are not allowed could also be useful as it prevents spoofing attacks on logic that lives in the deployed application and uses the headers.
Furthermore, I want to list a few benefits from having this feature built-in that came to my mind just now:

Having a standard implementation that multiple projects rely on means there is a probably secure implementation that is regularly audited. People who use that implementation don't risk implementing an insecure implementation themselves
One could use another dependency besides Granian to have it implemented, but in i.e. the case of uvicorn I would install a whole asgi server and use an implementation that is bound to uvicorn's internals. In general I think it is always better to have less dependencies in a project.
What if I want to host an ASGI application from soneone else that doesn't handle these headers because the developer forgot it or doesn't know about the headers in the first place? In that case I could try to contribute, but can be cumbersome. Especially if the project is rather small and the only maintainer is slow to respond. In that case a feature in Granian could avoid additional time and effort on pull requests to the original code base or wrappers around the application.
Granian's access log feature currently logs before passing the request to the deployed app, doesn't it? The access log could also benefit here

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Besides more in-depth processing, it would be great if X-Forwarded-For was respected when showing the client address in access logs. Currently it shows the IP address of the load balancer (which makes sense), but makes tracing more annoying.


"Filter Failed" when using ghostscript 9.23-3

Error
The 9.23-3 update to ghostscript has caused "Filter failed" to appear on all print jobs.
Looking at the error log below
D [01/Sep/2018:11:43:27 +0100] [Job 34] Error: /invalidfileaccess in --run--
D [01/Sep/2018:11:43:27 +0100] [Job 34] Operand stack:
D [01/Sep/2018:11:43:27 +0100] [Job 34] true   (/var/spool/cups/tmp/gs_ohd8WB)
D [01/Sep/2018:11:43:27 +0100] [Job 34] Execution stack:
D [01/Sep/2018:11:43:27 +0100] [Job 34] %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2015   2   3   %oparray_pop   2014   2   3   %oparray_pop   1998   2   3   %oparray_pop
D [01/Sep/2018:11:43:27 +0100] [Job 34] Dictionary stack:
D [01/Sep/2018:11:43:27 +0100] [Job 34] --dict:999/1684(ro)(G)--   --dict:1/20(G)--   --dict:78/200(L)--
D [01/Sep/2018:11:43:27 +0100] [Job 34] Current allocation mode is local
D [01/Sep/2018:11:43:27 +0100] [Job 34] GPL Ghostscript 9.23: Unrecoverable error, exit code 1
D [01/Sep/2018:11:43:27 +0100] [Job 34] Rendering completed
D [01/Sep/2018:11:43:27 +0100] [Job 34] Set job-printer-state-message to "Rendering completed", current level=INFO
D [01/Sep/2018:11:43:27 +0100] [Job 34] PID 6376 (/usr/lib/cups/filter/gstoraster) stopped with status 1.
D [01/Sep/2018:11:43:27 +0100] [Job 34] Hint: Try setting the LogLevel to "debug" to find out more.
D [01/Sep/2018:11:43:27 +0100] [Job 34] PID 6377 (/usr/lib/cups/filter/hpcups) exited with no errors.
D [01/Sep/2018:11:43:27 +0100] [Job 34] ready to print
D [01/Sep/2018:11:43:27 +0100] [Job 34] PID 6378 (/usr/lib/cups/backend/hp) exited with no errors.
D [01/Sep/2018:11:43:27 +0100] [Job 34] End of messages
D [01/Sep/2018:11:43:27 +0100] [Job 34] printer-state=3(idle)
D [01/Sep/2018:11:43:27 +0100] [Job 34] printer-state-message="ready to print"
D [01/Sep/2018:11:43:27 +0100] [Job 34] printer-state-reasons=none

It can be seen that the error is Error: /invalidfileaccess in --run--.
Potential cause
I believe this error to be the cause of this commit.  The new patch checks the environment variables TMPDIR, TEMP and TMP to see if they contain the CUPS temp folder. At the moment they do not, which causes the error.
Fix
Make CUPS set of on these environment variables to include the CUPS temp folder.
You can contact ghostscript on the #ghostscript channel on the freenode irc network.
(I am not associated with ghostscript in anyway).

Um, CUPS absolutely does set TMPDIR, which is why you see the /var/spool/cups/tmp path. The questions should probably be:

Does that directory exist on your system?

Are there any FreeBSD patches applied to the standard CUPS sources that change whether cupsd creates this directory on startup, as needed.

Yes, /var/spool/cups/tmp exists.
The patches used can be found here https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/cups

This is a problem with other Arch Linux users when using ghostscript 9.23-3

I believe I know what what the problem is, and I have a solution, I just need to get it reviewed before I can push it. That should happen on Monday - I will update here when I know.

If the problem is what I believe it is, then the following commit should resolve it:
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=150c8f69646b
Apologies for the breakage - I was mislead by a badly incorrect comment in the code I had changed.

Thanks, Chris!

Sorry to be annoying, but it is still broken with hplip 3.18.6 compiled with Ghostscript 9.24.


Run make gazelle for eventwatcher

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

Good catch!
But actually it will be added again on: https://github.com/pipe-cd/pipecd/pull/3124/files#diff-60908ffb7e37bfc3692d8c4cace4be91d53bccf9a549fb91ea30b70387abd9cfR32-R34

Merge this then that PR will not be able to be built, so would you mind closing this?

Oh, I see. Sorry🙇

Nope, well noticed!


⚠ GreatPosterWall has degraded performance

In 0e640b8, GreatPosterWall ($GPW) experienced degraded performance:

HTTP code: 200
Response time: 1705 ms

Resolved: GreatPosterWall performance has improved in b0ad69d.


fix minor bug in path_cnt checks

What do you think, is this a bug or not? I don't think it's dangerous, you'd need to have two CAs in the trust_ca list with the same subject name, but I think it counts as unintended behaviour that should be fixed.
Noticed during code review.
Commit comment: If the top certificate occurs twice in trust_ca (for example) it would not be good for the second instance to be checked with check_path_cnt reduced twice!

Thanks for catching this. I agree with your analysis.


Expose Locale information

This has arisen from an issue in @liamcain's calendar plugin, and the need to know if 2020 has 53 or 52 weeks, and the answer was... Depends what your locale is.
The correct way of solving this issue would be to ask the OS for its locale, but according to @liamcain, Obsidian's API does not expose it. Does it make sense to expose it to the plugins?

You are free to use electron's locale (app.getLocale) or whatever is available at the browser level (something like navigator.language). We don't actually have an API ourselves for that

Sorry, I should clarify. The issue I was mentioning is that the moment module packaged with the app doesn't include the locale files. I could pull in the moment locale files myself from a plugin but I'm not sure that makes the most sense. Happy to discuss outside of the Github issue though (forum or discord probably makes more sense).
Since this isn't API related, the issue should probably be closed.

I think probably because moment-with-locales was a lot bigger (like 6x the size of moment.js itself) so we didn't include it.

I think we can add those in either way one of the next releases. In the meantime you can still customize anything you want through moment's api I think.

moment-with-locales.js replaced moment.js in v0.1.18 insider build, which fixes the issue.
Sorry filing the issue when I didn't know what the root issue was.
Thank you both for working it out despite my mess :tada:

@lishid It's not clear to me how to use app.getLocale from plugin code. Obsidian's API exposes an app global but it doesn't have a getLocale method and doesn't seem to be the same app exposed by Electron. How can I access that?

you need the electron app object which you can get from electron.remote.app.

Thanks, but where does electron come from? VS Code doesn't recognize it as a global or something that can be imported.

you can either get it from window.require('electron') or window.electron - it's not defined in the type files but you can create an override declaration yourself in your project. The reason it's not defined out of the box is because it doesn't exist on mobile and thus isn't an API that's always available (so you should check if it's defined before attempting to use it).

I see, thank you. It sounds like that's pretty limited, then, if it only works on desktop.
I've been hearing from users of my plugin outside the US that number and date formatting aren't following their computer's locale. I can add a locale override to the plugin settings, but I was really hoping to be able to auto-detect it somehow.


[20.09] python3Packages.cryptography: 3.1 -> 3.2 (security, CVE-2020-25659)

Motivation for this change
Backport of #101751.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@GrahamcOfBorg build python3Packages.requests

was able to build it locally


(Fix) Reserved Token Addresses CSV import

Closes #1156

@fernandomg
Issue fixed https://github.com/poanetwork/token-wizard/issues/1156
But there is two things more(these can be done here or I can open separate issue ?) :

No validation of token value by decimals, i.e decimal=1, value=0.00001 allowed

Field decimals has arrow buttons, user should not be able to set up min value less than defined by decimals. See comment https://github.com/poanetwork/token-wizard/pull/1148#issuecomment-423569768

Black Duck Security Report
Branch integration/#1082-new-design has no Black Duck results, and could not be compared to #1157. Analyze branch integration/#1082-new-design to get a change comparison.
Removed Components
Medium Risk: 16
Clean:       1499
Click here to see full report

@dennis00010011b Let's consider this issue as fixed.
I created two different issues to address what you pointed out in the comment (#1158 & #1159)


Beta crashes on SD2SNES on SuperNT

PLEASE DO NOT USE THIS FORM TO REQUEST FEATURES!  THIS IS FOR BUG REPORTS ONLY!
If you wish to discuss new features, please join our Discord server: http://discord.smrpgspeedruns.com
Console or Emulator:
If emulator state which emulator and version.  If console, state which flash cart firmware.
SD2SNES (1.8.0-sa1-v06) on SuperNT
Flags (paste flag string if available):
Mode: Open
Version: 8.2beta5
Flags: Ks R7kc Cspjl -nfc Yb Zwgt Tc4 Sc4 Edfsac! Bmcs Qsba! X3 Nbmq -fakeout D6s
Seed:<PHONE_NUMBER>
https://randomizer-beta.smrpgspeedruns.com/h/2ac6c547d2ba8b29aaab4fb8e14fbe74
Description of problem:
The game softlocks in some battles, with enemies disappearing (not defeated, just disappearing) and music continuing to play but without any input or menus available, which requires a hard reset. Currently, I only have Bowser in my party, and he is in the center battle slot by default. I've specifically had this happen in Kero Sewers at the main boss, in the Marrymore boss fight, and in a regular fight in Booster Tower against a Chomp + Jester

I just updated my SD2SNES to firmware 1.10.3 and tested that it still crashes in the same way on the aforementioned Booster Tower fight.

That might've been due to the most recent change on the beta branch for the spell shuffle.  I've reverted that for now in a new beta version.


Remove empty fields from splunk return

Let us think about this over the weekend. May have impacts where none were intended.

Additional query with a version field will make it possible to distinguish between up to date and out of date profiles. For now the query will have to be manged manually until a more dynamic solution is found.


The gcsfuse sidecar container does not exit automatically when all the containers have exited and the Pod restartPolicy is Never

In some use cases, where the Pod restartPolicy is Never, and the users expect the sidecar container will exit automatically when all the containers have exited.
For example, in the Airflow use cases, the Task will never complete and the DAG be blocked if the sidecar container does not exit automatically.
Note that we do support sidecar container  auto-exit in Jobs -- the sidecar container will exit automatically when all the containers have exited in a Job Pod.

The issue is fixed by the commit https://github.com/GoogleCloudPlatform/gcs-fuse-csi-driver/commit/8a1a860265d3c4fb3a05ad1ee39180b707a239c3.
The fix will be included in the next release.

This is fixed in the CSI driver v0.1.3 release.

@songjiaxun -- I'm a bit confused by this. It seems that in the e.g. Airflow it still adds a full grace termination period to the end of every KubernetesPodOperator run.
My understanding from Kubernetes (based on this):

Termination Grace Period is the period of time after delivering the TERM signal.
If the process exits prior to the end of the grace period, then everything is finished at that point and you're done. If it hasn't, then it is forcibly KILLed and you're done more directly.

The Termination Grace Period is the period of time that the processes are allowed to exit gracefully -- if they don't, they're terminated abruptly. If they finish gracefully before then, that's great, too.
My understanding of the gcsfuse sidecar uses the same parameter but with very different behaviour:

Once all of the processes are terminated (and the pod isn't restarting or it is a job), then it first waits the grace period. This is to give the gcsfuse sidecar time to do work, but it isn't notified to shutdown.
It then sends a TERM signal to gcsfuse sidecar and waits for it to exit gracefully.

The Termination Grace is the period of time to wait (needed or not) just in case gcsfuse hasn't sync'd everything.
It looks like GCS Fuse doesn't handle TERM, but does INT and does the correct behaviour (unmounts and exits). (See this and this)
Based on the above, I think ideal behaviour would be:

Once all of the processes are terminated (and the pod isn't restarting or it is a job), then it immediately sends a Interrupt signal to gcsfuse and waits up to graceTerminationPeriod for it to exit.
If it exits early, then great -- you're done. If it doesn't exit by graceTerminationPeriod, then it is killed forcibly.

Given the code here, I think all that is required is delivering a interrupt signal to all of the processes prior to doing the sleep. The process should exit normally when all children processes are done, I believe.

Thanks, @mescanne, for the question. So there are two scenarios actually.
First scenario
If the Pod is a Job Pod or the RestartPolicy is Never, the workflow is like the following:

Once all the workload containers besides the sidecar container in the Pod terminated, and if the Pod is a Job Pod or the RestartPolicy is Never, the CSI driver will put a "exit file" to the sidecar container emptyDir volume to ask it to terminate.
The sidecar container detects the "exit file" in its emptyDir volume, it will sleep 30 seconds. This is currently hard coded and not configurable.
After the sleep, the sidecar container will send a SIGTERM signal to all the gcsfuse processes to kill them immediately.
Lastly, the sidecar container will terminate, marking the Pod a terminated status.

As you can see, in this scenario, it does not respect the terminationGracePeriod. This logic is actually a workaround until the Kubernetes sidecar container feature is available. The sidecar container feature will handle the sidecar container auto-termination.
Second scenario
For other workloads, the Pods are supposed to run forever. In this case, if the Pod crashes, it follows the doc Kubernetes best practices: terminating with grace. Specifically,

When the Pod crashes, a SIGTERM signal is sent to the Pod.
The sidecar container captures the SIGTERM signal, and sleeps for the terminationGracePeriod.
After terminationGracePeriod passed, the SIGKILL signal is sent to Pod.
All the containers will be forcefully killed.

I hope the explanation is helpful.

Thanks @songjiaxun !
Waiting 30 seconds at the end of a Job or Pod (with RestartPolicy Never) is quite a big painpoint as it imposes a severe delay for any Airflow job/task running.
GKE 1.28 availability
Do you know when Kubernetes 1.28 will be available in GKE stable? I see it is available in rapid, but with some caveat around the sidecar containers. So definitely close.
One note -- the gcs-fuse process itself doesn't seem to honour SIGTERM correctly, only SIGINT, and it will need to be modified as well.
If it's a few months or less then it's better to wait, but otherwise I have a proposal for improving the 30 second time for the first scenario with the exit file.
Proposal
Specifically for the First scenario when handling the exit file I was thinking a dramatic improvement -- prior to the Kubernetes sidecar container feature -- would be to amend the logic here as follows upon detection of the exit file:

Deliver a SIGINT to all of the running commands.
Wait until either the waitgroup signalled or the the grace period (30 seconds) is expired.
If the grace period expires without the waitgroup, then deliver process Kill() forcibly (as current behaviour)
Always deliver the SIGTERM signal for the sidecar container to clean up.

Why?

Give the gcs-fuse interrupt handler time to unmount cleanly and exit early. If this happens, you do not need to wait around the 30 seconds.
Revert to the normal behaviour if it takes up to the grace period.

Code

I've started on some prototype code and, more importantly, some integration tests to test the behaviour. If the 2.28 sidecar container behaviour is imminent then I'll hold off.

Hi @mescanne , I created this commit to make the sidecar container respect the Pod terminationGracePeriod in the first scenario.
In your use case, you will need to specify a small terminationGracePeriodSeconds value on your Pod, e.g. 5, or even 0. Otherwise, the default value is 30 sec. I hope this improvement will be helpful.
This will be included in the next release.
Also, the sidecar container feature is going to be promoted to beta in Kubernetes 1.29, which will be the k8s version with the sidecar container feature enabled on GKE.

Thanks, that is very helpful. In this case we can decrease the graceful termination. Thanks!


docs: Rook Ceph Upgrade

Add a guide to explain how to upgrade rook-ceph component.

[ ] Verify with the upstream docs to make sure that we are in sync.

One general concern is that we keep telling the user to monitor updates but we don't say what to do if something goes wrong. I don't know if there's much we can say about that but it feels weird.

I think all this visibility helps user to connect dots in an automated upgrade process, if something were to go wrong. A user can simply run lokoctl component apply rook rook-ceph and might wonder what is going on under or why cluster won't store data all of sudden.
Expecting failures will be hard, but if there are known issues we should always document it in this document. But we provide the user doing upgrade enough visibility and tools to dig deeper if something were to go wrong.


Use cni plugin fork

Description

Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

TBD

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: anthonytwh:x: semgrep.dev on behalf of @anthonytwhsemgrep.dev on behalf of @anthonytwh seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[2012-05-01] Allow sorting by non-DB properties in GridFieldSortableHeader

created by: @chillu (ischommer)
created at: 2012-05-01
original ticket: http://open.silverstripe.org/ticket/7255

Specific use case is sorting by file size in admin/assets, which is using a GridField. This value is computed dynamically via File->getSize(), and can't easily be migrated to the DB either (although that's beside the point). See  silverstripe/silverstripe-cms#413 .
Presumably we can already sort by composite DB columns, see DataListTest->testSortByComplexExpression().
In addition, we need an in-memory sort option. ArrayList->sort() already handles that, so its mainly a matter of casting a DataList managed by GridField to a "concrete" ArrayList if required.
Add a new GridFieldSortableHeader->setFields() method, which allows to explicitly specify the sortable fields - and falling back on the DataList->canSortBy() logic. If the sort is requested on a non-DB property, it needs to cast the list as an ArrayList. Add a big fat warning about memory usage on setFields(), not recommended for lists with more than a hundred records.

Stale enhancement.


how to perform a race condition

  const winner = yield race({
    auth: call(getAuthorize, { username, password, isRegistering: false }),
    logout: take(LOGOUT),
  });

  // If `authorize` was the winner...
  if (winner.auth) {
    // ...we send Redux appropiate actions
    yield put(changeForm({ username: '', password: '' })); // Clear form
    forwardTo(pages.pageDashboard.path); // Go to dashboard page
    // If `logout` won...
  } else if (winner.logout) {
    // ...we send Redux appropiate action
    yield call(logout); // Call `logout` effect
    forwardTo(pages.pageLogin.path); // Go to root page
  }

Is it possible to produce a race like this saga ?

If I understand the code you have presented it appears that the desired goal is to make an auth request and if in the meantime they click logout, then you would instead log them out. And possibly the reverse as well, if they are logging out and an auth request comes in, perform that instead.
That is easily accomplished in redux-logic with a cancelType declaration. I split the work done from an auth success into its own logic.
const authLogic = createLogic({
  type: AUTHORIZE, // action that triggers the authorization
  cancelType: LOGOUT, // action that would cancel a pending authorization
  process({ getState, action }) {
    const { username, password, isRegistering } = action.payload;
    return getAuthorize({ username, password, isRegistering })
      .then(() => ({ type: AUTH_SUCCESS }));
  }
});

const authSuccessLogic = createLogic({
  type: AUTH_SUCCESS,
  process({ getState, action }) {
    forwardTo(pages.pageDashboard.path);
    return changeForm({ username: '', password: '' }); // action to clear logic form data
  }
});

const logoutLogic = createLogic({
  type: LOGOUT, // action that triggers the logout
  cancelType: AUTHORIZE, // action that would cancel a pending logout
  process({ getState, action }) {
    return logout()
      .then(() => forwardTo(pages.pageLogin.path))
  }
});

So in either case if you are processing an auth and you get a logout request or vice versa the previous work will be cancelled.

Now as to the question about whether you can do races with redux-logic, yes you just do this in your code using Observables, Promise.race, or other helper lib.
Let's say you want to hit multiple services and just use the first that comes back.
Assuming our api.callService1() and api.callService2() return a promise resolving to the data.
Here is an example using Observable.race()
const getFoo = createLogic({
  type: 'FOO',
  process({ getState, action }) {
    return Observable.race(
      Observable.fromPromise(api.callService1()),
      Observable.fromPromise(api.callService2())
    ).then(results => fooSuccess(results));
  }
});

or if you want to stick with promises, you could use Bluebird's Promise.race()
const getFoo = createLogic({
  type: 'FOO',
  process({ getState, action }) {
    return Promise.race([
      api.callService1(),
      api.callService2()
    ]).then(results => fooSuccess(results));
  }
});

So in either case if you are processing an auth and you get a logout request or vice versa the previous work will be cancelled.

This is fine, but what about if I also need to cancel the logics in LOCATION_CHANGE ?

@kopax can you give me an example use case so I can understand? Also is LOCATION_CHANGE the action which requests a route change or is it the action indicating that a route change has already occured.

@jeffbski ,
Let say a logout is in proress while an authorize request as been dispatch end is sending for updating the jwt.
The logout perform first, we absolutely need to cancel the jwt update.
So the updating jwt logic will be canceled on LOCATION_CHANGE, but we also need to cancel it on SUBMIT_LOGOUT_REQUEST.

You can also pass an array or regex to cancelType so if you want to cancel logic on both of those
const fooLogic = createLogic({
  type: FOO,
  cancelType: [ LOCATION_CHANGE, SUBMIT_LOGOUT_REQUEST ], // cancels on any of these
  ...
});

Thanks a lot, that make sens now. This should be added to the doc I think.

I've started a guide that walks people through more of those details, so I'll make sure to highlight that. Thanks.


arangodb tool should support upgrade option

Using Arangodb 3.2.6:
2.8
3.0
3.1
[*] 3.2
self-compiled devel branch
Mode:
[*] Cluster
Single-Server
Storage-Engine:
mmfiles
rocksdb
On this operating system:
DCOS on
[] AWS
Azure
[] own infrastructure
Linux
Debian .deb
[*] Ubuntu .deb
SUSE .rpm
RedHat .rpm
Fedora .rpm
Gentoo
docker - official docker library
other:
Windows, version:
MacOS, version:
this is an AQL-related issue:
[*] I'm using graph features
this is an installation-related issue:
Describe which steps you carried out, what you expected to happen and what actually happened.
what you expected to happen:
--upgrade option is should be supported for arangodb tool
what actually happened:
--upgrade option is not supported for arangodb tool

did you try?: --all.database.auto-upgrade=true ? (as one of the arguments passed to the arangodb starter)

Hi @hisoumit
Could you please, send us an update on this ticket.
Best


[WFLY-15230] Update the Elytron schema version specified in test configs

https://issues.redhat.com/browse/WFLY-15230

Hello, Ashpan. I'm waiting for one of the admins to verify this patch with /ok-to-test in a comment.

/ok-to-test

@darranl I'll leave this to you to merge as you'll know best if it will conflict with something you're doing.

FYI I am watching this but once the last CI job completed this can go in, this will allow us to kick off CI for the WildFly Core PR.


Small content updates on sender/csv documentation

Problem statement
Got some additional feedback on content after deploy. Need to make some small tweaks for clarity.
Acceptance criteria

Include some extra language to make our ID-proofing/PHD recommendation process clearer.
Further define "pilot program" where we have that outlined/labeled

To do

[x] Add ID/PHD rec lang to /overview
[x] Add pilot program def to csv doc pages
[x] ALSO! Add note about col orders not being specific. Just has to have the right values.

1.14.2022: @drew-usds and @BerniXiongA6 collab'ed today to update content on local environment. Drew will submit PR. Moving to Review/QA.


Should we use cudnn v5.0 or v5.1?

NOTE: Only file GitHub issues for bugs and feature requests.  All other topics will be closed.
For general support from the community, see StackOverflow.
To make bugs and feature requests more easy to find and organize, we close issues that are deemed
out of scope for GitHub Issues and point people to StackOverflow.
For bugs or installation issues, please provide the following information.
The more information you provide, the more easily we will be able to offer
help and advice.
What related GitHub issues or StackOverflow threads have you found by searching the web for your problem?
Environment info
Operating System: osx Sierra
Installed version of CUDA and cuDNN:

cuda v8.0,
cudnn v5.0

(please attach the output of ls -l /path/to/cuda/lib/libcud*):
lib/libcuda.1.dylib     lib/libcudart.8.0.dylib lib/libcudnn.5.dylib
lib/libcuda.dylib       lib/libcudart.dylib     lib/libcudnn.dylib
lib/libcudadevrt.a      lib/libcudart_static.a  lib/libcudnn_static.a

If installed from binary pip package, provide:

A link to the pip package you installed: https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0-py3-none-any.whl
The output from python -c "import tensorflow; print(tensorflow.__version__)".

python3 -c "import tensorflow; print(tensorflow.__version__)"
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.dylib locally
0.11.0rc2

If installed from source, provide

The commit hash (git rev-parse HEAD)
The output of bazel version

If possible, provide a minimal reproducible example (We usually don't have time to read hundreds of lines of your code)
cd /usr/local/lib/python3.5/site-packages/tensorflow/models/image/mnist
python3 convolutional.py

What other attempted solutions have you tried?
Install cudnn v5.1
Logs or other output that would be helpful
(If logs are large, please upload as attachment or provide link).
The code sample failed, complaining about cudnn and tensorflow version mismatch. I lost the original output. It said something like the tensorflow is build with cudnn 51000x, but the loaded cudnn lib is 50000.
Then, I installed cudnn v5.1, and the message is gone, and the sample code runs.
I followed the installation instruction on https://www.tensorflow.org/versions/master/get_started/os_setup.html#pip-installation. I think either the instruction needs update to tell people to install cudnn v5.1; or something mistakenly build tensorflow with cudnn v5.1 and released it.

Thanks for the detailed report.  I believe TF version 0.12 introduced support for cudnn v5.1 with cuda 8.0.  It may be required on OSX.

In MacOSX, 0.11 (final, non-rc) and 0.12 both require CuDNN 5.1 if you are using our prebuilt packages.
in 0.11 rc versions, we noticed a problem in our builder machines where there were discrepancies in mac cudnn versions, so please install cudnn 5.1, then upgrade to either 0.11.0 (final) or 0.12.0rc0.


Can't find ')' to match '('.

Describe the bug
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/endpoint_dispatch.dart:133:51: Error: Can't find ')' to match '('.
      var authFailed = await canUserAccessEndpoint(
                                                  ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/websocket_request_handlers/endpoint_websocket_request_handler.dart:75:72: Error: Can't find ')' to match '('.
          var authFailed = await EndpointDispatch.canUserAccessEndpoint(
                                                                       ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/websocket_request_handlers/endpoint_websocket_request_handler.dart:146:68: Error: Can't find ')' to match '('.
      var authFailed = await EndpointDispatch.canUserAccessEndpoint(
                                                                   ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/websocket_request_handlers/endpoint_websocket_request_handler.dart:161:68: Error: Can't find ')' to match '('.
      var authFailed = await EndpointDispatch.canUserAccessEndpoint(
                                                                   ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/websocket_request_handlers/method_websocket_request_handler.dart:214:66: Error: Can't find ')' to match '('.
    var authFailed = await EndpointDispatch.canUserAccessEndpoint(
                                                                 ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/endpoint_dispatch.dart:133:51: Error: Too few positional arguments: 3 required, 2 given.
      var authFailed = await canUserAccessEndpoint(
                                                  ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/endpoint_dispatch.dart:183:46: Context: Found this candidate, but the arguments don't match.
  static Future<ResultAuthenticationFailed?> canUserAccessEndpoint(
                                             ^^^^^^^^^^^^^^^^^^^^^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/websocket_request_handlers/endpoint_websocket_request_handler.dart:75:72: Error: Too few positional arguments: 3 required, 2 given.
          var authFailed = await EndpointDispatch.canUserAccessEndpoint(
                                                                       ^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/endpoint_dispatch.dart:183:46: Context: Found this candidate, but the arguments don't match.
  static Future<ResultAuthenticationFailed?> canUserAccessEndpoint(
                                             ^^^^^^^^^^^^^^^^^^^^^
/d:/pub_cache/hosted/pub.flutter-io.cn/serverpod-2.1.0-beta.2/lib/src/server/websocket_request_handlers/endpoint_websocket_request_handler.dart:146:68: Error: Too few positional arguments: 3 required, 2 given.
      var authFailed = await EndpointDispatch.canUserAccessEndpoint(

To Reproduce
Steps to reproduce the behavior:

upgrade serverpod version
start server

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
Serverpod versions

CLI Version: Serverpod version: 2.1.0-beta.2
Library version: 2.1.0-beta.2

Platform information
server
Additional context

that is malware to steal your account; do not under any circumstances download or run it. The post needs to be removed. If you have attempted to run it please have your system cleaned and your account secured immediately.

Hey @donywan 👋
Could you try to remove the dart cache and pull down the dependencies again?
Also, just to be sure, have you made any manual modifications to your cached version of Serverpod?

Could you try to remove the dart cache and pull down the dependencies again?
Yes,I cleared the cache, but I couldn't figure out what the problem was, so I rolled back to 2.0.2.
Also, just to be sure, have you made any manual modifications to your cached version of Serverpod?
No,I re-executed the dart pub get command.

I think it has something to do with the following command

Try dart pub outdated for more information.

Do you get this issue if you create a new project?
When upgrading, did you remember to update all dependencies towards Serverpod to use the same version?
My hunch tells me that if this was an issue in the version of Serverpod that we released, all our users would see this and we would catch it directly.

Do you get this issue if you create a new project? When upgrading, did you remember to update all dependencies towards Serverpod to use the same version?
My hunch tells me that if this was an issue in the version of Serverpod that we released, all our users would see this and we would catch it directly.

There is no error, this may be a problem with the environment in my computer.


Add test to see if indirect is trivially relocatable

@Quuxplusone Thanks for the great review.
One query: if we make trivially relocatable conditional as you've suggested, I think we lose the support for incomplete types no?

One query: if we make trivially relocatable conditional as you've suggested, I think we lose the support for incomplete types no?

I didn't think of that, but I didn't intend to, and I don't think it happens. xyz::indirect<Incomplete> should still work fine. It's true that xyz::indirect<int, IncompleteAllocator<int>> will not work, but that already didn't work anyway because you need A to be complete in order to find out what typename A::pointer is.
I encourage you to add test coverage for xyz::indirect<Incomplete> if that use-case is important to you!

I'll close this as we don't want to merge until relocation in C++ is a thing.

I'll close this as we don't want to merge until relocation in C++ is a thing.

FWIW, as an interested observer, I would prefer to see this taken to completion and merged. It's all properly guarded by the appropriate #ifs (or at least it should be, and I'm happy to take another look), so it's not harmful to have the codepaths in your main branch (except that it is added complexity, I'd admit). Meanwhile

it makes your library work "out of the box" with relocatability-enabled compilers, e.g. my Clang fork; you can test this on Godbolt or natively
it serves as an example (for WG21 and for other library maintainers) of how the proposal would work in practice
it serves as an example (for WG21) that your indirect/polymorphic proposal doesn't conflict with relocatability

"Merge to trunk, under the proper #ifs" is also the route taken by e.g. charles-salvia/std_error (using the feature-test macros) and STEllAR-GROUP/hpx (using its own HPX_HAS_P1144_RELOCATE_AT macro).
(But it shouldn't be merged immediately as-is, because as you can see from Godbolt there's at least two typos in the #if'ed-out parts; that's certainly part of the argument in the "complexity" column.)

Thanks @Quuxplusone . For now the complexity hit is more than I want. I'm trying to minimise cognitive load as we get the paper and reference implementation ready. Feel free to fork.


Update @crowbartools/firebot-custom-scripts-types to 5.60.1

Actually let's just yolo it, because I haven't really changed anything in the code apart from fixing the types.


Consider creating jamboard per puzzle (perhaps optionally)

Jamboard has no API.
This can be solved by good protocol:

Make jamboard public (anyone with link)
Put on spreadsheet


Ability to procedurally generate terrain using 3D noise

I've been experimenting on this project for a bit now and the feature that I feel like could make a difference is adding the ability to generate a terrain using 3D noise.
This would give much more interesting results, with the things like overhangs, arches and etc..

A while ago I was playing around with 3d noise but didn't really bother polishing it. Could be a nice addition. If you want to try 3d noise yourself, you could tweak this line to use noise.snoise(int3), taking inspiration from the OctaveNoise() function below that line.

Hey, I have tried changing this line to use float3 but I cannot get it to work or at least get any actual results. What I did is changed the OctaveNoise() function to accept additional float z parameter and have sent the x, y and z world position values when calling this method.
return worldPositionY - this.OctaveNoise(worldPositionX, worldPositionY, worldPositionZ, proceduralTerrainSettings.NoiseFrequency * 0.001f, proceduralTerrainSettings.NoiseOctaveCount) * proceduralTerrainSettings.Amplitude - proceduralTerrainSettings.HeightOffset;
When calling noise function I simply added z parameter and that's it
float pureNoise = (noise.snoise(new float3(octaveModifier * x * frequency, octaveModifier * y * frequency, octaveModifier * z * frequency)) + 1) / 2f;
But all I get is pretty much the same type of terrain. Seems like it's just a heightmap based terrain. Do I need to change something else?

I got some kind of 3D noise working, here's how I did it:
public float CalculateVoxelData(int worldPositionX, int worldPositionY, int worldPositionZ)
{
	float voxelData = worldPositionY;

	// Create 3D noise in range [-1, 1]
	float overhang = noise.snoise(new float3(worldPositionX, worldPositionY, worldPositionZ) * ProceduralTerrainSettings.NoiseFrequency * 0.001f);

	// Remap the 3D noise to be in range [0, 1]
	overhang = (overhang + 1) * 0.5f;

	// Multiply it by some constant
	overhang *= 100;

	voxelData -= overhang;
	voxelData -= OctaveNoise(worldPositionX, worldPositionZ, ProceduralTerrainSettings.NoiseFrequency * 0.0001f, ProceduralTerrainSettings.NoiseOctaveCount) * ProceduralTerrainSettings.Amplitude;
	voxelData -= ProceduralTerrainSettings.HeightOffset;
	voxelData *= 0.5f;
	return voxelData;
}

It works, but sometimes the physics are questionable, to say the least:

Thanks! After playing around with some settings like frequency and amplitude I got some pretty interesting results!

Although, there are a lot of floating parts. You think it's because of the noise function? I was thinking trying to check the size of the floating piece and if the element is big enough make the thing separate with its own collider and rigidbody and if it's small just remove it.
Although, I'm not sure how to detect these parts.

I also tried to blend two noises together, to have like a flat land with occasional mountains, I managed to make something to the extent, but I got really hard edges when the mountain starts. I suppose I need to blend the heights? Not really sure how to tho.

Although, there are a lot of floating parts. You think it's because of the noise function?

Yep.

I'm not sure how to detect these parts.

This could be done using the flood fill algorithm to detect different areas. One problem though would be the edges of the visible world, where the terrain has not yet been generated so you don't know if a part is either floating or attached to something that has not been loaded yet.


New feature: tortuosity

It would be useful for validations to add the section_tortuosity feature at the "get" level for the next release.
Definition of tortuosity can be found here (http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3928584/):
"Also, the distance metric (DM) tortuosity (a dimensionless number) provides a ratio between the actual path length of a meandering curve (i.e. along segments) and the linear distance between endpoints (radial distance)"

If this is simply the section path length divided by the end-to-end distance, then I can add if to fst.get. Will that suffice, or do we also need it in ezy.get?

Yes, it is the path distance of a section divided by the radial distance of the same section. I think it will be sufficient to be added to fst unless the ezy.get will not be deprecated any time soon.


Personal-Template.

Pull Request
Contribution type

[x] New template contribution
[ ] Existing template update
[ ] Issue fix
[ ] README.md update

Contribution Description
[ X ] I would like my template to be added to the Unstoppable Domains' website builder
Unstoppable Domain Name:
bigrobin.crypto

@PublisherName Thank you for your submission. Couple of requests for updates

[ ] Keep all font files local, some off your fonts currently rely on fonts.googleapis.com
[ ] Inline the background: url for the .main-banner class
[ ] Move css/, fonts/, and images/ into a assets/ folder

I'd also recommend adding social logos or other additional content

Updated:
[x] Keep all font files local, some off your fonts currently rely on fonts.googleapis.com
[x] Inline the background: url for the .main-banner class
[x] Move css/, fonts/, and images/ into a assets/ folder
[x] Added Social Logos.

Hey thanks for your submission unfortunately we can not accept this template because of W3Layouts license. Sorry I had you make updates before looking into this


feat: Add brglng/vim-im-select to change input method automatically.

related issue: #112
have tested on my Linux (with fcitx5 installed) and MacOS (need install im-select first)

I'll check if this is a bug, thx


Fix the configuration for prototyped arrays used as map

In #23, I fixed one of the prototyped nodes, but I missed the fact that the other one is also using a map, and so suffered from the same issue.

Thank you very much @stof for all these fixes.


Implement OnNewBlock event for txpool

Describe the feature
The current update checks are incomplete, it depends on the StateDiff of the block
https://github.com/paradigmxyz/reth/blob/6c37b0aa1b31cbeacd118715dc6e85f429aa2741/crates/transaction-pool/src/traits.rs#L216-L220
in order to update the pool based on:

account balance
account nonce
...

Additional context
No response

Just to add info, flagging account change can be found in AccountChangeset table but for balance value, this needs to be fetched from PlainAccountState


Hit Sounds sometimes play when there is a lot of notes, even when it's turned off.

Describe your bug here.
If there is a lot of notes being pressed, Hit Sounds will still play even when Hit Sounds are off.
Command Prompt/Terminal logs (if existing)
No response
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows
Did you edit anything in this build? If so, mention or summarize your changes.
Yes, I edited PlayState to make BotPlay less laggy.

I made a PR that should fix this

Thanks!

I tried to compile, but I got this.
source/grafex/states/playstate/PlayState.hx:2694: characters 11-16 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:1813: characters 30-35 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:1814: characters 21-26 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:4455: characters 40-52 : Class<grafex.states.TitleState> has no field getTitleData
source/grafex/states/playstate/PlayState.hx:4532: characters 39-51 : Class<grafex.states.TitleState> has no field getTitleData
source/grafex/states/playstate/PlayState.hx:3239: characters 20-25 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:3244: characters 11-16 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:4166: characters 45-63 : Static access to instance field getFlxEaseByString is not allowed
source/grafex/states/playstate/PlayState.hx:4276: characters 43-49 : Cannot access private field player
source/grafex/states/playstate/PlayState.hx:4278: characters 16-22 : Cannot access private field player
source/grafex/system/script/FunkinLua.hx:1658: characters 34-39 : Bool should be String
source/grafex/system/script/FunkinLua.hx:1658: characters 34-39 : ... For optional function argument 'char'
source/grafex/states/playstate/PlayState.hx:2790: characters 10-15 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:1468: characters 33-43 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1479: characters 37-47 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1486: characters 33-43 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1497: characters 37-47 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1504: characters 31-41 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1515: characters 35-45 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1522: characters 34-44 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1533: characters 38-48 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:4866: characters 19-29 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:5934: characters 13-23 : grafex.sprites.HealthIcon has no field spriteType
source/grafex/states/playstate/PlayState.hx:5936: characters 13-23 : grafex.sprites.HealthIcon has no field spriteType
source/grafex/states/playstate/PlayState.hx:4665: characters 20-33 : Class<grafex.util.ClientPrefs> has no field comboStacking
source/grafex/states/playstate/PlayState.hx:4698: characters 20-33 : Class<grafex.util.ClientPrefs> has no field comboStacking
source/grafex/states/playstate/PlayState.hx:4724: characters 21-34 : Class<grafex.util.ClientPrefs> has no field comboStacking
source/grafex/states/playstate/PlayState.hx:4959: characters 19-29 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:2722: characters 20-25 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:3444: characters 11-21 : grafex.sprites.HealthIcon has no field updateAnim (Suggestion: updateTrig)
source/grafex/states/playstate/PlayState.hx:3446: characters 11-21 : grafex.sprites.HealthIcon has no field updateAnim (Suggestion: updateTrig)
source/grafex/states/playstate/PlayState.hx:5071: characters 125-130 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:3544: characters 127-132 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:5598: characters 20-25 : flixel.system.FlxSound has no field pitch```

that's an issue with lime 8.0.0

Oh.
I'll downgrade.

It's still not working, even when I went to 7.9.0

source/grafex/states/playstate/PlayState.hx:2688: characters 20-25 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:2694: characters 11-16 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:1813: characters 30-35 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:1814: characters 21-26 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:4455: characters 40-52 : Class<grafex.states.TitleState> has no field getTitleData
source/grafex/states/playstate/PlayState.hx:4532: characters 39-51 : Class<grafex.states.TitleState> has no field getTitleData
source/grafex/states/playstate/PlayState.hx:3239: characters 20-25 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:3244: characters 11-16 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:4166: characters 45-63 : Static access to instance field getFlxEaseByString is not allowed
source/grafex/states/playstate/PlayState.hx:4276: characters 43-49 : Cannot access private field player
source/grafex/states/playstate/PlayState.hx:4278: characters 16-22 : Cannot access private field player
source/grafex/system/script/FunkinLua.hx:1658: characters 34-39 : Bool should be String
source/grafex/system/script/FunkinLua.hx:1658: characters 34-39 : ... For optional function argument 'char'
source/grafex/states/playstate/PlayState.hx:2790: characters 10-15 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:1468: characters 33-43 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1479: characters 37-47 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1486: characters 33-43 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1497: characters 37-47 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1504: characters 31-41 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1515: characters 35-45 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1522: characters 34-44 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:1533: characters 38-48 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:4866: characters 19-29 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:5934: characters 13-23 : grafex.sprites.HealthIcon has no field spriteType
source/grafex/states/playstate/PlayState.hx:5936: characters 13-23 : grafex.sprites.HealthIcon has no field spriteType
source/grafex/states/playstate/PlayState.hx:4665: characters 20-33 : Class<grafex.util.ClientPrefs> has no field comboStacking
source/grafex/states/playstate/PlayState.hx:4698: characters 20-33 : Class<grafex.util.ClientPrefs> has no field comboStacking
source/grafex/states/playstate/PlayState.hx:4724: characters 21-34 : Class<grafex.util.ClientPrefs> has no field comboStacking
source/grafex/states/playstate/PlayState.hx:4959: characters 19-29 : Class<grafex.util.ClientPrefs> has no field keystrokes
source/grafex/states/playstate/PlayState.hx:2722: characters 20-25 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:3444: characters 11-21 : grafex.sprites.HealthIcon has no field updateAnim (Suggestion: updateTrig)
source/grafex/states/playstate/PlayState.hx:3446: characters 11-21 : grafex.sprites.HealthIcon has no field updateAnim (Suggestion: updateTrig)
source/grafex/states/playstate/PlayState.hx:5071: characters 125-130 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:3544: characters 127-132 : flixel.system.FlxSound has no field pitch
source/grafex/states/playstate/PlayState.hx:5598: characters 20-25 : flixel.system.FlxSound has no field pitch

well then that's just an issue from the raw branch

it's pretty unstable

There is still hit sounds, I check my settings to make sure the hit sounds volume was set to 0.

I know, again, the raw branch is unstable, & I made a PR that maybe fixes it

But I put the code that you edited into a stable source.

then it might be a bug with the option itself

Alright

Oh god...
Well, as i see, there are a lot of errors of FlxSound
What is version of Flixel you use?

I use version 4.0.2

Will check both things (PR and issue)

Last commit should fix this, chech it out

Closed for now


fix BoxstarterTempDir in Windows

$PSVersionTable.Platform is not set in Windows PowerShell - causing TempDir to always be C:/tmp/Boxstarter on Windows.
(not currently released - but present in develop branch, caused by GH-523)

I noticed this PR when I was going through and getting things ready for the 3.0.1 release, and I wasn't sure whether this change should, or should not, go into the release.  I opted not to, as it seemed to be related to the change that went in with this PR, however, I opted not to include that change in 3.0.1, as this was marked as 1 of many, so I figured that there was still work to be done on this.  The reason that I bring this up, is that there is no immediate clue in this PR, either through the commit message, or which issue this is assigned to, as to what exactly that this change is for.  To provide traceability going forward, I think it would be a good idea to follow the same contributing guidelines that are used on the chocolatey/choco repository in this repository as well.
@mwallner @flcdrg would there be any objections to this?  If you wanted to have a chat at some point to walk through those guidelines to make sure that everyone is on the same page, I would be happy to do this.

I've seen that - in fact I've been surprised that everything but GH-523 went into 3.0.1 😀
this change is basically a fix for something I got wrong in GH-523, so it's either both or none of them.
No obligations following the same contribution guidelines, we basically already agreed on that a while back I think - my bad.

@mwallner said...
in fact I've been surprised that everything but https://github.com/chocolatey/boxstarter/pull/523 went into 3.0.1

It wasn't immediately clear to me that this issue was ready to be released.  The PR that you linked to has a title to 1/many, which suggests that there is still work to be done to complete the work.  If this isn't the case, then we can look to release a 3.1.0 release of Boxstarter, since the ability to run on POSIX machines would be a minor release, rather than a patch release.


feat: Match360 Java SDK Major Release

Match360 Java SDK Major Release v1
BREAKING CHANGE: Java SDK for Match 360 in CPD v4.0.1

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