os, internal/poll: fd.Read with read deadline on named pipe before writer has opened returns EOF prematurely

What version of Go are you using (go version)?

$ go version
go version go1.15.6 linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/jaq/.cache/go-build"
GOENV="/home/jaq/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/jaq/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/jaq/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/lib/go-1.15"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/lib/go-1.15/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build328231033=/tmp/go-build -gno-record-gcc-switches"

What did you do?

Create a fifo with os.Mkfifo, then open the reader in nonblocking, RDONLY mode. Start a goroutine to read the pipe, with a SetReadDeadline,. in a loop until EOF is received.
Open the writer end and write a single line, then close the file.
A race condition exists in such code where the read is scheduled before the write, and in just the right conditions, the reader returns 0 bytes read and EOF before the write succeeds.
https://play.golang.org/p/cZ9A_FCur43 has a demonstration that uses wg2 to force the race condition.  With the race disabled (the race is still there, just harder to trigger) the writer opens the file before the read goroutine is scheduled and the reader gets all the data.
In the errant case (race enabled), the reader gets scheduled first.  The write end of the pipe has not been opened yet, and according to man pipe(7) and read(2) the reader should get an EAGAIN, not EOF.  EOF is to signal to the reader that the writer has closed the pipe.
What did you expect to see?
When reading from a nonblocking named pipe on Linux before the writer has opened the pipe, one expects to get an EAGAIN error. https://man7.org/linux/man-pages/man2/read.2.html
I think that the correct behaviour for Go, having handled EAGAIN, is to return n = 0, err = nil from fd.Read when a read deadline is set, which would align with pipe(7) in as much as EOF remains reserved as a signal that the writer has closed the pipe.
Otherwise (as is presently the case) there is no way to correctly shut down a pipe reader and handle this race correctly.
What did you see instead?
The reader gets EOF too early.  This looks like a problem with how fd.eofError() in internal/poll/fd_posix.go is implemented, and/or how ZeroReadIsEOF is set for nonblocking reads in os/file_unix.go.

openat(AT_FDCWD, "/tmp/fifo", O_RDONLY|O_NONBLOCK|O_CLOEXEC) = 3
read(3, "", 4096)                        = 0

The above strace log show that read(2) not return error when write end of the pipe has not been opened.

I tried to reproduce your comment by copygin my play.golang.org example above into bug.go, commenting out the demo(false) line in main, then go build bug.go and strace ./bug > /dev/null.
I see:
write(1, "\nRace\n", 6)                 = 6
mknodat(AT_FDCWD, "/tmp/fifo", S_IFIFO|0600) = -1 EEXIST (File exists)
openat(AT_FDCWD, "/tmp/fifo", O_RDONLY|O_NONBLOCK|O_CLOEXEC) = 3
epoll_create1(EPOLL_CLOEXEC)            = 4
pipe2([5, 6], O_NONBLOCK|O_CLOEXEC)     = 0
epoll_ctl(4, EPOLL_CTL_ADD, 5, {EPOLLIN, {u32=5884208, u64=5884208}}) = 0
epoll_ctl(4, EPOLL_CTL_ADD, 3, {EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, {u32=3547467400, u64=139637229227656}}) = 0
fcntl(3, F_GETFL)                       = 0x8800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE)
fcntl(3, F_SETFL, O_RDONLY|O_NONBLOCK|O_LARGEFILE) = 0
futex(0xc000080148, FUTEX_WAKE_PRIVATE, 1) = 1
read(3, "", 4096)                       = 0
write(1, "n: 0, err: EOF\n", 15)        = 15
write(1, "b: []\n", 6)                  = 6
futex(0xc000042548, FUTEX_WAKE_PRIVATE, 1) = 1
epoll_ctl(4, EPOLL_CTL_DEL, 3, 0xc0000a1dac) = 0
close(3)                                = 0
futex(0x56d9e8, FUTEX_WAIT_PRIVATE, 0, NULL

at the point it hangs on wg2.Wait() as expected.  But what I see differently to you is that there's several epoll calls in between the openat and the read.  I don't understand what is happening here but I can guess it is because of the SetReadDeadline and the implementation of file IO in Go for Linux being based on epoll.  I can make a wild guess that in an epoll-triggered read, there must be data waiting on the fd, rather than my earlier assumption of calling read on a not-ready-yet fd which would trigger EAGAIN.
But the result is the same -- if the read did not error (strace shows it didn't return -1) then the fd is not closed, and thus the higher level implementation should not be returning io.EOF in this case.

CC @ianlancetaylor, @bradfitz.

What sort of help do you need? :-)  Would you like a change that implements what I suggested, or are you looking for an expert third party to approve of the proposed change first?

A change that implements the suggestion, along with a test, would be fine.  Thanks.

I've drafted a test based on my playground code above, and so far have managed to figure out that this is going to be harder than I thought.

I'm stuck again, confusing myself in the depths of internal/poll and now runtime/netpoll.go
I'm reminded that golang/go/20280 is the reason I'm exploring this path.  I have a fifo that I want to read from until either EOF or a context is cancelled.  In order to notice that the context is cancelled, I use SetReadDeadline on the fifo, hence the strange construct in the playground example.
The earlier statements about expecting EAGAIN on read was incorrect, because Go runtime is using epoll in the runtime, so we should expect to see EPOLLHUP on the reader while the write end is still closed.  I think the EPOLLHUP gets eaten in netpoll_epoll.go:164 and the intent of "the writer isn't there" never gets passed up, but I haven't verified yet.
(For the benefit of the tape, the best way to debug this that I've found is after having built a local go fresh from Git (~/src/go/go for me) use the new install's go to install delve (~/src/go/go/bin/go install github...delve@latest), and then cd into ~/src/go/go/src/os and run PATH=~/src/go/go/bin:$PATH GOROOT=~/src/go/go dlv test to run the current test with the correct toolchain and be able to recompile the test as you modify it to explore the code.)
Meanwhile I've noticed https://github.com/golang/go/issues/20280#issuecomment-655588450 which I think is a better approach than setting a read deadline every time just to test for cancellation, so while I think there's still a bug here, I think I am no longer dependent on it.

Could you open fifo in blocking mode, that should avoid the race?

The problem I have is nearly identical to https://github.com/golang/go/issues/20280, where one does not want to open in blocking mode because one wants a context cancellation to interrupt the read.  The suggestions from that bug report have indeed helped -- the magic is knowing you don't need to set a read deadline on the read before you start the read.


provide CLI w/ account private key to sign requests

HI,
I thinks its more like a question/feature request, because I am not able to locate the part(s) in the code base which might handle this. however I managed to fine it a dependency node-letsencrypt
So what does the CLI thinks where the account private key is located? And would it be possible to provide the CLI with the location (or content) of the acoounts private key?
thanks for any advice

Yes, totally possible. At CES for the week. Ping me on Monday and I'll get that set up, shouldn't be a big deal to add.

Do you still need this?
Same as https://github.com/Daplie/letsencrypt-express/issues/18

yes, please. that would be great.

This is fixed in v2.0.0, which was just published.
https://github.com/Daplie/letsencrypt-cli
Use --accountKeyPath /path/to/privkey.pem


Facing an error with using std::time and SystemTimeEx

Upon changing the hello-rust example to get the time, I am seeing the following error. Is this a mis-configuration in the Makefile (or) a bug?
Here are the changes I made to the hello-rust example (https://gist.github.com/mskd12/7095ab3bc058f6089e17a9c0c5baa2e6)
Here is the error I am seeing:
cp ../../compiler-rt/libcompiler-rt-patch.a ./lib
./lib/libenclave.a(sgx_tstd-e2ec2264fed44229.sgx_tstd.9c61mu4vju2u0oq89o4tj6nqi-cgu.7.rcgu.o): In function `_ZN8sgx_tstd3sys4time5inner3now17h3c026a1b1bbfec39E.llvm.13833663167418993985':
sgx_tstd.9c61mu4vju2u0oq89o4tj6nqi-cgu.7:(.text._ZN8sgx_tstd3sys4time5inner3now17h3c026a1b1bbfec39E.llvm.13833663167418993985+0x30): undefined reference to `u_clock_gettime_ocall'
collect2: error: ld returned 1 exit status
Makefile:150: recipe for target 'enclave/enclave.so' failed
make: *** [enclave/enclave.so] Error 1

I figured I forgot to add the sgx_time edl file import.. Closing the issue..


Incorrect FR_FIXMUL32u

I was trying to use this to write a fixed-point mandelbrot set program to run on a GPU using the CUDA Toolkit.  The results were interesting but wrong.

Zooming in on that dot in the center gives this cool image:

Anyway, the culpret turned out to be that the 4th term needed a right shift by 16
#define FR_FIXMUL32u(x,y)	(					\
	(((x>>16)*(y>>16))<<16)+					\
	((x>>16)*(y&0xffff))+						\
	((y>>16)*(x&0xffff))+						\
	((((x&0xffff)*(y&0xffff)))>>16)					\
	)

After that, everything looked correct.

This was with 15.16 fixed.  Since the magnitude of the numbers is so low, I tried 4.27 hoping to get better precision as I zoomed in.  Instead I got this.

I'm not sure what's wrong here yet, but if I zoom in 1200x on that right circle...

Ok I'll take a look!

FYI, I did some math and trying to multiply this way with .27 just causes the first term to overflow.  But for .16 numbers it works great.
I came up with a nice optimization for squaring a number.  You only have to take the ABS once and you can ignore the sign of the output since it will always be positive.
// Square can be simplified since it's one number and the result must be positive
__device__ inline int FR_Square(int x) {
	x = FR_ABS(x);
	return FR_FIXMUL32u(x, x);
}

OK good find.  I updated the FR_FIXMUL32 macro.
I added FR_SQUARE but as a macro.  The reason for that instead of inline, is there is an old project on an embedded system that is using C99 support.  This should give the same effect though.
Much thanks for your contribution!


Authenticated requests without full session object from CRON

Overview/summary
In v5 authenticated requests (rest & graphql) could be made with just positional args of shop and access token. Now you need to pass in the whole session object.
This makes the method of making requests, from say a CRON, unclear. Guidance on initializing an authenticated client would be helpful - what is the workflow?
Eg
import {Session} from '@shopify/shopify-api';
const session = new Session({
  id: 'session-id',
  shop: 'shop.myshopify.com',
  state: 'state1234',
  isOnline: true,
  accessToken: 'from db',
});
const clone = new Session({...session, id: 'newId'});
const client = new shopifyClient.clients.Graphql({session: clone})

Is this workable (given shop and accessToken are valid)?
But what are id, state, and isOnline and do they impact the Rest or Grapql clients?
Basically an example workflow or more detailed description of this would be appreciated.
...
Motivation

What inspired this enhancement?

I'd like to make authenticated requests from a CRON without knowledge of an active or expired/unexpired session. We are saving the accessToken to a db (which I understand does not expire).
The main fear is that implementing an authenticated client from a basically session-less service might fail is the session is not valid (and the only way to update the session is thru re-oauth). This is general concern of mine when dealing with OAuth in server-server communications, so again an example or explanation in the docs would be appreciated.
...
Area

[ ] Add any relevant Area: <area> labels to this issue

Checklist

[ x] I have described this enhancement in a way that is actionable (if possible)

@eatoncw

We are saving the accessToken to a db (which I understand does not expire).

I'm going to interpret this to mean that in your call to auth.begin you are requesting an offline access token (i.e., the isOnline param to auth.begin is false).
The session id in that case can be generated using shopify.session.getOfflineId() which takes a shop argument.
state is only useful during the initial OAuth flow and can be ignored, isOnline is false.
It's generally recommended to store the whole session returned from shopify.auth.callback for later lookup and use.

If your access token is offline, then it will never expire and you can use that session (or even just the access token) to access Shopify APIs

@eatoncw What @ozzyonfire said!  offline tokens don't expire, making them ideal for background/batch processing/cronjob type activities.

Since there's not been an update in a few weeks, I'm going to assume this worked.


Add icons to login and signup pages

Description
Added images and icons to the signup and login cards
Related Issues

Closes  #420

Type of PR

[X] (Feature)

Screenshots / videos (if applicable)

https://github.com/user-attachments/assets/0e9bc11f-fd83-4e32-bf4a-6c7bc53dba08

Checklist

[X] I have gone through the contributing guide
[X] I have updated my branch and synced it with project main branch before making this PR
[X] I have performed a self-review of my code
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[X] I have commented my code, particularly in hard-to-understand areas.

@Vaishh18 the below image is not required.

@Anjaliavv51 shall I add something reated to retoro theme or let it be as it is?

yes

@Anjaliavv51 Made changes


Tradebot in UI and define trading amount

Hello to all,
live trading with the bot can be made meanwhile also via the UI. Is it necessary to change the config=false in this case (I assume not)? In paper trader there are some options for fees etc. in the UI available, why not in tradebot mode?
I learned that the bot is using always the maximum available amount for trading. I am on bitstamp and have already deposit in every cryptocurrency and Euro. So if I change some Euro to USD and start live testing with gekko only this amount is used if I define it this way (f. e. 100 USD)? So the deposit before in BTC or Euro is not touched and gekko is just dealing with the 100 USD and leaving everything else like before? Also selling is only made with the comparable amount?
Thanks for additional information, this seems to be clear to everyone else, I found no questions about that.
Happy New Year to everybody!

Merry Christmas
-how many bot can we run on a stock exchange
-can we just define the amount of btc or usd we want
-how to run a bot for 3 coins of 100 usd at binance
I use translation I do not look up
I could have written the wrong place
thank you

Found most of the questions answered after another intense study of the themes mentioned here...


Client crashes after multiple login/logout events

Steps to reproduce
Keep server running the entire time. Log in and out of the same account multiple times. Logging in and out of different accounts will produce the same effect with less consistency.
OS and Server Version.
Tested against current commit 20332196 on Linux only. I would love it if someone can confirm on Win or OSX.
Notes
Initially I thought this was related to Having set titles for a character, as it happened twice right after doing so, but I can confirm that it happens without titles as well. It's possible that they are two separate issues masquerading as each other.

I was unable to reproduce this symptom using 2033219 under FreeBSD 11.1-RELEASE 64 bit when logging in with "joe/joe" and backing out from server select back to login screen. I attempted this 50 times in fairly rapid succession with no peculiar result. Do you have to actually connect to the game/map server and logout (waiting 10 seconds) to induce the crash?

In my experience yes. You must actually log into the mapserver (game world)

I never did get the client to crash using the long logout route. I did manage to get the server to crash just moments ago doing this however. The server aborts during a call to the following method and assertion:
Warning : Unhandled unqueue all request: -1
Warning : Unhandled unqueue all request: -1
ACE_ASSERT: file /home/ldilley/Segs/Projects/CoX/Common/Servers/ClientManager.h,
line 96 assertion failed for 'getById(id)!=0'.Aborting...
Abort (core dumped)

void ClientManager::removeById(uint64_t id)
{
    ACE_ASSERT(getById(id)!=0);
    ...
}

Stack trace:
(lldb) target create "./authserver" --core "authserver.core"
Core file '/home/ldilley/Segs/bld/out/authserver.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'authserver', stop reason = signal SIGABRT
  * frame #0: 0x00000008026bf84a libc.so.7`__sys_thr_kill + 10
    frame #1: 0x00000008026bf814 libc.so.7`raise + 52
    frame #2: 0x00000008026bf789 libc.so.7`abort + 73
    frame #3: 0x0000000800fb37f9 libACE.so`ACE_OS::abort(void) + 9
    frame #4: 0x0000000800f853f2 libACE.so`ACE_Log_Msg::log(char const*, ACE_Log_Priority, __va_list_tag*, ACE_Log_Category_TSS*) + 19618
    frame #5: 0x0000000800f8073c libACE.so`ACE_Log_Msg::log(ACE_Log_Priority, char const*, ...) + 348
    frame #6: 0x0000000800f256e5 libACE.so`__ace_assert(char const*, int, char const*) + 197
    frame #7: 0x000000000049b049 authserver`ClientStore<MapClient>::removeById(unsigned long) + 89
    frame #8: 0x00000000004b4d20 authserver`MapInstance::on_disconnect(DisconnectRequest*) + 208
    frame #9: 0x00000000004b417d authserver`MapInstance::dispatch(SEGSEvent*) + 1117
    frame #10: 0x0000000000598aa2 authserver`EventProcessor::svc(void) + 162
    frame #11: 0x000000080101db6d libACE.so`ACE_Task_Base::svc_run(void*) + 77
    frame #12: 0x000000080101e9a1 libACE.so`ACE_Thread_Adapter::invoke_i(void) + 273
    frame #13: 0x000000080101e851 libACE.so`ACE_Thread_Adapter::invoke(void) + 273
    frame #14: 0x0000000800f3af2e libACE.so`ace_thread_adapter + 30
    frame #15: 0x0000000800a66bc5 libthr.so.3`___lldb_unnamed_symbol1$$libthr.so.3 + 325

I concur. This likely disappeared with the implementation of the message bus and thread changes. I've assigned the invalid label and will close this out.


Command line instructions fix

Fixed which command you need to use to compile the book (since the filename is hott-intro.tex and not hott_intro.tex).
Alternatively change files to consistently use underscores/ hyphens for word separation in filenames.

Thanks for fixing this!


update GMBEL logo design

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

[x] Filename in the lowercase format
[x] Image format: png
[x] Image size: 256 by 256 px

@gmbelofficial merged in separate commit! Keep in mind for current users image cached for 7 days, so you won't see new image just yet, new users will see new logo you just updated

ok


Add LD_PRELOAD for asan RT if used

Clang / Hipcc  C++ toolchains building Tensile may have added ASAN options to support the feature. Binaries must either link ASAN libraries or pre-load them.
Tensile doesn't officially support the ASAN feature yet, so this patch implements the pre-load route.
Consumers of Tensile who wish to use ASAN shall set the environment variable ENABLE_ADDRESS_SANITIZER=true for Tensile to build without error using the new toolchain options.

@TorreZuk I'm not aware asan support is targeting 5.0.

@b-sumner was hoping to show asan works ASAP but seems to me like too many things need tweaking.    We will have a new staging and master branch in a couple weeks with all this so maybe that can suffice.   Once this merges and tag is updated in develop (or before) I'll remove my hotfix changes from rocblas but as commented this runtime variable seems strange as a fix so would have hoped 5.1 could get more standard compile flag based fix.

@sdquiring nothing should be triggering ASAN runtime during the build stage, so if you can figure out what flag is triggering this python usage maybe we can get them to fix their script environment as a better fix?

Inside rocBLAS cmake, when the --address-sanitizer flag is passed in, it populates CMAKE_CXX_FLAGS with the additional address sanitizer flags. Following this is when the virtual env is invoked for Tensile and dependencies. This includes the building of python msgpack module, which has a python-c or C++ component. It inherits the CMAKE_CXX_FLAGS and thus the dependency on the runtime.

@cgmillette so maybe removing those flags before building tools than are run in tensile would have been the better solution?   I can also move the global setting of CMAKE_CXX_FLAGS to internal variables as right now triggers a ROCMChecks Warning/Error but you would have to add back these flags for the correct targets when doing the sanitizer build mode.

@TorreZuk I think that would depend on the original asan requirement - do we want all rocblas and Tensile dependencies instrumented with asan? We have put the blanket on the fire as-is, but for further changes I think we may be spinning our wheels without the formal asan requirement regarding Tensile (at least I haven't seen one yet)!

My impression is that the CFLAGS, CXXFLAGS, and LDFLAGS environment variables set in rocBLAS' 'install.sh is causing the msgpack-c built by the Python msgpack library to build with ASAN when building the virtualenv, but not to be linked correctly.  This environment variable works around that.


The loss is NaN during training

Hi, thanks for your great work. I am using the DETR model (from UPT) to train on a GPU with a batchsize of 16. The training loss is NaN and the problem is still not solved after using different random seeds. Can you give me any advice?
Namespace(alpha=0.5, aux_loss=True, backbone='resnet50', batch_size=16,  detector='base', epochs=30, world_size=1)
Rank 0: Load weights for the object detector from checkpoints/detr-r50-hicodet.pth
=> Rank 0: PViC randomly initialised.

Epoch 0 =>	mAP: 0.1359, rare: 0.0912, none-rare: 0.1493.

Epoch [1/30], Iter. [0100/2353], Loss: 3.9044, Time[Data/Iter.]: [10.76s/153.78s]
...
Epoch [1/30], Iter. [2300/2353], Loss: 1.5333, Time[Data/Iter.]: [0.63s/147.35s]
...
100%|██████████| 597/597 [19:03<00:00,  1.92s/it]
Epoch 1 =>	mAP: 0.0127, rare: 0.0110, none-rare: 0.0132.

Traceback (most recent call last):
  File "main.py", line 195, in <module>
    mp.spawn(main, nprocs=args.world_size, args=(args,))
  File "/usr/local/anaconda3/envs/pvic/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 230, in spawn
    return start_processes(fn, args, nprocs, join, daemon, start_method='spawn')
  File "/usr/local/anaconda3/envs/pvic/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 188, in start_processes
    while not context.join():
  File "/usr/local/anaconda3/envs/pvic/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 150, in join
    raise ProcessRaisedException(msg, error_index, failed_process.pid)
torch.multiprocessing.spawn.ProcessRaisedException:

-- Process 0 terminated with the following error:
Traceback (most recent call last):
  File "/usr/local/anaconda3/envs/pvic/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 59, in _wrap
    fn(i, *args)
  File "/home/quan/pvic/main.py", line 130, in main
    engine(args.epochs)
  File "/home/quan/pvic/pocket/core/distributed.py", line 139, in __call__
    self._on_each_iteration()
  File "/home/quan/pvic/utils.py", line 195, in _on_each_iteration
    raise ValueError(f"The HOI loss is NaN for rank {self._rank}")
ValueError: The HOI loss is NaN for rank 0

Hi, I found out that it works with two GPUs. The batchsize is shown as 16. So is the actual running batchsize 16 or 32? What is the problem with running one GPU?
Namespace(alpha=0.5, aux_loss=True, backbone='resnet50', batch_size=16,  detector='base', epochs=30, seed=42, world_size=2)
Rank 1: Load weights for the object detector from checkpoints/detr-r50-hicodet.pth
=> Rank 1: PViC randomly initialised.
Rank 0: Load weights for the object detector from checkpoints/detr-r50-hicodet.pth
=> Rank 0: PViC randomly initialised.
Epoch 0 =>	mAP: 0.1369, rare: 0.0926, none-rare: 0.1501.
Epoch [1/30], Iter. [0100/2352], Loss: 4.0167, Time[Data/Iter.]: [11.92s/113.07s]
Epoch [1/30], Iter. [2300/2352], Loss: 1.5389, Time[Data/Iter.]: [0.25s/69.78s]
Epoch 1 =>	mAP: 0.2485, rare: 0.1888, none-rare: 0.2663.
Epoch [2/30], Iter. [0048/2352], Loss: 1.5435, Time[Data/Iter.]: [9.55s/90.46s]
Epoch [2/30], Iter. [2348/2352], Loss: 1.4581, Time[Data/Iter.]: [0.31s/72.10s]
Epoch 2 =>	mAP: 0.2700, rare: 0.2171, none-rare: 0.2858.

Hi @yaoyaosanqi,
The batch size has been changed to refer to the total batch size instead of the per-rank batch size. The images will be evenly divided across all GPUs, rounded down if necessary.
The nan loss has been an issue related to the spatial features (https://github.com/fredzzhang/upt/issues/71, https://github.com/fredzzhang/upt/issues/35). But as the batch size is already big enough, there may be some issues with bad initialisations. Either way, if multiple GPUs solve the issue, you should probably stick to it.
Fred.

Thanks, the above problem is solved. I observed that you optimized the evaluation process of VCOCO. What does the output mAP mean? Scenario 1 or Scenario 2 or something else?
Rank 1: Load weights for the object detector from checkpoints/detr-r50-vcoco.pth
Rank 0: Load weights for the object detector from checkpoints/detr-r50-vcoco.pth
=> Rank 1: PViC randomly initialised.
=> Rank 0: PViC randomly initialised.
Epoch 0 =>	mAP: 0.3640.
Epoch [1/30], Iter. [100/311], Loss: 1.7373, Time[Data/Iter.]: [6.72s/72.60s]
Epoch [1/30], Iter. [200/311], Loss: 1.3745, Time[Data/Iter.]: [0.20s/64.13s]
Epoch [1/30], Iter. [300/311], Loss: 1.2762, Time[Data/Iter.]: [0.23s/65.20s]
Epoch 1 =>	mAP: 0.6238.
...
Epoch [29/30], Iter. [092/311], Loss: 0.7427, Time[Data/Iter.]: [6.89s/83.38s]
Epoch [29/30], Iter. [192/311], Loss: 0.7575, Time[Data/Iter.]: [0.34s/79.13s]
Epoch [29/30], Iter. [292/311], Loss: 0.7834, Time[Data/Iter.]: [0.28s/82.08s]
Epoch 29 =>	mAP: 0.7173.
Epoch [30/30], Iter. [081/311], Loss: 0.7520, Time[Data/Iter.]: [8.45s/92.81s]
Epoch [30/30], Iter. [181/311], Loss: 0.7621, Time[Data/Iter.]: [0.26s/79.81s]
Epoch [30/30], Iter. [281/311], Loss: 0.7563, Time[Data/Iter.]: [0.29s/80.52s]
Epoch 30 =>	mAP: 0.7177.

It is only a diagnostic tool, which may be removed later. There are still many issues with the v-coco code I need to fix.

Thanks！


[doc] Use the primary text color

The documentation main text used a lighter variant of the text color,
which has low contrast compared to the background. Using the primary
color gives us much better contrast, which is important for readability.

Before:

After:

As a follow-up, we can think about using a lighter font for the navigation bars on the left and right to de-emphasize them.


add stop context menu to cancel currently running build

it would be nice to have a "Stop build" or "Cancel build" context menu below the "Run build" context menu stopping he currently runing build

Thanks! Implementation reference


Make left side of channels panel look fine in narrow windows

At the 16px setting, we can get the following situation in the upper left of the channel settings:

We should make something reasonable happen here. The tabs should stay on the top line, and we should put the right-side buttons on the second line if we need to.

We're may also want to make the left side of the panel a bit wider; see CZO discussion about the settings panel.

@zulipbot claim

@alya can I work on this issue

@SnehalSrivastava27  This is a release-critical issue, and not available to new contributors.


Ktlint deleting semicolon and adding trailing comma after companion object in Enum class

Expected Behavior
I have an enum class with statics function in the companion object:
enum class Foo(val type: String){
      A("a"),
      B("b");

companion object {
      fun from(value: String): Foo {
                  return try {
                      valueOf(value)
                  } catch (e: IllegalArgumentException) {
                      // find by type
              }
          }
}

Observed Behavior
ktlint --format deleting the the semicolon ; and adding a trailing comma , after the companion object and raising error:
Not a valid Kotlin file (12:27 expecting ';' after the last enum entry or '}' to close enum class body) (cannot be auto-corrected) ()
enum class Foo(val type: String){
      A("a"),
      B("b")

companion object {
      fun from(value: String): Foo {
                  return try {
                      valueOf(value)
                  } catch (e: IllegalArgumentException) {
                      // find by type
              }
          },
}

Steps to Reproduce

Perform ktlint --format

Your Environment

Version of ktlint used: 0.48.0
Relevant parts of the .editorconfig settings: not applicable
Operating System and version: Ventura 13.1

Duplicate of #1733. Will be fixed in 0.48.1.


feat: Add flask-restx support

This PR handles issue #47

@jstasiak Tests are failing due to the werkzeug upgrade to 1.0.0 which affects Flask.

Hmm, ok, I'll take care of it in a bit. In the meantime do you want to mention Flask-RESTX in the readme? Flask-RestPlus and Flask-Restful are there, so maybe it'd be good to have this as well.

Alright.

@jstasiak For the werkzeug you might have to lock the version to < 1.0.0

@jstasiak  I've resolved the issue.

@jstasiak It seems adding the try..except block for flask-restx causes a decrease in coverage.

That's fine, it's just a number.

Nice job!

This has just been released in version 0.12.2.


Editor grammar is not highlighted after updating

Updating to the latest version of the code has no highlighting effect

/needsMoreInfo


vc: Remove extra call to Kill

This PR addresses this comment:
https://github.com/kata-containers/runtime/pull/2164/files#r346776205
/cc @jodh-intel

ERROR: Commit 94b931cee4ec571e4bccc42b5403add73558ebbc: Failed to find subsystem in subject: "Remove extra call to Kill"

I looked at recent commits but didn't find pattern of embedding subsystem in the subject.

/assign @jodh-intel

@tedyu - the 'subsystem' CI failure is telling you your commit subject line does not meet the format documented at:
https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#general-format

Looking at the patch, virtcontainers is probably the correct/appropriate subsystem, so renaming the commit subject to say:
vc: remove extra call to kill
would be the right thing. You can do that with a 'git commit --amend' and 'git push -f' for instance.

@tedyu you need a body on the commit. Further, you’ll want a reference to a GitHub issue which this PR addresses. Sorry for the extra hoops, and appreciate your help.

To help: I opened issue for you: https://github.com/kata-containers/runtime/issues/2207

@egernst
I have added the body for the commit.

Does enkins-ci-ubuntu-18-04 normally take more than 2 hours to complete ?

/test
@tedyu - it needs triggering first ;-)

For Power8-ubuntu:
ERROR: kata-log-parser: missing pid: {Count:0 TimeDelta:0 Filename:/home/jenkins/workspace/kata-containers-runtime-Power8-ubuntu-18-04-PR-initrd/go/src/github.com/kata-containers/tests/kata-runtime.log Line:47 Time:2019-11-17 21:31:04.495442708 -0500 EST Pid:0 Level:debug Msg:converting /run/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/17469350cf17a841e3f4e101cb9687f798531f1c8d336871038eb9d10bb34b30/config.json Source:virtcontainers Name: Container: Sandbox: Data:map[subsystem:compatoci]}

I don't think the above was caused by my PR.

/retest jenkins-ci-Power8-ubuntu-18-04-PR-initrd

Looks like I don't have permission to re-trigger test.

@tedyu - possibly not - you have to be a member of the kata org and iirc the correct team, to do that...
Also, if you follow
https://github.com/kata-containers/ci#controlling-the-ci over to https://github.com/kata-containers/community/wiki/Controlling-the-CI you can see the list of commands that should work...
Let's try:
/test-power

also, if you need to locate who might be responsible for which bit of the project or infra, there is a table over at https://github.com/kata-containers/community/wiki/Areas-of-interest#resource-owners to help guide (in case we need to find the Power CI owners etc.)

@jodh-intel
Do you have some insight why codecov declined ?
My PR reduces number of lines of code, I am not sure why coverage declined.

/test-power

@grahamwhaley
I cannot trigger test rerun.

@grahamwhaley @egernst
When you have a chance, can you trigger another test run ?
thanks

/test

Thanks @tedyu - there are other instances of this "double kill". I was about to say you could update this PR for those, but it got merged underneath me :) Therefore, if you are interested,  feel free to raise a follow-on PR to update virtcontainers/acrn.go and virtcontainers/fc.go.
Regarding the coverage stats - we have never found a reliable service unfortunately. It's on the "TODO" list but if anyone has spare cycles, feel free to dig in! :smile:


[Educational] Fleet-Tutorial + Bounties

What is this?
This issue describes a skeleton roadmap for the tutorial that will serve future developers in joining the ecosystem.
Goal
To build out a tutorial/course that provides developers clarity on utilizing fleet-sdk.
Basic Milestones
At the end of the tutorial, developers should be able to:
(Note that this is a non-exhaustive list, meaning there can be more as we go, please comment for suggested tutorial)

Use Fleet-SDK to create send transactions to user-wallets
Mint tokens based on EIP token standards
burn tokens
Retrieve boxes from explorer and parsing as input boxes/data inputs for tx usage
Create boxes with contracts
Create boxes with injected variables, explanation of injected variables
Create boxes with registers, its utility in contracts and txs, explanation of registers
Utilizing Data inputs for txs, how to utilize it, and its pros and cons, explanation of data inputs
Using compile time constants in contracts, and what compile time constants, explanation of compile time constants
Parsing txs as reduced txs for ergopay consumptions, explanation of reducedTxs and ergopay
Examples -  Single interaction Txs, multi-interaction txs

Tutorial requirements
Each tutorial should be:

Succinct and straight to the point
Explanation of the tool that is used (for example, the tool that is used in the data input section would be the data input)
Contains code examples that can be plug and play
Contains StackBlitz like this whenever necessary: stackblitz code for easier comprehension of implementation.

Bounties
[ ] - 50 SigUSD  for Milestone.1, MileStone.2, MileStone.3
[ ] - 100 USD for Milestone.4
[ ] - 75 SigUSD for MileStone.5 and MileStone.6
[ ] - 100 SigUSD for MileStone.7
[ ] - 100 SigUSD for MileStone.8
[ ] - 125 SigUSD for MileStone.9
[ ] - 150 SigUSD for MileStone.10
[ ] - 125 SigUSD per examples in MileStone.11
Tutorial structure/skeleton

Tutorial
-- Basics
-- -- Send Transactions to Wallets
-- -- Mint tokens
-- -- Burn tokens
-- Box Retrieval from Blockchain
-- -- Retrieving boxes from blockchain (from addresses and from tokenId, and converting json to inputBoxes)
-- eUTxOs
-- -- Smart Contracts (ErgoScript)
-- -- Injected Variables
-- -- Registers
-- -- Data Inputs
-- -- Compile time constants
-- ReducedTxs
-- -- Reduced Txs and ErgoPay
-- Examples - Single interaction
-- -- Time Lock
-- Examples - Multi interaction
-- -- Please suggest

I'll like to work on these

Hi, I want to work on it.

Hey, it looks great!
A few notes:
Requirements
Guides must follow the Writing Guide referenced in the Contribution Guide.
Milestones
Milestones 1, 2, and 3 have already been completed.

One more thing: I would like to propose multiple small sized chapters over a huge catch-all tutorial. I can put a structure in place so contributors can just edit .md files and add content.

Hello, @arobsn @kii-dot
I was able to publish a page that should fix milestaone 4
However, for 5,6 I am a bit confused, does creating boxes mean calls to OutputBuilder ?
Or is there some info I can read up on it

This application has been created with Chakra-ui using Create React App and Fleet SDK:
✅ Create token
✅ Send ERG
✅ Send tokens
✅ Send NFT
✅ Burn tokens
https://github.com/ladopixel/fleetERG


catching 'commander not found'

any help is appreciated

i also changed the total supply to 10 and h+w to 750 to no effect. im at not knowing what would be necessary to do next

Did you run make first_time_setup is npm packages installed correctly? Are you on M1 mac?

@PHLOWGUS going to close this issue let me know if you have any other issues


Reusable NotFound component

We need this on all the benchmark pages and the KgNodePage.
The benchmark pages can have a specialized one, possibly.


Feature/persistent storage

A barebones implementation of persistent storage using Persistent and Esqueleto.
Currently implements a player field and an onlineplayer field.
A player is added to the table OnlinePlayer when they join and removed when they leave, the username is also updated in the DB when the player changes its username.
Resolves #47

Can't connect to database on my computer. How do I configure that?

Manually created database test, maybe rename to Hastings` or something.

Also, when trying to change a username:
Hastings-exe: ConnectionError {errFunction = "query", errNumber = 1451, errMessage = "Cannot delete or update a parent row: a foreign key constraint fails (`test`.`online_player`, CONSTRAINT `online_player_player_fkey` FOREIGN KEY (`player`) REFERENCES `player` (`id`))"}

All problems you mentioned should now be solved

Added a couple more comments, otherwise looks fine! :100:

When this is merged, add to readme how to set up database.

Also receives Hastings-exe: writev: resource vanished (Broken pipe) when a connection is closed, don't know if this is critical or not.

Recieves the error
Hastings-exe: ConnectionError {errFunction = "query", errNumber = 1062, errMessage = "Duplicate entry 'lol' for key 'unique_username'"}
After the player with name lol has disconnected.

Everything should be fixed now :facepunch:

Still can't change user name to a name that someone had before they disconnected, but maybe this is intentional?

Yes this is intentional.

The travis tests fail because the SessionID's in the list of clients aren't unique. (Should be fixed in the test, added as a precondition)


Adding reactor implementation

Yeah - we'll be adding the javadocs (ping @smaldini ). Currently I have some issues in making the build pass - that's why I filed this PR. But thanks for the review @adriancole

Done via https://github.com/spring-cloud/spring-cloud-sleuth/commit/7b11141cd7cce706c831018714d90502d192bb4c . Still we need to add the javadocs though.


Feature: delay an external process (e.g bash)

Should allow user to delay an external process like bash
for example
External Process:
sh ./deploy

Date & Time:
2024-06-01 12:40:56

Released in 1.3.0


Bug: Flesh out warning messages

Bug

[x] I have read the comment above and have completed each step
[x] I have filled out the system info
[x] I have described the bug, filled in the expected outcome and the actual
outcome including screenshots where appropriate

System info

OS:  Windows 10
Browser:  NA
Version: 2022.1

Describe the bug
Warning messages can be too ambiguous. e.g. for WARN: License not identified so falling back to NO_LICENSE what license caused the issue? Does it need adding in a feature update
Expected outcome
More detailed warning messages
Actual outcome
As above

Fixed in 2022.1.1


proposal: net/http: add GO_SKIP_TLS_CHECK

for debugging purposes it is often beneficial to have ability to disable strict TLS checks temporarily. Adding something like GO_SKIP_TLS_CHECK environment variable to disable strict checking (akin to curl's -k switch) would help a lot when dealing with quite a few 3rd party components. Also useful when using MITM proxies. Since https://github.com/golang/go/issues/18733 has not moved forward it would be nice to have some means to troubleshoot existing app stacks

CC @neild @bradfitz
If I understand this correctly, setting this environment variable would make all net/http connections insecure even if they appeared to be secure.  That's a pretty broad scope for security attacks.  It doesn't sound like a good idea to make it quite that easy to make all Go programs that use net/http less secure.
That said, if we do use an environment variable, it should be GODEBUG, a variable that we already use.
But better than an environment variable might be some sort of programmatic option somewhere.  Then at least the insecurity would be limited to a program that uses that feature, rather than all Go programs that use net/http.

You can disable certificate verification by setting tls.Config.InsecureSkipVerify. I believe this matches the effect of curl's -k flag on TLS connections.
I don't think we'd want to support an environment variable that disables TLS validation; that seems tremendously risky. It's simple enough to wire up an environment variable to InsecureSkipVerify in user code if you want that behavior.

Thanks.  I'm going to preemptively close this proposal.  I don't see any way that we would do this.  Please comment if you disagree.


ENHANCEMENT REQUEST - Hashcat running output

Hello,
First off, love your tool; it offers a perfect mix of simplicity, security, and job control for hashcat over a web interface!  I would like to make a suggestion: can you add a dropdown section within running sessions that displays the current hashcat output?  The hashcat output provides % and time estimates that are very helpful in addition to the current increment count (for bruteforce).  Hashcat also refreshed this screen if you press any key other than those mentioned on the screen.
Either way, still a great tool.  Thank you for taking your time to create this project and make it open source!
UPDATE:
Apparently the session timed out...when I restored the screen it showed an integer overflow error...maybe I messed up the masked?  All i wanted was a simple bruteforce mode attack so i manually (in the screen session) entered the -a -i --increment-min 10 --increment-max 10 -w 4 and the online session refreshed (which was cool!).

Hi and thank you for the great feedback!
If I'm not mistaken what you're asking already exists if you click the "View Raw/Debug Information" button:

With regards to your update, the web gui already supports the --increment-min and --increment-max parameters, unless you were talking about adding -w? Also yes - as long as you use the same session hashcat name the GUI will pick it up regardless where it was started from. You can get the session name either from the "Raw Information" screenshot above (first line, "Session"), or by hovering your mouse over the session title:

Thanks,
Pavel

yes this is great!  My impatient self forgot all the procedures hashcat runs through before it starts cracking so I thought it was broken before it even started.  Also i normally run hashcat without specifying a mask, so this tripped me up a little bit but I eventually figured it out.
On the point about the -w option, this would be a great addition.  I have found myself starting and stopping hashcat processes only to recover the screen and add the -w (3|4) to the command.  Thanks for the responsiveness and again, great tool!

Glad you got it sorted!
I'll have a look to implement the -w parameter along with fixing the blank error output.


Feature Request  - IBM Cloud support

Hi ,
I am working on a client that wants to use IBM Cloud as a cloud provider.
There is a softlayer(IBM Cloud IaaS) java SDK out there, which manages underlying provisioning of resources.
I'm wondering how difficult to add a new cloud provider to cloudbreaks?
I tried to do run cloudbreak locally and deploy code to the Virtual Box VM, it says "Unable to connect to UI" when I open up the dashboard, I can't figure it out why....
Any insights/ direction will be greatly appreciated.
Thanks.

Hi,
Regarding to your first question. It is easy to add new cloud provider into Cloudbreak, we have a few interfaces which need to be implemented in a separated module. The hardest part is the cloud image to spin cluster on it. We have a project called cloudbreak-images. You have to burn your own image on IBM Cloud. If the image is done, you have prepare a custom image catalog and need to add your custom image, so Cloudbreak should use it.
To reflect your issue, first i suggest to run Cloudbreak without any local development trick. I suggest to use 2.9.0 in the beginning, because that is the official release. Start with an empty Profile and deployer will suggest environment variables to configure. If Cloudbreak works as well you can set up your local dev setup.

Regarding the local dev setup you can find the relevant informations here https://github.com/hortonworks/cloudbreak/blob/master/README.md


cmd/go: malformed import path app/系统模块/后台/内部模块/逻辑 invalid char '系'

What version of Go are you using (go version)?

$ go version
go version go1.16.3 darwin/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env

What did you do?
go run
What did you expect to see?
By compiling
What did you see instead?
malformed import path app/系统模块/后台/内部模块/逻辑 invalid char '系'
Notes:
This issue should be similar to the #43985
Since my system language is Chinese, Chinese often appears in the path. After upgrading version 1.16, many projects cannot be compiled

Seems unfortunate, see also #44970 #43052
cc @bcmills @jayconrod

cc @matloob as well on cmd/go issues.
Sorry, but for now at least, this is working as expected in 1.16. module.CheckImportPath lists the character restrictions on import paths. Those restrictions didn't technically change in 1.16, but the go command started checking them for packages in the main module, in order to avoid surprising failures when publishing a module for the first time.
Unicode restrictions gives the rationale for the restrictions. Essentially, we're concerned that files will get different names on different file systems, and may end up overlapping or being compiled differently. As stated there, this may be relaxed in the future.

Unicode restrictions gives the rationale for the restrictions. Essentially, we're concerned that files will get different names on different file systems, and may end up overlapping or being compiled differently. As stated there, this may be relaxed in the future.

I understand, but at present, this limitation has a great probability of causing trouble to non English operating system developers. Can I change the error into a warning, or add the relevant configuration switch here

We generally avoid reporting warnings or adding configuration options if we can avoid it.
I do think we should expand the set of allowed characters though. I've opened #45549 to come up with a broader set of allowed characters that won't cause compatibility problems.

I do think we should expand the set of allowed characters though. I've opened #45549 to come up with a broader set of allowed characters that won't cause compatibility problems.
It would be great if we could expand the allowed character set. Thank you

also  do this error,now back to 1.15,,,cry


Allow PlantUML URLs generation from a command

If you go to this URL, you can see that plantuml allows users to generate diagrams from a URL (or generate URLs from the schemas).
To do this, the whole diagram is encoded in a specific format that can be injected in the URL, as explained here.
After having generated the file using django-model2puml extension, here is the working code (from a custom Django command) I wrote to do this:
import zlib
import base64
import string
from django.core.management import call_command

OUTPUT_NAME = "diagram.puml"
# 1- Generate puml file wrapping the original extension
call_command("generate_puml", "--file", OUTPUT_NAME)
self.stdout.write(self.style.SUCCESS("Diagram has been generated."))

# 2- Get utf-8 text from file
with open(OUTPUT_NAME, "r") as file:
    plantuml_text = file.read().rstrip()

# 3- Compress with deflate custom algorithm
# 🔗 https://github.com/dougn/python-plantuml/blob/master/plantuml.py
plantuml_alphabet = (
    string.digits + string.ascii_uppercase + string.ascii_lowercase + "-_"
)
base64_alphabet = (
    string.ascii_uppercase + string.ascii_lowercase + string.digits + "+/"
)
b64_to_plantuml = bytes.maketrans(
    base64_alphabet.encode("utf-8"), plantuml_alphabet.encode("utf-8")
)

zlibbed_str = zlib.compress(plantuml_text.encode("utf-8"))
compressed_string = zlibbed_str[2:-4]

# 4- re-encode in ASCII
final = (
    base64.b64encode(compressed_string).translate(b64_to_plantuml).decode("utf-8")
)

# 5- Give URL to user
URL = "https://www.plantuml.com/plantuml/svg/" # could be /uml/ or /png too/
self.stdout.write(f"See your diagram at {URL}{final}")

This generates full usable URLs like this one.
This is very useful as I just need to click to the generated URL to see the schema in my browser.
And I was thinking this could be added directly to the extension.
For example, running :
manage.py generate_puml --url svg

would generate and return this url to the user . puml file creation would become an option, as you may need the URL only, the file only, or both the URL and file.
What do you think?

Sorry I wasn't answering to this issue for so long. Thank you so much for sharing with me plantuml URL feature and this code sample. I released 0.3.0 version with this feature.

Hi @sen-den, I tried to use the new url option but I get this error:
manage.py generate_puml: error: unrecognized arguments: --url
I'm using the last PyPI version (0.41).
Did I miss something?
Thanks.


CASSANDRA-19947: Add constraints framework

Add new Constraints framework as described in CEP-42. This initial Jira ticket includes the core constraints length and numeric. Follow up tickets will include the rest of the constraints described in the CEP.
patch by Bernardo Botella; reviewed by <Reviewers> for CASSANDRA-19947

The Cassandra Jira

My feedback on parser.g.
https://github.com/yifan-c/cassandra/commit/1d78e80f364f7dd70d5c76298def125f478afe95

removed some redundant definitions
permit using check and length as column names


webpack: Reload webpack process using nodemon if config file changes.

Using the nodemon module we watch the webpack config files (webpack.config.ts and webpack.assets.js)
and reload them if the files are change. It would also work without issues
on vagrant since it will use polling as -L flag will be passed to nodemon.
Fixes: https://github.com/zulip/zulip/issues/9042
Testing Plan:  Manual Testing

It looks like ./tools/test-help-documentation is not working due to this change. I am looking into it.

Any luck debugging that?  My guess is that is using the run code path, not the run_watch one, but I'm not sure.

Nope not yet, I don't think it fails locally (i actually can't test this since ./tools/run-dev.py doesn't work in cloud9), but i ssh into a build it seems to work fine. It been stuck at ./tools/test-run-dev.py
for more than 10 mins so resulted in build termination.

It is using run_watch i just quickly confirmed.

This now works, before the problem was the process was not being terminated properly, I tried using
webpack_process.kill() and webpack_process.terminate() and also used os.kill(weback_process.pid, signal.*) but no luck, that all summarizes to the process was dead but not properly killed if you do ps -p <pid> it would have <defunt>.
So at the end, i used not to create web pack process in its own new group of processes, and to terminate it used a PID range hack (process.kill(-<pid>)) to kill the whole process so at the end the problem eliminated.

Resolved the merge conflicts here.

Created new PR for this #9675, this PR changed for node_modules, to python to node script so i created a new one, so its easier to review. The new PR does using polling unless its on vagrant.


Phaser 3 API Docs link is broken

Version

Phaser Version: 3

Description
I am looking for the Phaser 3 API Docs.. but all links bring me to this page:

https://photonstorm.github.io/phaser3-docs/index.html

But this is not an API Docs
I am looking for something like this:

https://phaser.io/docs/2.6.2/index

But for Phaser 3
Thanks

That is the API documentation - just pick from any of the menus at the top.
Alternatively, this is the new format: https://newdocs.phaser.io/docs/3.55.2
The same applies here though. Pick from the menus at the top.

I totally missed the top menus.. thanks!


The Albino Hunter wrongly detected as ChromeEngine

SteamDB link to the game
https://steamdb.info/app/355520/
What is it being detected as and what should it be detected as? Any other information?
It's a RPG Maker game. Currently detected as both RPG Maker and ChromeEngine.
The rest of the games on the ChromeEngine list look correct. There are plenty more games using this engine but they are not available on Steam. I checked the SteamDB engine list against the list on Wikipedia and searched for all titles on Steam.
Side note: the upcoming Dying Light 2 Stay Human (release date December 7) is using ChromeEngine 7, no depot files yet so it can't be detected at the moment.

The problem is in the ChromeEngine[] = \.rpack$ rule. The Albino Hunter has two such files - data.rpack and image.rpack.
ChromeEngine games have files with such extension in larger quantities, E.g. Nail'd - 38 files. Sniper: Ghost Warrior - 55 files. The least number I've seen was 16 (though I haven't checked all games).
Some games like Dying Light and Call of Juarez Gunslinger follow stricter rule _(?:LINUX|PC)_\.rpack$ , but it is not common for all ChromeEngine games, aforementioned Nail'd and Sniper: Ghost Warrior don't.
I suppose counting number of .rpack files could work as a rule, let's say if there are more 10 such files then it's most likely ChromeEngine.

We do count numbers of files matched for rules, so we could perhaps do a
two pass heuristic here.
On Fri, Sep 3, 2021 at 2:55 AM mastan-rus @.***> wrote:

The problem is in the ChromeEngine[] = .rpack$ rule. The Albino Hunter
has two such files - data.rpack and image.rpack.
ChromeEngine games have files with such extension in larger quantities,
E.g. Nail'd - 38 files. Sniper: Ghost Warrior - 55 files. The least number
I've seen was 16 (though I haven't checked all games).
Some games like Dying Light and Call of Juarez Gunslinger follow stricter
rule (?:LINUX|PC).rpack$ , but it is not common for all ChromeEngine
games, aforementioned Nail'd and Sniper: Ghost Warrior don't.
I suppose counting number of .rpack files could work as a rule, let's say
if there are more 10 such files then it's most likely ChromeEngine.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/SteamDatabase/FileDetectionRuleSets/issues/89#issuecomment-912337856,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFUN6HEBTVC76ZLMY4Y6FTUAB5PJANCNFSM5CWW7QHA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

--
www.fortressofdoors.com -- My design & business of game development blog


[Snyk] Upgrade js-beautify from 1.14.11 to 1.15.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade js-beautify from 1.14.11 to 1.15.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 21 days ago, on 2024-02-15.

Release notes

Package name: js-beautify

1.15.0 - 2024-02-15No content.

1.14.11 - 2023-11-07No content.

    from js-beautify GitHub release notes

Commit messages

Package name: js-beautify

84aec92 Release: 1.15.0
94163e3 Merge remote-tracking branch 'origin/staging/main' into staging/release
a609668 Bump version numbers for 1.15.0
89b4ca9 Update Changelog
5aff965 Fixed #2219 - formatting of new Angular control flow syntax (#2221)
29b51e0 Update codemirror and other web page depenedencies (#2234)
d64fcec Merge pull request #2228 from beautifier/dependabot/github_actions/actions/setup-python-5
f32dd1e Merge pull request #2230 from beautifier/dependabot/github_actions/github/codeql-action-3
0bfb50c Bump github/codeql-action from 2 to 3
0ff736d Bump actions/setup-python from 4 to 5
7a59b1c Merge pull request #2232 from bitwiseman/feature/org-move
15ace0c update strings for move from beautify-web to beautifier org
41ba349 Ignore Pythong .eggs directory
4fc6c60 Fix package.json files config
0847e50 Format index.html
14ee4d3 Merge pull request #2218 from beautify-web/staging/release
1df08a0 Merge pull request #2217 from beautify-web/staging/main

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.01%. Comparing base (a92d997) to head (0c5f78a).

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #99   +/-   ##
=======================================
  Coverage   97.01%   97.01%
=======================================
  Files          22       22
  Lines        1274     1274
  Branches      315      315
=======================================
  Hits         1236     1236
  Misses         33       33
  Partials        5        5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


docs(README.md): Add next dist tag.

Latest (1.0.0-alpha.2) was published with next dist tag, so yarn add react-final-form-hooks will install latest (1.0.0-alpha.1) version.

About to release actual version, so closing this PR. Thanks, though!


Timestamp: Replace strptime with std::get_time for better compatibility

The strptime function is a POSIX extension, not universally supported by all compilers (e.g., MSVC). Replacing it with std::get_time, which is part of the C++ standard, improves cross-platform compatibility without sacrificing functionality.

Hi, my concern with the get_time solution is that strptime is more efficient. I'd rather only use strptime where possible and use the workaround where necessary.
Or is there any specific problem you encountered because of that?

Hi,
I encountered a compilation issue while using reflect-cpp with MinGW:
error: use of undeclared identifier 'strptime'

Since strptime is a POSIX extension, it isn’t universally supported and may require additional workarounds for certain platforms. Using a standard function like std::get_time would improve cross-platform compatibility out of the box.
That said, I understand your concern about efficiency. I’ll run a benchmark to evaluate the performance difference and see if the trade-off is reasonable. Let me follow up with the results soon.

A quick benchmark shows std::get_time is quite slower than strptime. Sorry, I should’ve looked into this performance difference earlier.

@Doekin, no problem. Let's try to resolve your issue by finding a macro that captures your case as well.

x86_64-w64-mingw32-gcc defines both __MINGW32__ and __MINGW64__. It seems that using __MINGW32__ might be sufficient to capture this case.

@Doekin, merged. Thanks for your contribution!


Fix the heartbeat

Hey,
can anyone fix the Heartbeat. On reddit is the new code in Python public
https://www.reddit.com/r/pokemongodev/comments/4w1cvr/pokemongo_current_api_status/

It seems they published a new version of the PGO API (for Python) here: https://github.com/keyphact/pgoapi/tree/master/pgoapi
But since the node API seems to be a port of the python API I suppose it will take a while to convert it

It would be in our best interest to make this top priority

Hello, anyone can convert PGO api Python into PGO api Node please?

Calm down guys, the API were just cracked.

working on this

Thank you guys ! You're awesome

Thx :)

FYI, updates: https://discordapp.com/channels/208930747044724737/208930747044724737

@DatN3xus
You sure that's right? Seems empty...

Go in and ask Spencer for an update, you'll see :)

No, I mean it takes you to an empty Discord channel.

submitted a PR for this: https://github.com/Armax/Pokemon-GO-node-api/pull/207

Thank you SpencerSharkey !

the only problem I can see that's left to fix up is the auth_ticket expiration. let me know if any of you run a  client for 30+ mins and experience a logout/forbidden

@SpencerSharkey
Thanks for that. I got pretty close myself using your node-pogo-signature library, but missed that it's auth_ticket now, not auth_token.
Good work mate. :+1:

It still uses the auth_info message for the initial call to provoke a response with auth_ticket, which should be used for subsequent requests until it expires. Once expired send the auth_info message again and repeat.

@SpencerSharkey Very good work, thanks a lot! Do you know how long the auth_ticket is valid until it expires?

Thanks @SpencerSharkey! You rock. Can we republish to NPM?

nice work @SpencerSharkey ! Am I wrong or is the example.js still not finding any pokemons?

@reecube I think it's around 30 minutes... looking into auto-renewal atm.

The heartbeat is now getting the nearby pokemons?
I only got empty lists for forts and nearby pokemons.

the same for me

until there's an npm release you'll have to manually install the module via the git url:
npm install --save https://github.com/Armax/Pokemon-GO-node-api.git

@williamokano  @delmotte
Are you using PTC accounts? Make sure you've accepted the terms.
You'll need to clone this repo until @Armax pushes to NPM.

just as a sidenote, there seems to be a limit on how often you can do heartbeats. For me, if I query more often than every 5 seconds, I get either empty responses or heartbeat errors. Just saying :-)

The scan time is 5 seconds. Anything lower returns nothing.


XSSFWorkbook.SetSheetOrder not support NamedRanges

If you change the order of the spreadsheets in an existing file with named ranges. The named ranges are not taken into account.
This leads to an incorrect loading of the saved file.

PR applied


Not all inputs appearing (Bravia KDL Model)

Hi,
I have a KDL50W815B, which I must say until now works only with your Plugin correctly on long term.
 In the inputs menu only HDMI4 and my ATV Cec device appears, and I miss Hdmi2 & 3. Is there a setting I should modify? Thanks in advance.
My config:
{
"platform": "BraviaOSPlatform",
"tvs": [
{
"name": "Living Room Television",
"ip": "192.168.xxx.xxx",
"mac": "xx:xx:xx:xx:xx:xx",
"port": 80,
"psk": "xxxx",
"cecInputs": true,
"wol": true
}
],
"interval": 10
}

Currently working on v4 and there will be some major changes, should fix this problem

Sorting out the issues. This issue is fixed in v4 (coming soon)


test suite: allow overriding default compaction algorithm via env var

This PR allows setting the PAGESERVER_DEFAULT_TENANT_CONFIG_COMPACTION_ALGORITHM env var to override the tenant_config.compaction_algorithm field in the initial pageserver.toml for all tests.
I tested manually that this works by halting a test using pdb and inspecting the effective_config in the tenant status managment API.
If the env var is set, the tests are parametrized by the kind tag field, allowing to do a matrix build in CI and let Allure summarize everything in a nice report.
If the env var is not set, the tests are not parametrized. So, merging this PR doesn't cause problems for flaky test detection. In fact, it doesn't cause any runtime change if the env var is not set.
There are some tests in the test suite that set used to override
the entire tenant_config using NeonEnvBuilder.pageserver_config_override.
Since config overrides are merged non-recursively, such overrides
that don't specify kind =  cause a fallback to pageserver's built-in
DEFAULT_COMPACTION_ALGORITHM.
Such cases can be found using
["']tenant_config\s*[='"]

We'll deal with these tests in a future PR.
closes https://github.com/neondatabase/neon/issues/7555

Had to complicate this PR with parametrization so that Allure can merge the results of a matrix build (like we do in https://github.com/neondatabase/neon/issues/7749 ).

Ok, the env var added in this PR has been exercised in https://github.com/neondatabase/neon/pull/7748 which is stacked atop of this one.
LGTM. I'll ask QA team for another look.


Update config to latest

Current dependencies on/for this PR:

main

PR #29   👈

This comment was auto-generated by Graphite.


TFR plot_joint topo plot broken

Describe the bug
'plot_joint' for TFR data shows weird topo plots.
Steps to reproduce
https://mne.tools/dev/auto_tutorials/time-freq/plot_sensors_time_frequency.html#joint-plot
Expected results
https://mne.tools/stable/auto_tutorials/time-freq/plot_sensors_time_frequency.html#joint-plot

same bug as in https://github.com/mne-tools/mne-python/issues/7404

Fixed in #7411


The result_list feature seems broken

See https://github.com/pola-rs/r-polars/issues/418#issuecomment-1783983375

Thanks for reporting this. Even if I don't know how this works, I think I can just fix the compilation error with the suggestions provided.
What I'm utterly surprised by, how this got missed by our extensive testing. To me, that's the real issue.
I'll look at this rather soon than later.

Thank you for your reply.
Yes, I don't know much about testing in this repository, but I think this feature flag is probably untested...

For reference, the feature was added by this pull request. This did add a doc test, but didn't touch the CI settings, so I think the test is never executed in actual.
https://github.com/extendr/extendr/pull/473


Fragment the wave shader into optional parts

Each if/elif/else in the code has been removed, to save GPU performance
the code within each if has been moved to a separate shader
the code which used to set the variables the ifs were based upon, now toggle certain shaders based on the same conditions
a shader list (a set actually) determines what operations will be performed or not performed. This is ascertained once, at init time (the init time of the WaveShader instance, not renpy's init time), instead of being tested for at each pixel's computation for each frame.

I didn't do the damp ones yet, because I'm not sure what to do with them. Should there be one damp_x+ and one damp_x-, or just one single damp_x testing the value of the damp parameter like it currently does ?
The fact that damp_x and damp_y need to be toggled makes no doubt to me, but the difference with melt, direction and double is that u_damp is not just a boolean flag, nor a vector of two boolean flags, rather its value is used in math. So, your thoughts ?

I'll admit that I've never had anyone contribute code to my projects before, so I must apologize I don't have much of a standard for how to handle this. And I'm humbled you'd offer to assist my coding, so I'd like to thank you for the hard work.
That said, I've reviewed the code and ran it and it does work. And I will admit that it might even run faster. But any performance increase to me seems negligible. I can't imagine the handful of if-checks in the original code actually impacted it much. I don't have a ton of experience with shader code so can't say I am fully in the know. Granted, checking a float a small bit of time. But in the grand scheme of things, I can't imagine it hurting performance except in the most extreme cases. I did attempt to do some research and it seems to say to me that while if-checks can impact performance, it'd mostly be if the GPU pieces were running different lines of code. But that wouldn't impact how I had it that much.
That and I find your version to like be more difficult for new programmers to grasp. I try to comment a lot of my code because I know a lot of people using renpy might be newer programmers who are just learning and might want to know how to make changes if necessary. Yours does work, but if they wanted to use the shaders without the class for some reason, they'd likely have more work to do than with the one shader I had. Granted I'm sure they could grasp it with time but it's another layer that might make it harder to follow. And if they wanted to combine it with other shaders... well they probably already know what they're doing if they're playing with shaders. But if not, the order of the shaders might cause complications with other shaders. I don't consider this a major knock against this change as it just would require more commenting. But it is something I consider important.
I'd like to reiterate I appreciate your work and thank you for your enthusiasm. I'm glad you liked this enough to want to contribute. But I think before I'd approve it, I'd like to know a bit more about how this improves the performance. And I'd appreciate it if you could tell me more about that. Specifically how much of a performance increase this actually is. I feel like it'd be unlikely for someone to apply the original shader in such great quantities that it causes a significant performance decrease. And if they are... they probably are using it to excess already. Thank you again for your time and hope you have a good one.
And to answer about damping, I think how you did it is fine. I know you could split it into different shaders. But I'd rather people just be able to put in a negative value to have the damping affect the other side instead of having to split it. Feel that's just more clear to grasp. But I guess you could split it into different shaders if you want to. But that feels a bit overboard to me.
I'd also like to say, even if I end up not approving it, I'd say you're free to distribute your version if you wish and I appreciate the feedback and critique. Definitely some things I can learn from this. But currently, I feel this change is more of a philosophical change than one that offers a significant performance improvement. But again, please feel free to correct me because I could be very dumb.

Ahh, gotcha. Thanks again for the feedback. I imagine your version is faster in some contexts. but the if statements are unlikely to be a big bottleneck or actually make much impact. Still, good creativity and inventive thinking. I encourage you to keep that curiosity and desire to see how you can improve things. It's definitely something that will serve you well! And I'm sure there are contexts where this way of handling shaders will be a better way of doing things.


Run in Raspbian

How to setup it on raspbian OS?
I am using RPI 5
OS Info
Distributor ID: Ubuntu
Description:    Ubuntu 24.10
Release:        24.10
Codename:       oracular

OS Edition : Ubuntu Server 24.10


refactor, chore(egen): Removes boilerplate, heading fixes, and other corrections from template

REQUIRED:

Resource cleanup code is throwing exception.
Need to clean pipeline created by function distill_from and batch prediction job which is created due to method predict
Uneccessary checking of environment variable while cleaning resources using code os.getenv("IS_TESTING")
Removed unused library os
Colab enterpise logo added

Removed unused code and adapted notebook with new template

REQUIRED: Fill out the below checklists or remove if irrelevant

If you are opening a PR for Official Notebooks under the notebooks/official folder, follow this mandatory checklist:

[x] Use the notebook template as a starting point.
[x] Follow the style and grammar rules outlined in the above notebook template.
[x] Verify the notebook runs successfully in Colab since the automated tests cannot guarantee this even when it passes.
[x] Passes all the required automated checks. You can locally test for formatting and linting with these instructions.
[ ] You have consulted with a tech writer to see if tech writer review is necessary. If so, the notebook has been reviewed by a tech writer, and they have approved it.
[ ] This notebook has been added to the CODEOWNERS file under the Official Notebooks section, pointing to the author or the author's team.
[x] The Jupyter notebook cleans up any artifacts it has created (datasets, ML models, endpoints, etc) so as not to eat up unnecessary resources.

If you are opening a PR for Community Notebooks under the notebooks/community folder:

[ ] This notebook has been added to the CODEOWNERS file under the Community Notebooks section, pointing to the author or the author's team.
[ ] Passes all the required formatting and linting checks. You can locally test with these instructions.

If you are opening a PR for Community Content under the community-content folder:

[ ] Make sure your main Content Directory Name is descriptive, informative, and includes some of the key products and attributes of your content, so that it is differentiable from other content
[ ] The main content directory has been added to the CODEOWNERS file under the Community Content section, pointing to the author or the author's team.
[ ] Passes all the required formatting and linting checks. You can locally test with these instructions.

/gcbrun

suggested edits

We implemented all the suggestions

/gcbrun

/gcbrun

/gcbrun


how make the left drawer push the entire screen to the right?

Version
Tell us which versions you are using:

react-native-router-flux 4.0.0-beta.22
react-native 0.50.0

Expected behaviour
I wanna make the left drawer to push the entire screen to the right
Actual behaviour
The drawer just slides on the screen closing its content
Please help to find a solution of doing this action.

I also want to know how to push the screen to the right side when the drawer is open.
https://github.com/react-navigation/react-navigation/issues/939
this issue helps in that but it user react-navigation.
I want to accomplish that with react-native-router-flux.
I'm using
"react-native": "0.55.4",
"react-native-router-flux": "^4.0.0-beta.31"


feature request: convert snake_case types to CamelCase

I'm trying to use bindgen to create bindings for ruby. I'm getting an error because ruby.h defines rb_global_variable twice, once as a struct, and once as a function.
As far as I understand, the names of structs, enums, and unions don't have to match up between C and Rust - only function names do. In light of that, would it be possible add an option to rename struct and other type names to camel case? In general, it would be also be cool if we could rename types arbitrarily, by providing a function or a list of names to rename. For example, rb_global_variable could become GlobalVariable.

Hmm... So that's one of the slightly annoying differences between C and C++ that pisses me off the most.
Doesn't seem too hard to add a hook for renaming some things while we're parsing. We already have a few ParseCallbacks for customizing enum behavior and similar stuff.

Would you be interested in giving this a try? In particular, it'd be a matter of adding a new method to ParseCallbacks, and hooking it here: https://github.com/servo/rust-bindgen/blob/master/src/ir/ty.rs#L1242

Sure - I have a few things I want to get done first, but I can take a crack at it sometime in the next week or so.

I wonder if #654 helps here?

(Not with the feature, but with the problem it's trying to solve)

Ya, it would. It's the same problem that I am having.

Can you try with bindgen 0.24 and report back? I can try to add more customization if needed, but if it's fixed, that'd be rad :)

I checked, and yes, it works :) see https://github.com/mikeyhew/ruby-sys/tree/bindgen

Awesome, thanks for checking!

@emilio My understanding is that the issue that @mikeyhew had is solved, but this particular feature request is still valid / not implemented, so perhaps should stay open?

Yeah, fair :).
I opened #785 to track that instead of reopening this one.


Fastnlight: Watch exoticcarcare.ae

Fastnlight requests the watch of the watch_keyword exoticcarcare\.ae. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

exoticcarcare\.ae has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Resource and Deployment name inconsistent with Version Upgrade

Summary :
After upgrading hyscale to the newest version, the naming convention for deployment, service, pods, etc changed from [namespace]-[service-name] to [service-name]. This leads to creating a new deployment, service, etc which is supposed to be the same as before.

Hi Padmanabhan (@iamTheL)
Thanks for reporting the issue. The version <IP_ADDRESS> introduces breaking changes due to which you may end up creating new resources in K8s instead of updating existing resources.
To resolve this issue, we have provided a migration script in release artifacts which migrates old resources to new resources preserving volumes intact.


No elected primary cluster manager error

What I have

3 nodes cluster
manager node runs Consul 0.6.x server
each node runs Swarm 1.2.0 with Consul as KVS
Swarm is setup to use consul://MANAGER_IP:8500 for discovery

Details
Since upgrading from Swarm 1.1.3 to 1.2.0 i have seen multiple cases where the cluster shows the "No elected primary cluster manager" error.
I replicated this with a publicly available repo.
Steps to reproduce follow:

Clone https://github.com/bdwilliams/vagrant-docker-swarm-boilerplate
vagrant up
Run docker ps agains the swarm master ( host "vagrant1")

The error does not occur when changing the swarm image version to 1.1.3 (changed in compose file).
Command: vagrant ssh vagrant1 -c 'docker -H tcp://<IP_ADDRESS>:2375 ps
Expected:   Show running containers in the cluster
Result:       Running containers in the cluster are shown
$ vagrant ssh vagrant1 -c 'docker version'
Client:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   4dc5990
 Built:        Wed Apr 13 18:40:36 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   4dc5990
 Built:        Wed Apr 13 18:40:36 2016
 OS/Arch:      linux/amd64

Command: vagrant ssh vagrant1 -c 'docker -H tcp://<IP_ADDRESS>:2375 ps
Expected: 	Show running containers in the cluster
Result: 	Error message "Error response from daemon: No elected primary cluster manager" is shown
$ vagrant ssh vagrant1 -c 'docker version'
Client:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   4dc5990
 Built:        Wed Apr 13 18:40:36 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.11.0
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   4dc5990
 Built:        Wed Apr 13 18:40:36 2016
 OS/Arch:      linux/amd64

Possibly related
I have found #2138 and #1782 which should both be fixed. Regression?

Hi @marsmensch,
I see in your Compose file that you are using a --replication-ttl at 4s (which is a low value, for example in swarm we only use it in the CI to speed up tests). What if you bump it to 10s or 15s? The reason it was working with swarm-v1.1.3 was that the session would stick in case something went wrong or the renew session failed. But this would cause errors when the store failed, leaving the key locked forever by the recovering Manager. So the current behavior is that the session is much more volatile on store failure or slow setups (like probaby, Vagrant). So I guess tell that the Leader is switching pretty often with such a low value.
Also, other question: when you see the no elected leader failure, does this recover after some time?
Thanks!

Hi @abronan,
i tried to bump the TTL to 10s and 15s and still got not joy. The following is an excerpt from the Swarm manager container logs:
time="2016-04-25T07:12:36Z" level=info msg="Leader Election: Cluster leadership lost"
time="2016-04-25T07:12:36Z" level=error msg="Unexpected response code: 500 (Invalid Session TTL '7500000000', must be between [10s=24h0m0s])"
time="2016-04-25T07:12:46Z" level=info msg="Leader Election: Cluster leadership lost"
time="2016-04-25T07:12:46Z" level=error msg="Unexpected response code: 500 (Invalid Session TTL '7500000000', must be between [10s=24h0m0s])"
time="2016-04-25T07:12:56Z" level=info msg="Leader Election: Cluster leadership lost"
time="2016-04-25T07:12:56Z" level=error msg="Unexpected response code: 500 (Invalid Session TTL '7500000000', must be between [10s=24h0m0s])"
time="2016-04-25T07:13:06Z" level=info msg="Leader Election: Cluster leadership lost"
time="2016-04-25T07:13:06Z" level=error msg="Unexpected response code: 500 (Invalid Session TTL '7500000000', must be between [10s=24h0m0s])"

I have no idea why the session TTL is interpreted as "7500000000", but i guess this is the culprint. Afaik consul has a max TTL of 14h. Removing the  --replication-ttl flag completely for Swarm 1.2.0 works for me.
Also did some more testing today and it does not recover.
Thank you for looking into it!

@marsmensch Sorry my mistake, you should bump it to at least 20s because you are using Consul and it does not accept a TTL < 10s (because Consul divides the original TTL by 2x, also<PHONE_NUMBER> is in nanoseconds so this is 7.5s). This should work using those values (default value without the flag is 60s so that's why it works).
Otherwise you can still tweak Consul to accept a lower TTL value, you can take a look at #2153 for more infos.

Thank you @abronan, got it. The default will work for me!
I am still thinking about, if Swarm should implement some kind of logic (or a baseline) for the supported backends. Even a log message would help to lead other in the right direction. If nothing else, i am volunteering to write some docs in the appropriate section. What do you think?
Also the swarm integration tests [1] seem to use a container with a very old version of consul, a switch to https://github.com/gliderlabs/docker-consul would be great!
[1] https://github.com/docker/swarm/blob/master/test/integration/discovery/consul.bats

I also hit with the issue like that while installing consul on three different nodes:
ERRO[3353] discovery error: Unexpected response code: 500 (No cluster leader)


Autorest Regen Preview to 3.0.0-alpha.20231120.3 by Alexander Sher from refs/pull/3937/head

Triggered from https://github.com/Azure/autorest.csharp/pull/3937

API change check
API changes are not detected in this pull request.


about unzip failed

The reason for the failure of unzip may be that the download is not complete. The compressed package is about tens of MB. Wait patiently for the download to complete. If the download is slow all the time, please comment you email and I will send the complete compressed package to you.

You also can try git clone in git bash.


Faker::Lorem.multibyte for multibyte chars

This is to generate random characters with multibyte (often found in
different languages or signs like emojii)
This is to open discussion on adding support for multibyte. While this PR does work, it probably needs some love as to the best location for this (Ipsum?), whether it should give 1 multibyte character or multiple and wether we can make a sentence that could mix and match between multibyte and non-multibyte.

@frankywahl I had free time today and rebase your branch with master and add the missing docs.

I think we could start displaying the multibytes for now and eventually we could add more functionalities as you pointed in the description.

@frankywahl it would be cool if we could add more locales to this new object and just display a multibyte sample. What do you think?

@frankywahl I had free time today and just added the option to display only one sample 👍


Memory leak

Hi Prisma Team! My Prisma Client just crashed.
I currently have issues with Prisma that is deployed on Google App Engine. There is clearly a memory leak and I get a lot of errors from prisma - Error in PostgreSQL connection: Error { kind: Closed, cause: None }. I am using a single prisma client to access everything and couldn't find any issues, so any help would be appreciated.
The memory usage starts at 400MB (normal) goes all the way to 1.5GB at which point the instance resets since the memory exceeded the threshold. Memory usage picture below. I already got more than 2.5k My Prisma Client just crashed errors like below in less than 24h (most of them at the time of the restart) out of cca 100k read/writes.

Before implementing prisma, the memory usage was around 500MB.
Let me also note that I catching a lot of expected prisma errors (50k+ in 24h) like:

NotFoundError: No User found Error: NotFoundError: No User found
Invalid prisma.user.update() invocation: An operation failed because it depends on one or more records that were required but not found. Record to update not found.
Invalid prisma.lessonActivity.create() invocation: Foreign key constraint failed on the field: LessonActivity_userId_fkey (index)

Since this was just deployed to write new data, while old will be migrated if everything is fine. Are maybe the errors the problem? But since they are getting handled, it shouldn't be an issue.
The report is below:
Versions

Name
Version

Node
v12.21.0

OS
debian-openssl-1.1.x

Prisma Client
2.19.0

Query Engine
query-engine c1455d0b443d66b0d9db9bcb1bb9ee0d5bbc511d

Database
unknown

Query
query {
  findUniqueUser(where: {
    id: "X"
  }) {
    progress
  }
}

There are a lot of different queries in the errors (I just copied one), so I don't think this matters that much
Logs
Fetched a connection from the pool
prisma:engine stdout  Unknown error
prisma:engine {
  error: PrismaClientUnknownRequestError2 [PrismaClientUnknownRequestError]: Error in connector: Error querying the database: connection closed
      at NodeEngine.graphQLToJSError (/workspace/node_modules/@prisma/client/runtime/index.js:29799:14)
      at NodeEngine.request (/workspace/node_modules/@prisma/client/runtime/index.js:29695:24)
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:97:5)
      at async cb (/workspace/node_modules/@prisma/client/runtime/index.js:34744:26) {
    clientVersion: '2.19.0'
  }
}
prisma:engine stdout  Fetched a connection from the pool
prisma:engine stdout  Unknown error
prisma:engine {
  error: PrismaClientUnknownRequestError2 [PrismaClientUnknownRequestError]: Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: Closed, cause: None }) })
      at NodeEngine.graphQLToJSError (/workspace/node_modules/@prisma/client/runtime/index.js:29799:14)
      at NodeEngine.request (/workspace/node_modules/@prisma/client/runtime/index.js:29695:24)
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:97:5) {
    clientVersion: '2.19.0'
  }
}
prisma:engine stdout  Fetched a connection from the pool
prisma:engine stdout  Unknown error
prisma:engine {
  error: PrismaClientUnknownRequestError2 [PrismaClientUnknownRequestError]: Error in connector: Error querying the database: connection closed
      at NodeEngine.graphQLToJSError (/workspace/node_modules/@prisma/client/runtime/index.js:29799:14)
      at NodeEngine.request (/workspace/node_modules/@prisma/client/runtime/index.js:29695:24)
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:97:5)
      at async cb (/workspace/node_modules/@prisma/client/runtime/index.js:34744:26) {
    clientVersion: '2.19.0'
  }
}
prisma:engine stdout  Fetched a connection from the pool
prisma:engine stdout  Unknown error
prisma:engine {
  error: PrismaClientUnknownRequestError2 [PrismaClientUnknownRequestError]: Error occurred during query execution:
  ConnectorError(ConnectorError { user_facing_error: None, kind: QueryError(Error { kind: Closed, cause: None }) })
      at NodeEngine.graphQLToJSError (/workspace/node_modules/@prisma/client/runtime/index.js:29799:14)
      at NodeEngine.request (/workspace/node_modules/@prisma/client/runtime/index.js:29695:24)
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:97:5) {
    clientVersion: '2.19.0'
  }
}
prisma:engine stdout  Fetched a connection from the pool
prisma:engine stdout  Unknown error
prisma:engine {
  error: PrismaClientUnknownRequestError2 [PrismaClientUnknownRequestError]: Error in connector: Error querying the database: connection closed
      at NodeEngine.graphQLToJSError (/workspace/node_modules/@prisma/client/runtime/index.js:29799:14)
      at NodeEngine.request (/workspace/node_modules/@prisma/client/runtime/index.js:29695:24)
      at runMicrotasks (<anonymous>)
      at processTicksAndRejections (internal/process/task_queues.js:97:5)
      at async cb (/workspace/node_modules/@prisma/client/runtime/index.js:34744:26) {
    clientVersion: '2.19.0'
  }
}
Error in PostgreSQL connection: Error { kind: Closed, cause: None }&template=bug_report.md

Can you possibly share your application or is it closed source?
If it is closed, can you describe how you use Prisma in that app?

Since this was just deployed to write new data, while old will be migrated if everything is fine. Are maybe the errors the problem? But since they are getting handled, it shouldn't be an issue.

Just to clarify: The errors are expected, and handled, and you are asking if those could lead to memory problems - correct?

Hi @janpio, thanks for the reply.

Can you possibly share your application or is it closed source?

This is a closed source project, so sadly I cannot share the code.
Here is the code for how my prisma client is initialized.
import { PrismaClient } from '@prisma/client';
import { logger } from './winston';

const prisma = new PrismaClient({
    errorFormat: 'pretty',
    log: [
        { emit: 'event', level: 'query' },
        { emit: 'event', level: 'error' },
        { emit: 'stdout', level: 'error' },
        { emit: 'stdout', level: 'info' },
        { emit: 'stdout', level: 'warn' },
    ],
});

// prisma.$on('query', (e) => {
//     console.log('Query: ' + e.query);
//     console.log('Duration: ' + e.duration + 'ms');
// });

prisma.$on('error', (e) => {
    logger.error(e.message);
});

export default prisma;

Every read/write is using the above prisma client. It's currently also the only connection to db (except when I manually run few queries).

Just to clarify: The errors are expected, and handled, and you are asking if those could lead to memory problems - correct?

Correct, I'm just throwing out ideas, since I am not sure what could be the culprit.

Where is the database hosted? Do you also have metrics from that, possibly about open connections, restarts and similar?

Oh, sorry, totally forgot to mention this. It's also with google - Cloud SQL. We're using default connection limit and timeout. I did try increasing both, but it didn't change anything.
I just checked and everything looks good in DB dashboard. Some stats (last 24h):

max connection is less than 10 with avg of 6
read/writes max cca 90/s with avg of 32/s
cpu not even at 5%
around 180MB current size

We have a few issues about Cloud SQL and connection closed or Error { kind: Closed, cause: None } - so that was interesting information.
We have not heard about memory leaks in that context though, so I am a bit puzzled.
Your code obviously looks good. We'll have to investigate.
You do not by chance have a test suite, load test or similar, that can trigger the same behavior and problems?

I do not have any test suite, but it's pretty straight forward. The following code (different queries though) just happens over multiple places:
handleTryCatch(prisma.user.update({ data: { referral: referralCode }, where: { id: uid } }));

export const handleTryCatch = async (promise: Promise<any>) => {
    try {
        return await promise;
    } catch (err) {
        logger.error(err);
    }
};

I am using a temporary helper function currently just to log errors and not block current app flow with errors/exceptions - I do not wait for any response.
If needed I can happily assist you with some more examples over Slack or something else.
One thing I can tell is that locally it works fine, I was running a big test migration of 250k items over multiple hours and there were zero errors (I honestly didn't check memory usage back then). So the issue does seem with GAE.
It is annoying since it's basically blocking production release.
I will try updating to 2.20.0 and commenting out all error logging to see if this helps and report back.

I will try updating to 2.20.0 and commenting out all error logging to see if this helps and report back.

This didn't solve anything.
One thing I noticed is that once the memory rises it never goes back down to normal even when the app is not used. Is Prisma client memory intensive? How much memory is needed for it run properly (maybe 1GB is not enough)?

@janpio I did some testing and it's not just a Google App Engine issue, I could easily reproduce it locally on my machine.
I was sending a batches of 1k requests to my API and after I got response from all I repeated this 10x for total of 10k requests. Then I waited for all the requests to finish processing (cca 5min) and I ran the complete flow 3 more times without restarting the instance.
This is the result of the first test where Prisma is reading and writing alongside Firebase:
prisma on, firestore on
10000 requests - 200MB -> 1.4GB -> 650MB
10000 requests - 650MB -> 1.5GB -> 900GB
10000 requests - 900MB -> 1.8GB -> 1.3GB

We can clearly see that the RAM keeps getting bigger and bigger even when there are no new requests being sent.
I ran the same flow again without the prisma code  out and this is the result:
prisma off, firestore on
10000 requests - 150MB -> 1.1GB -> 260MB
10000 requests - 260MB -> 1.0GB -> 270MB
10000 requests - 270MB -> 1.1GB -> 270MB

This is the code that was commented out:
handleTryCatch(prisma.lessonActivity.create({ data: activity }));
prisma.user.findUnique({ where: { id: uid }, select: { lessonProgress: true } }).then((user) => {
    const lessonProgress = user?.lessonProgress || {};
    lessonProgress[lessonId] = { progress: 1, index: 1 };
    handleTryCatch(prisma.user.update({ data: { lessonProgress }, where: { id: uid } }));
});

Thank you for testing that out, that of course makes it a much "easier" target to reproduce. Do you think we can get to a simple reproduction easily in a new repository? That would be the absolute best for us if we just have a project we can run and see what is going on. Otherwise we will now have to start the process of trying to get there on our own.

I was doing some more testing and finally found the culprit. It was @google-cloud/debug-agent and apparently it's a known issue: https://github.com/googleapis/cloud-debug-nodejs/issues/811. Sorry for creating a bit of confusion regarding this.
That out of the way the memory is stable, but yet I am still seeing Error { kind: Closed, cause: None } every hour or so. I initially though this was because of the memory leak, but it is in fact a separate issue.
I also see that this is known: https://github.com/prisma/prisma/issues/6329
So I'll close this issue and we can continue the discussion there.

Wow, this is amazing news. I was worried a bit there.
Left a +1 on that Google Debugger issue.
As you can see in the other (and more issues with the same label) we are working on that, actively, and will hopefully have it figured out and fixed soon.

Yea I can see that! Thanks for all the help @janpio!

For other people coming from google searches on "jest prisma memory leak", then there is a ongoing a memory issue in #12370


Add maestro sounds integration to dodge / parry

Play a sound on dodge / parry with maestro. Need to investigate how to set this up, since dodge/ parry aren't items on their own. Probably just play the sound and don't interact with maestro altogether (since it has a different scope?)

https://foundryvtt.com/api/data.ChatMessageData.html
sound property