Guidance/Tooling for Testing?

It would great to have a specific set of recommendations to Cloudstate users for how to test their functions, especially when it comes to testing with the Proxy itself.
I assume unit testing would follow whatever is normal for the development language, but what would we need (and would we need specialized tooling to help) as far as integration testing with Cloudstate?>

Hello @michaelpnash I think the first step would be to provide a way to run the proxy locally and with a transparent network between it and the user's role. So I added this feature to the CLoudstate Community CLI and in the Cloudstate previous issues the disussion can be found here.
After that we would have to create a way to automate requests from the user's entity classes. We could find out via proto definition file which entity service operations can be called and generate the necessary stubs (akka-grpc-plugin should be useful here), packaging all this in a 'Cloudstate' plugin maven and gradle may be useful.

@sleipnir Yes, agreed, a way to run the proxy and test against it is likely a large part of this. @jroper I believe you had a design in mind here?

Created a new issue #318 to track implementing the above (run the proxy and test against it).

Initial thoughts:
A language independent way of describing requests and expected responses. This will likely take the form of a schema for a well known data format like JSON. Ideally implemented such that real-world payloads can be copied into this description with minimal ceremony, to facilitate creating test cases.
A way to "run" the request+response list against a user function. Something like the TCK but for users rather than language front-end implementers.
Equality could be handled by the test runner by reflecting on the rpc types. Perhaps the request+response description could provide a way to override this?
Also need to consider how to parameterize the tests.

Integration tests I think would also be language dependent - otherwise if we create some DSL for writing integration tests, we're effectively creating a new language that users have to learn and use for writing their integration tests, that's not going to stick, if I'm a Java developer, I want to write my integration tests in Java using JUnit (or TestNG or whatever), while if I'm a JavaScript developer, I don't know what tests are so this issue is irrelevant I want to write my integration tests in JavaScript using mocha or whatever this weeks JS test framework is.
I think this task is almost all about how to run the proxy (or a mocked version of it) locally. It may involve writing some tooling, such as build plugins, but that's going to be specific to a language. It may involve writing some test harnesses to be able to interrogate what data was stored, or to be able to run assertions on events that were emitted, etc, some of this might live in the mock proxy, while perhaps language specific clients to consuming that data might be provided as well.

@jedahu I tried a bit going in this direction using https://cuelang.org hat can import protobuf files to cue schemas, also import JSON files and validate "structures" by a schema defined in CUE. I also have used the proxy from grpc-tools to capture real TCK traffic and then imported the dumped JSON to create a simple load test as an example.
CUE recently added property attributes which may help to have an "independent way of describing requests and expected response" where a complementary tool would interpret instructions like sending a message or validating responses.
To be clear, I use this for traffic between the proxy and the user function and I don't know yet how complete a schema in CUE can be to describe the Cloudstate protocol and validate user languages against, my main motivation doing this. While cue knows how to import proto files and JSON files and validating them, it would need for sure a complementary runner to load cue definitions and interpret a request-response DSL.
Using cue for this might be too esoteric or the wrong tool to do it. I found to have a protobuf file be imported to cue, safe validation, an API and also exports to JSON, YAML or even OpenAPI interesting.

This is a way to describe a shopping cart get init-ed and then send a few remove_add sequences. The cue export output of this can be feeded to grpc-replay and a ShoppingCart TCK would respond.
remove_add :: RemoveLineItem + AddLineItem
sequence : msg : EventSourced_RPC & {
	messages: EventSourced_init_and_add.messages + (100_000 * remove_add)
}

RemoveLineItem: [{
	message_origin: "client"
	raw_message:    "GnYKCnRlc3R1c2VyOjIQBxoKUmVtb3ZlSXRlbSJaCjt0eXBlLmdvb2dsZWFwaXMuY29tL2NvbS5leGFtcGxlLnNob3BwaW5nY2FydC5SZW1vdmVMaW5lSXRlbRIbCgp0ZXN0dXNlcjoyEg10ZXN0cHJvZHVjdDox"
	message: command: {
		entityId: "testuser:2"
		id:       "7"
		name:     "RemoveItem"
		payload: {
			"@type":   "type.googleapis.com/com.example.shoppingcart.RemoveLineItem"
			productId: "testproduct:1"
			userId:    "testuser:2"
		}
	}
	timestamp: "2020-05-01T15:44:10.129917+02:00"
}

@marcellanz If we put together what you've described here with James's thought of a "Mock Proxy", I could image that mock taking a sequence, and interacting with the user service, running through that sequence in a "send-expect" fashion. If the mock proxy (which we would have to call "moxy") was in a docker container, it might be more language-independent (that is, if you are a JS/TS developer and don't want to have to have a JVM on hand, you just run the docker image).
Then "success" of the test is the sequence succeeding (got all the events I expected to the events I sent)...
This sounds like something I'd be very happy using to test my functions and their interactions with the proxy, short of actually deploying it.

@michaelpnash Thinking about this made me curious what a good UX would be for a developer.
If we say that the user can focus on its business code, learning how to define gRPC messages in a text file is perhaps a lot to be expected? Using grpcurl could even be less intimidating than a CUE definition file. What I wrote above sounds practical at first, but thinking more about it, I'm not sure anymore. At least for the user facing developer.
If I imagine to be a developer living in my Language-X world, a send-expect test written in this language and watching, not writing, JSON representations of my calls is perhaps the more comfortable way? For the developer the gRPC service he defined has to be implemented in a special way, the way we define for language supports for Cloudstate and that one is different what he might know if he knew how to implement normal gRPC services before.
When it comes to debugging or defining special sequences perhaps between the proxy and the user function or defining (by spec) the Cloudstate Protocol, the low-level approach above might be more helpful I think.
Regarding mocking the moxy-proxy, If I could choose, I'd like to run a local "Cloudstate Engine" and have a real proxy running locally. wdyt?

@marcellanz Indeed, it is important to have a test process that is as familiar and comfortable to the developer in their own language as possible. We've found grpcurl gets used quite a bit when experimenting, but send-expect in the developers lang of choice sounds even better.
If we had a proxy that is, in virtually all respects, the same as a "real" proxy, but packaged into a Docker container (so I don't need to build it or even have a JVM on my machine), then perhaps we could "drive" that proxy to go through specific sequences, e.g. "proxy, please send this to my service, and expect this in return", where that is expressed in the language of choice. This would require some manner of polyglot adapter, though, to turn that into gRPC requests/responses to the "special" proxy. It might also be helpful to be able to validate against the journal, e.g. "send these requests, expect these response, then there should be entries in the journal that look like this", essentially.
Even as I describe it, this is perhaps still too complex :-)
Running a "real" proxy locally feels a bit heavyweight, though, especially if that real proxy needs a real data store. At some point the test process should encourage the developer to simply deploy to an appropriate cluster, and test there, I suspect, as a "full" integration test - it's the steps before that where I believe we could help more.

@marcellanz @michaelpnash I may be mistaken, but I believe that we already have the "real" proxy running via docker, perhaps what we need is an "interceptor app" in the middle of the path that is able to validate the inputs and outputs of the existing proxy.

@sleipnir yeah, I use the dev-mode proxy a lot, it starts in 2-3 seconds and does not join any other proxy by its dev-mode configuration.

@michaelpnash wrote:

Even as I describe it, this is perhaps still too complex :-)

@michaelpnash @sleipnir so perhaps we can describe that story!?
For discussion and if it is given that the developer has

a gRPC service definition the User Function A => a_function.proto
Entities E1…En for A implemented in Language X => E1_entity.x, …, En_entity.x
a Client that connects to the Proxy and interfaces the User Function.

that connects like
[ Client ] <--(a)--> [ Proxy ] <--(b)--> [ UserFunction ]

with:
(a) => gRPC defined by 1.
(b) => Cloudstate Protocol

The Proxy discovers any services from the UserFunction and exposes them to a Client.
The UserFunction chooses a state model for an entity and registers that to its Cloudstate user support library.
The UserFunction implements the entity with command handlers for the state model choosen.

to have a baseline, from here on, what would function testing tooling do for the developer?
What does it mean when the developer "instructs the proxy" to send message-1 (request) and then expects message-2 (reply)? What would that sequence be different by having a gRPC client stub of the defined UserFunction in 1. and use the stub to send these messages?
Why is the developer interested in any messages on (b) between the Proxy and the UserFunction?
For (b) the UserFunction receives two kind of messages
j) any message defined for the UserFunction in 1. through Cloudstate Protocol Command messages.
k) messages from the proxy sent to support the the state model defined by the Cloudstate Protocol.
For k) depending on the state model we would see:

side effects
init messages (EventSourcedInit)
event messages (EventSourcedEvent)
commands
snapshots
client actions (evensourcing: reply, forwards, failures)
and also sequence numbers for these messages
...

We could define a simple well known usecase and then derive what is needed from Tooling to support testing.
A few loosely thoughts/ideas:

message templates for the messages in k)? that then get completed by concrete values?
an API/script/definition to instruct the proxy? like
1 proxy.send( Command("add", "entity-1", "apples") )
2 proxy.send( Command("add", "entity-1", "oranges") )
3 proxy.crash( "entity-1" )
4 proxy.expect( InitMessage ("entity-1", ["apples", "oranges"]) )
5 proxy.send( Command("add", "entity-1", "bananas") )
6 proxy.send( Command("get", "entity-1"))
7 proxy.expect( "entity-1", ["apples", "oranges", "bananas"] )

4 is a k-message, one that a user never sees normally, but has to implement for snapshots or crdt init-messages.
Functionally, if a developer can verify 7) he does not need to know that snapshot messages where sent to restore state on 4), or should he?
wdyt?

On the topic of whether it's a real proxy or mock proxy, it's kind of both. So, it will be a build of the real proxy code, but not the same build that is used in production, here are the differences:

The real proxy, when it starts up, attempts to contact Kubernetes to perform cluster bootstrap - obviously, a proxy that a user runs on their machine is not going to do that, instead it will bootstrap a cluster of one node with itself. This is what the devmode build of the proxy does.
The mock proxy may be configured to use an in memory database, or perhaps an hsql or leveldb database that writes its store to disk, which could be a volume mounted from the developers host machine, so that data survives restarts of the proxy.
We may decide to handle eventing differently - since locally, a user might not be running a message broker. Instead, the eventing in the mock proxy may expose an additional interface for sending events, and it may buffer the events it emits in memory, allowing them to be received through that interface.
We may decide that it's useful, at this level of testing, to still be able to interrogate the datastore directly - so the proxy may offer an interface for asking for the raw events and raw data stored.
A number of production features would be disabled - this might include metrics gathering, things related to autoscaling, etc.
Some future features may need to be done differently, eg, one possibility in future is that we may have some support for authentication and authorization built into the proxy, this would likely require a different implementation and perhaps some level of direct external control for a locally run proxy.

As far as what the tests actually look like, I would expect that users would simply use their own generated gRPC client, or their own REST client, to make calls on the proxy. We wouldn't provide any tooling for that, the point of tests at this level is that they use the public interface exposed by the proxy, otherwise why have the proxy at all? Indeed, users might be writing integration tests where their test code doesn't talk to the proxy, but rather another service that they're also testing is calling the proxy. We would only provide the necessary tooling for starting up and configuring and managing the lifecycle of the proxy, along with APIs for eventing and interrogating the datastore as described above. But for the most part, once set up, the tests will just be black box tests that use the public interface exposed by the proxy.


Storyboard

[x] Create user stories
[x] Draw diagrams
[x] Add to wiki

Completed user storyboard on Figma as a team and put it on the wiki page.


Added Defensive Shield icon.

I want to be able to use this icon when cross-referencing with: https://raw.githubusercontent.com/PlayersCommittee/gemp-swccg-public/master/gemp-swccg-server/src/main/resources/swccgFormats.json. This way I can determine which cards are banned in formats where DEFENSIVE_SHIELD is included in the bannedIcons list.

Interesting that GEMP uses that as an icon. I never noticed that before.  Although I don't think there really is an icon for shields, I think the use-case makes sense so I'm cool merging this.


[4pt]  -Display Comments pop up with selected item's details - Student B

Create a comments popup only with the top section (displaying details of the selected item)

When the popup loads, the webapp retrieves data from the selected API and shows details about the selected item.
Add event to button prepared by your teammate that will open your popup. You need to communicate with your team member to make sure that you do not block each other (most likely the easiest solution is to merge the list of items feature to the dev branch before you try to add that event).

You did a good part, keep working like this

Thank you for your feedback.


In IE browser, an error is reported

Configuration:

Web browser and its version:  ie11
Operating system and its version:  win10
PDF.js version:   Official version
Is a browser extension:

In IE browser, an error is reported:      unable to get undefined or null referenced property "allsettled"
Address:            https://mozilla.github.io/pdf.js/es5/web/viewer.html

Please note https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-support (emphasis mine):

While the library and the default viewer should still work in IE 11/Edge (non-Chromium-based) for the time being, some functionality/features may not be available and the performance will be worse compared to modern browsers. However, this support will be dropped after stable version 2.6.347.

In addition to the above, allSettled is a modern Promise extension, so you'll need to use the ES5 version of PDF.js to support IE.


piptools compile breaks

Python Version
3.11 and 3.12
Django Version
4.2
Package Version
1.0.11
Description
Issue appears when running piptools compile. The issue is either a limitation on the compatibility or with the pyproject.toml. Need to re-run and capture the full issue.

Fixed and release as part of 1.0.13


ENOTFOUND with Docker and lite-server

Expected behavior
Hi ! I'm trying to have a docker environnement for an SPA.
2 Containers :

Front : Angular2 ➡ http://docker.local:3000
Back : API Symfony3 ➡ http://docker.local:8000

docker.local == localhost
I'm using docker-compose. Here the configuration :
version: '2'

services:
  back:
    extends:
      file: docker-compose.common.yml
      service: back
    volumes:
      - ./back:/var/www
    ports:
      - 8000:80
    environment:
      - SYMFONY_ENV=dev
      - SYMFONY_DEBUG=1
  front:
    extends:
      file: docker-compose.common.yml
      service: front
    volumes:
      - ./front:/var/www
    ports:
      - 80:80
      - 3000:3000

Thanks to http-proxy-middleware, when my Angular app call the API, it should call the Symfony container.
Example :
http://docker.local:3000/api/login_check => http://docker.local:8000/login_check
Actual behavior
When I test the request (http://docker.local:3000/api/login_check) with DHC or from the app itself I get this :
npm start

><EMAIL_ADDRESS>start /var/www/app
> tsc && concurrently "tsc -w" "lite-server -c bs-config.js"

[1] [HPM] Proxy created: /api  ->  http://docker.local:8000
[1] [HPM] Subscribed to http-proxy events:  [ 'error', 'close' ]
[1] ** browser-sync config **
[1] { injectChanges: false,
[1]   files: [ './**/*.{html,htm,css,js}' ],
[1]   watchOptions: { ignored: 'node_modules' },
[1]   server: { baseDir: './', middleware: [ [Object], [Function] ] } }
[1] [BS] Access URLs:
[1]  -----------------------------------
[1]        Local: http://localhost:3000
[1]     External: http://<IP_ADDRESS>:3000
[1]  -----------------------------------
[1]           UI: http://localhost:3001
[1]  UI External: http://<IP_ADDRESS>:3001
[1]  -----------------------------------
[1] [BS] Serving files from: ./
[1] [BS] Watching files...
[1] [HPM] POST /api/login_check -> http://docker.local:8000
[1] [HPM] Error occurred while trying to proxy request
/api/login_check from docker.local:3000 to http://docker.local:8000 (ENOTFOUND) (https://nodejs.org/api/errors.html#errors_common_system_errors)

Setup

macOs Sierra : 10.12.1
http-proxy-middleware: 0.17.2
server: lite-server : 2.2.2
environement: docker : 1.12.3

proxy middleware configuration
var proxyMiddleware = require('http-proxy-middleware');

module.exports = {
    server: {
        middleware: {
            1: proxyMiddleware('/api', {
                target: 'http://docker.local:8000',
                changeOrigin: true
            })
        }
    }
};

Thank you for the help ! 👍

You are actually proxying requests as such:
http://docker.local:3000/api/login_check => http://docker.local:8000/api/login_check
Instead of:

http://docker.local:3000/api/login_check => http://docker.local:8000/login_check

Use pathRewrite to remove the '/api' from the path:
proxyMiddleware('/api', {
    target: 'http://docker.local:8000',
    changeOrigin: true,
    pathRewrite: {
       '^/api/' : '/'          // remove base path
    }
}

https://github.com/chimurai/http-proxy-middleware/blob/master/recipes/pathRewrite.md#remove-paths

I tried the pathRewrite and still get the same type of error :
[1] [HPM] Error occurred while trying to proxy request /login_check from docker.local:3000 to
http://docker.local:8000 (ENOTFOUND) (https://nodejs.org/api/errors.html#errors_common_system_errors)
[1] 16.11.14 23:07:34 500 POST /login_check

When I call directly to the back with http://docker.local:8000/login_check, it works.
Maybe it's related to the container ips (totally lost >_<) ?
Thanks !

Hmmm... I'm not familiar with Symphony.
If I look though the Symphony docs the server is started with:
php bin/console server:start

Just a wild hunch; Can you try starting the server with:
php bin/console server:start <IP_ADDRESS>:8000

or
php bin/console server:start <IP_ADDRESS>:8000

Okay ! I found it !
Symfony use app.php and app_dev.php as entrypoint. I have to put app_dev.php in the url. Moreover, I have to switch docker.local to back in the url base.
Docker create a virtual network between containers but generate IPs (we can't set them) and link their IP to the container name. I named my containers front and back so when I ping back from any containers, it pings the container IP (for example <IP_ADDRESS>).
root@d7c7ffda233f:/var/www/app# ping back
PING back (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: icmp_seq=0 ttl=64 time=9.721 ms

Sooo here my working config :
var proxyMiddleware = require('http-proxy-middleware');

module.exports = {
    server: {
        middleware: {
            1: proxyMiddleware('/api', {
                target:       'http://back/app_dev.php',
                changeOrigin: true,
                pathRewrite:  {
                    '^/api/': '/'
                }
            })
        }
    }
};

Buuuut, I'm not satisfied of this config. Here why : I'm using an Apache vhost conf for Symfony and I'm using .htaccess file from web folder and I want to append the app_dev.php to url without to set it in my proxymiddleware.
Here my .htaccess conf :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^(front)$ [NC]
RewriteRule ^(.*)$ %{ENV:BASE}/app_dev.php [L]

I know that the problem is basically solved. But If you have any idea, I would be glad to hear / read it 😸
Thanks !

Okay! I found my solution!
My problem really came from my .htaccess file.
I had to set back and not front in my RewriteCond. So here my solution :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^(back)$ [NC]
RewriteRule ^(.*)$ %{ENV:BASE}/app_dev.php [L]

Simple !
Hope that my case will help others!
Thank for your help 😸

Glad to hear you found the solution!  :)

The important take away from this error has nothing to do with what your backend framework is and everything to do with the fact that proxying happens from the perspective of the container from which webpack is running in.
workstation :8000   ---- >  [ :80     ---->  backend container ]
                                     /|\
                                      |
                                      |
                                      |
                              http://backend:8000/ === ECONNREFUSED
            :3000   ---- >  [ :3000   ---->  webpack container ]

The backend container doesn't expose port 8000 within the docker-compose network, even if it did it's not being listened by any process. Which is why you changing symphony to listen on port 8000 coincidentally fixed your problem.
This also means that with the following:
workstation :80     ---->  :80 MS-IIS (process running on workstation)
workstation :3000   ---->  [[ mobyvm *:* ---> [ :3000   ---->  webpack container ]  ]]

You have to deal with the possibility of pointing at the moby vm or the current container.
The targets of http://localhost will actually point at the same container as the webpack container, and that to point at the IIS instance on your workstation, you actually need the machine name or ip address


php-mcrypt install on CentOS should this be part of this cookbook or handled outside?

I will do the work either way, but I am curious to know from the maintainers if they would consider a PR for the installation of php-mcrypt on CentOS for the cookbook? Or if they feel that this should be handled outside of this cookbook. @tas50 @jtimberman @someara
Currently my thinking is to make it a separate recipe because it depends on configuring epel/remi repos:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

Ok agreed, what about adding the options here: https://github.com/chef-cookbooks/php/pull/193 ?


Can't import Graph

I installed keras with pip and I'm having an issue trying to create a Graph model:
from keras.models import Sequential,Graph
ImportError: cannot import name Graph
pip version 1.5.4
python version 2.7

Graph has been removed. Use the functional API (see docs).

Would be nice if the doc was updated then.
https://keras.io/layers/containers/ is not true anymore, leading me to search the Graph class with obivously no success. Even the commit removing the Graph class doesn't say anything about it.


Error “Took to long to load”

Whenever I try to join on my phone, it says it to too long to load. Here is a dump: https://dump.geysermc.org/AaYkncPNQRGZxVM9U4Dl45wVxhaQF6hR

Please provide a console log.

Please provide a console log.

[17:42:22] [main/INFO]: Loading for game Minecraft 1.16.4
[17:42:22] [ForkJoinPool-1-worker-8/WARN]: Non-Fabric mod JAR at "/home/minecraft/multicraft/servers/server332738/mods/FastFurnace-1.16.3-4.3.0.jar", ignoring
[17:42:22] [main/INFO]: [FabricLoader] Loading 57 mods<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>[17:42:22] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.2 Source=file:/home/minecraft/multicraft/servers/server332738/jar/fabric_1.16.4.jar Service=Knot/Fabric Env=SERVER
[17:42:24] [main/WARN]: @Mixin target net/minecraft/class_3898$class_3208 is public in fabric-networking-api-v1.mixins.json:accessor.EntityTrackerAccessor and should be specified in value
[17:42:26] [main/WARN]: Method overwrite conflict for getInventory in hopperOptimizations.mixins.json:direct_inventory_access.InventoryAccessor$InventoryAccessorDispenserBlockEntity, previously written by carpetextra.mixins.DispenserBlockEntity_craftingMixin. Skipping method.
n
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_access.ChunkHolderMixin' as rule 'mixin.world.chunk_access' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_access.ServerChunkManagerMixin' as rule 'mixin.world.chunk_access' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_access.WorldMixin' as rule 'mixin.world.chunk_access' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_ticking.PlayerChunkWatchingManagerMixin' as rule 'mixin.world.chunk_ticking' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_ticking.ThreadedAnvilChunkStorageMixin' as rule 'mixin.world.chunk_ticking' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.player_chunk_tick.MixinThreadedAnvilChunkStorage' as rule 'mixin.world.player_chunk_tick' (added by mods [krypton]) disables it and children
[17:42:25] [main/WARN]: Trying to reflect-hack into the class-loader so we can define our own classes in an unrestricted loader...
[17:42:25] [main/WARN]: ** The JVM might warn you with something nasty! **
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenImmutableMapEntry' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenImmutableMapEntry.class)
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenImmutableReferenceHashMap' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenImmutableReferenceHashMap.class)
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenEntrySet' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenEntrySet.class)
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenEntrySetIterator' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenEntrySetIterator.class)
[17:42:25] [main/INFO]: Using classpath injector: me.jellysquid.mods.cadmium.inject.KnotClasspathInjector@5eeedb60
[17:42:25] [main/INFO]: Mounted library '/META-INF/jar-replacements/DataFixerUpper-4.0.0-SNAPSHOT.jar' with hash 8c1acc46318b0139660299b7f20358d70321089f41391536280fcb2ace75a913
[17:42:25] [main/INFO]: Added jimfs://6ce4c447-f1d7-45ea-ac62-801dda69533b/work/8c1acc46318b0139660299b7f20358d70321089f41391536280fcb2ace75a913.jar to classpath injection list
[17:42:25] [main/INFO]: Successfully injected libraries into classpath
[17:42:29] [main/INFO]: Krypton is now accelerating your Minecraft server's networking stack 🚀
[17:42:29] [main/INFO]: Compression will use libdeflate (Linux x86_64), encryption will use OpenSSL 1.0.x (Linux x86_64)
[17:42:30] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[17:42:31] [main/INFO]: Reloading ResourceManager: Default, double shulker shells v1.3.0.zip, classic fishing loot v1.1.0.zip, Fabric Mods (Fabric Tool Attribute API (v1)), afk display v1.1.0.zip, more mob heads v2.8.2.zip, player head drops v1.1.0.zip
[17:42:32] [Worker-Main-9/INFO]: Loaded 7 recipes
[17:42:32] [Worker-Main-9/WARN]: Found validation problem in {minecraft:entities/ender_dragon}.pools[0].entries[0]: Unknown loot table called minecraft:entities/reference/extra/ender_dragon
[17:42:32] [Worker-Main-9/INFO]: Loaded 933 advancements
[17:42:33] [main/INFO]: Applied 0 biome modifications to 0 of 79 new biomes in 1.460 ms
[17:42:33] [Server thread/INFO]: Starting minecraft server version 1.16.4
[17:42:33] [Server thread/INFO]: Loading properties
[17:42:33] [Server thread/INFO]: Default game type: SURVIVAL
[17:42:33] [Server thread/INFO]: Generating keypair
[17:42:33] [Server thread/INFO]: Starting Minecraft server on <IP_ADDRESS>:25601
[17:42:33] [Server thread/INFO]: Using epoll channel type
[17:42:34] [Server thread/INFO]: Preparing level "world"
[17:42:34] [Server thread/INFO]: [CM]: loaded setting huskSpawningInTemples as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting onePlayerSleeping as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting spawnChunksSize as 0 from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting dispensersPlayRecords as false from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting ctrlQCraftingFix as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting commandPlayer as ops from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting customMOTD as _ from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting dispensersFeedAnimals as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting antiCheatDisabled as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting optimizedTNT as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting placementRotationFix as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting lagFreeSpawning as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting maxEntityCollisions as 3 from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting viewDistance as 32 from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting accurateBlockPlacement as true from carpet.conf
[17:42:34] [Server thread/INFO]: create world dimension: minecraft:overworld (seed:<PHONE_NUMBER>609745321)
[17:42:34] [Server thread/INFO]: create world dimension: minecraft:the_nether (seed:<PHONE_NUMBER>609745321)
[17:42:34] [Server thread/INFO]: create world dimension: minecraft:the_end (seed:<PHONE_NUMBER>609745321)
[17:42:34] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[17:42:35] [Server thread/INFO]: Preparing spawn area: 0%
[17:42:35] [Server thread/INFO]: Preparing spawn area: 0%
[17:42:35] [Server thread/INFO]: Preparing spawn area: 0%
[17:42:35] [worldgen-actor/INFO]: Preparing spawn area: 83%
[17:42:36] [Server thread/INFO]: Time elapsed: 1840 ms
[17:42:36] [Server thread/INFO]: Done (2.093s)! For help, type "help"
[17:42:36] [Server thread/INFO]: ******************************************
[17:42:36] [Server thread/INFO]:
[17:42:36] [Server thread/INFO]: Loading Geyser version 1.2.0-SNAPSHOT (git-master-da512da)
[17:42:36] [Server thread/INFO]:
[17:42:36] [Server thread/INFO]: ******************************************
[17:42:38] [Network Listener - #1/INFO]: Started Geyser on <IP_ADDRESS>:25601
[17:42:38] [Server thread/INFO]: Done (2.037s)! Run /geyser help for help!
[17:42:38] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2153ms or 43 ticks behind
[17:42:38] [Worker-Bootstrap-7/INFO]: Finished building data fixers after 10869ms
[17:43:02] [Network Listener - #1/INFO]: /<IP_ADDRESS>:61278 tried to connect!
[17:43:03] [Network Listener - #1/INFO]: Player connected with username qpcrummer1133
[17:43:26] [nioEventLoopGroup-2-2/INFO]: qpcrummer1133 (logged in as: QPCrummer) has connected to remote java server on address <IP_ADDRESS>
[17:43:26] [User Authenticator #1/INFO]: UUID of player QPCrummer is add1b0bd-f165-45a6-8033-f2dc898bb27f
[17:43:56] [Server thread/INFO]: Disconnecting com.mojang.authlib.GameProfile@1162d902[id=add1b0bd-f165-45a6-8033-f2dc898bb27f,name=QPCrummer,properties={textures=[com.mojang.authlib.properties.Property@23ad6b90]},legacy=false] (/<IP_ADDRESS>:57572): Took too long to log in
[17:43:56] [nioEventLoopGroup-2-2/INFO]: qpcrummer1133 has disconnected from remote Java server on address <IP_ADDRESS> because of Took too long to log in
[17:43:56] [Server thread/INFO]: com.mojang.authlib.GameProfile@1162d902[id=add1b0bd-f165-45a6-8033-f2dc898bb27f,name=QPCrummer,properties={textures=[com.mojang.authlib.properties.Property@23ad6b90]},legacy=false] (/<IP_ADDRESS>:57572) lost connection: Took too long to log in
[17:43:56] [Network Listener - #1/INFO]: Bedrock user with ip: /<IP_ADDRESS> has disconnected for reason CLOSED_BY_REMOTE_PEER

[17:42:22] [main/INFO]: Loading for game Minecraft 1.16.4
[17:42:22] [ForkJoinPool-1-worker-8/WARN]: Non-Fabric mod JAR at "/home/minecraft/multicraft/servers/server332738/mods/FastFurnace-1.16.3-4.3.0.jar", ignoring
[17:42:22] [main/INFO]: [FabricLoader] Loading 57 mods<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>[17:42:22] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.2 Source=file:/home/minecraft/multicraft/servers/server332738/jar/fabric_1.16.4.jar Service=Knot/Fabric Env=SERVER
[17:42:24] [main/WARN]: @Mixin target net/minecraft/class_3898$class_3208 is public in fabric-networking-api-v1.mixins.json:accessor.EntityTrackerAccessor and should be specified in value
[17:42:26] [main/WARN]: Method overwrite conflict for getInventory in hopperOptimizations.mixins.json:direct_inventory_access.InventoryAccessor$InventoryAccessorDispenserBlockEntity, previously written by carpetextra.mixins.DispenserBlockEntity_craftingMixin. Skipping method.
n
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_access.ChunkHolderMixin' as rule 'mixin.world.chunk_access' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_access.ServerChunkManagerMixin' as rule 'mixin.world.chunk_access' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_access.WorldMixin' as rule 'mixin.world.chunk_access' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_ticking.PlayerChunkWatchingManagerMixin' as rule 'mixin.world.chunk_ticking' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.chunk_ticking.ThreadedAnvilChunkStorageMixin' as rule 'mixin.world.chunk_ticking' (added by mods [tick_tacs]) disables it and children
[17:42:24] [main/WARN]: Force-disabling mixin 'world.player_chunk_tick.MixinThreadedAnvilChunkStorage' as rule 'mixin.world.player_chunk_tick' (added by mods [krypton]) disables it and children
[17:42:25] [main/WARN]: Trying to reflect-hack into the class-loader so we can define our own classes in an unrestricted loader...
[17:42:25] [main/WARN]: ** The JVM might warn you with something nasty! **
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenImmutableMapEntry' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenImmutableMapEntry.class)
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenImmutableReferenceHashMap' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenImmutableReferenceHashMap.class)
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenEntrySet' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenEntrySet.class)
[17:42:25] [main/INFO]: Injecting class 'com.google.common.collect.HydrogenEntrySetIterator' (url: jar:file:/home/minecraft/multicraft/servers/server332738/mods/hydrogen-fabric-mc1.16.4-0.1.2-SNAPSHOT.jar!/com/google/common/collect/HydrogenEntrySetIterator.class)
[17:42:25] [main/INFO]: Using classpath injector: me.jellysquid.mods.cadmium.inject.KnotClasspathInjector@5eeedb60
[17:42:25] [main/INFO]: Mounted library '/META-INF/jar-replacements/DataFixerUpper-4.0.0-SNAPSHOT.jar' with hash 8c1acc46318b0139660299b7f20358d70321089f41391536280fcb2ace75a913
[17:42:25] [main/INFO]: Added jimfs://6ce4c447-f1d7-45ea-ac62-801dda69533b/work/8c1acc46318b0139660299b7f20358d70321089f41391536280fcb2ace75a913.jar to classpath injection list
[17:42:25] [main/INFO]: Successfully injected libraries into classpath
[17:42:29] [main/INFO]: Krypton is now accelerating your Minecraft server's networking stack 🚀
[17:42:29] [main/INFO]: Compression will use libdeflate (Linux x86_64), encryption will use OpenSSL 1.0.x (Linux x86_64)
[17:42:30] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[17:42:31] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[17:42:31] [main/INFO]: Reloading ResourceManager: Default, double shulker shells v1.3.0.zip, classic fishing loot v1.1.0.zip, Fabric Mods (Fabric Tool Attribute API (v1)), afk display v1.1.0.zip, more mob heads v2.8.2.zip, player head drops v1.1.0.zip
[17:42:32] [Worker-Main-9/INFO]: Loaded 7 recipes
[17:42:32] [Worker-Main-9/WARN]: Found validation problem in {minecraft:entities/ender_dragon}.pools[0].entries[0]: Unknown loot table called minecraft:entities/reference/extra/ender_dragon
[17:42:32] [Worker-Main-9/INFO]: Loaded 933 advancements
[17:42:33] [main/INFO]: Applied 0 biome modifications to 0 of 79 new biomes in 1.460 ms
[17:42:33] [Server thread/INFO]: Starting minecraft server version 1.16.4
[17:42:33] [Server thread/INFO]: Loading properties
[17:42:33] [Server thread/INFO]: Default game type: SURVIVAL
[17:42:33] [Server thread/INFO]: Generating keypair
[17:42:33] [Server thread/INFO]: Starting Minecraft server on <IP_ADDRESS>:25601
[17:42:33] [Server thread/INFO]: Using epoll channel type
[17:42:34] [Server thread/INFO]: Preparing level "world"
[17:42:34] [Server thread/INFO]: [CM]: loaded setting huskSpawningInTemples as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting onePlayerSleeping as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting spawnChunksSize as 0 from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting dispensersPlayRecords as false from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting ctrlQCraftingFix as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting commandPlayer as ops from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting customMOTD as _ from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting dispensersFeedAnimals as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting antiCheatDisabled as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting optimizedTNT as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting placementRotationFix as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting lagFreeSpawning as true from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting maxEntityCollisions as 3 from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting viewDistance as 32 from carpet.conf
[17:42:34] [Server thread/INFO]: [CM]: loaded setting accurateBlockPlacement as true from carpet.conf
[17:42:34] [Server thread/INFO]: create world dimension: minecraft:overworld (seed:<PHONE_NUMBER>609745321)
[17:42:34] [Server thread/INFO]: create world dimension: minecraft:the_nether (seed:<PHONE_NUMBER>609745321)
[17:42:34] [Server thread/INFO]: create world dimension: minecraft:the_end (seed:<PHONE_NUMBER>609745321)
[17:42:34] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[17:42:35] [Server thread/INFO]: Preparing spawn area: 0%
[17:42:35] [Server thread/INFO]: Preparing spawn area: 0%
[17:42:35] [Server thread/INFO]: Preparing spawn area: 0%
[17:42:35] [worldgen-actor/INFO]: Preparing spawn area: 83%
[17:42:36] [Server thread/INFO]: Time elapsed: 1840 ms
[17:42:36] [Server thread/INFO]: Done (2.093s)! For help, type "help"
[17:42:36] [Server thread/INFO]: ******************************************
[17:42:36] [Server thread/INFO]:
[17:42:36] [Server thread/INFO]: Loading Geyser version 1.2.0-SNAPSHOT (git-master-da512da)
[17:42:36] [Server thread/INFO]:
[17:42:36] [Server thread/INFO]: ******************************************
[17:42:38] [Network Listener - #1/INFO]: Started Geyser on <IP_ADDRESS>:25601
[17:42:38] [Server thread/INFO]: Done (2.037s)! Run /geyser help for help!
[17:42:38] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2153ms or 43 ticks behind
[17:42:38] [Worker-Bootstrap-7/INFO]: Finished building data fixers after 10869ms
[17:43:02] [Network Listener - #1/INFO]: /<IP_ADDRESS>:61278 tried to connect!
[17:43:03] [Network Listener - #1/INFO]: Player connected with username qpcrummer1133
[17:43:26] [nioEventLoopGroup-2-2/INFO]: qpcrummer1133 (logged in as: QPCrummer) has connected to remote java server on address <IP_ADDRESS>
[17:43:26] [User Authenticator #1/INFO]: UUID of player QPCrummer is add1b0bd-f165-45a6-8033-f2dc898bb27f
[17:43:56] [Server thread/INFO]: Disconnecting com.mojang.authlib.GameProfile@1162d902[id=add1b0bd-f165-45a6-8033-f2dc898bb27f,name=QPCrummer,properties={textures=[com.mojang.authlib.properties.Property@23ad6b90]},legacy=false] (/<IP_ADDRESS>:57572): Took too long to log in
[17:43:56] [nioEventLoopGroup-2-2/INFO]: qpcrummer1133 has disconnected from remote Java server on address <IP_ADDRESS> because of Took too long to log in
[17:43:56] [Server thread/INFO]: com.mojang.authlib.GameProfile@1162d902[id=add1b0bd-f165-45a6-8033-f2dc898bb27f,name=QPCrummer,properties={textures=[com.mojang.authlib.properties.Property@23ad6b90]},legacy=false] (/<IP_ADDRESS>:57572) lost connection: Took too long to log in
[17:43:56] [Network Listener - #1/INFO]: Bedrock user with ip: /<IP_ADDRESS> has disconnected for reason CLOSED_BY_REMOTE_PEER

Sorry, I can’t figure out how to send a file via phone.

Sorry, I can’t figure out how to send a file via phone.

latest.log

latest.log

There you go

There you go

@Camotoy It seems to only affect Fabric Geyser as I booted my server up in Tunity and it worked flawlessly. It isn’t a mod compatibility issue because I ran it just by itself and fabric api and it didn’t work.

@Camotoy It seems to only affect Fabric Geyser as I booted my server up in Tunity and it worked flawlessly. It isn’t a mod compatibility issue because I ran it just by itself and fabric api and it didn’t work.

The spigot version of course.

The spigot version of course.

Same bug here. I was setting all up cause needed carpet, optimization stuff + geyser-fabric.
I had a paper server for testing on the same machine and works nice (aside of kicking bedrock by 'flying' when using minecart elevator)... but with using the same config it refuses to work.
Here you have both consoles with debugging enabled.
fabric-geyser.log
paper-geyser.log

Same bug here. I was setting all up cause needed carpet, optimization stuff + geyser-fabric.
I had a paper server for testing on the same machine and works nice (aside of kicking bedrock by 'flying' when using minecart elevator)... but with using the same config it refuses to work.
Here you have both consoles with debugging enabled.
fabric-geyser.log
paper-geyser.log

@BlueGuitarCL Exactly. It works fine with Bukkit forks. I believe if you go into your server.properties, you can allow flying.

@BlueGuitarCL Exactly. It works fine with Bukkit forks. I believe if you go into your server.properties, you can allow flying.

Yeah, i already disabled flying kick, but its annoying cause it kicks out
from the minecart so you have to hold foward while in java you just have to
rightclick
El sáb., 23 de enero de 2021 9:50 p. m., QPCrummer<EMAIL_ADDRESS>escribió:

@BlueGuitarCL https://github.com/BlueGuitarCL Exactly. It works fine
with Bukkit forks. I believe if you go into your server.properties, you can
allow flying.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GeyserMC/Geyser-Fabric/issues/10#issuecomment-766251822,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFP5LQWWLQER4DKVW5AKPYDS3NVGLANCNFSM4WGQQ24A
.

Yeah, i already disabled flying kick, but its annoying cause it kicks out
from the minecart so you have to hold foward while in java you just have to
rightclick
El sáb., 23 de enero de 2021 9:50 p. m., QPCrummer<EMAIL_ADDRESS>escribió:

@BlueGuitarCL https://github.com/BlueGuitarCL Exactly. It works fine
with Bukkit forks. I believe if you go into your server.properties, you can
allow flying.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GeyserMC/Geyser-Fabric/issues/10#issuecomment-766251822,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFP5LQWWLQER4DKVW5AKPYDS3NVGLANCNFSM4WGQQ24A
.

Are you using PE or Windows 10 edition?

Are you using PE or Windows 10 edition?

I have never had this problem before. I suggest going into the Geyser config and change the chunk caching to true. Also might want to look through the other Bukkit configs to see if any of that could be causing(I only use fabric, so I don’t know the other configs that well).

I have never had this problem before. I suggest going into the Geyser config and change the chunk caching to true. Also might want to look through the other Bukkit configs to see if any of that could be causing(I only use fabric, so I don’t know the other configs that well).

This is just an acknowledgment that I am aware of this error! I haven't replicated it myself yet, nor do I have much idea what it might be.

This is just an acknowledgment that I am aware of this error! I haven't replicated it myself yet, nor do I have much idea what it might be.

Try removing all world generation/optimization mods and see if the server works. After doing so with my server, everything seemed to work fine.

Try removing all world generation/optimization mods and see if the server works. After doing so with my server, everything seemed to work fine.

Nope, I tried it with just fabric api and geyser and it still doesn’t work.

Nope, I tried it with just fabric api and geyser and it still doesn’t work.

I now says Read Timed Out. I don’t know if that means the same thing.

I now says Read Timed Out. I don’t know if that means the same thing.

Try removing all world generation/optimization mods and see if the server works. After doing so with my server, everything seemed to work fine.

Same here. The paper log was with the other plugins cause it already been working, but with the fabric one just with geyser-fabric and the API, nothing more. AND with the same config file. Bedrock shows all kind of erros but the thing is, it connects but doenst load the world.

Try removing all world generation/optimization mods and see if the server works. After doing so with my server, everything seemed to work fine.

Same here. The paper log was with the other plugins cause it already been working, but with the fabric one just with geyser-fabric and the API, nothing more. AND with the same config file. Bedrock shows all kind of erros but the thing is, it connects but doenst load the world.

Yes, it connects, but just doesn't load. You are stuck in a pit of gray for about a minute until it times out. You can walk around, but it will never generate land. Also, when testing the paper version, I had managed to teleport 10 thousand blocks out into the end void. I wanna say this is because when the server was in fabric, I had just kept walking while it was loading in. So I was probably walking for about 40 minutes total. Good thing I had an elytra.

Yes, it connects, but just doesn't load. You are stuck in a pit of gray for about a minute until it times out. You can walk around, but it will never generate land. Also, when testing the paper version, I had managed to teleport 10 thousand blocks out into the end void. I wanna say this is because when the server was in fabric, I had just kept walking while it was loading in. So I was probably walking for about 40 minutes total. Good thing I had an elytra.

Yes, it connects, but just doesn't load. You are stuck in a pit of gray for about a minute until it times out. You can walk around, but it will never generate land. Also, when testing the paper version, I had managed to teleport 10 thousand blocks out into the end void. I wanna say this is because when the server was in fabric, I had just kept walking while it was loading in. So I was probably walking for about 40 minutes total. Good thing I had an elytra.

So your saying that you connect to the server, but the world doesn't load in? Because if so, after I fixed the login error for my server, I was getting that problem and never found a fix to it.

Yes, it connects, but just doesn't load. You are stuck in a pit of gray for about a minute until it times out. You can walk around, but it will never generate land. Also, when testing the paper version, I had managed to teleport 10 thousand blocks out into the end void. I wanna say this is because when the server was in fabric, I had just kept walking while it was loading in. So I was probably walking for about 40 minutes total. Good thing I had an elytra.

So your saying that you connect to the server, but the world doesn't load in? Because if so, after I fixed the login error for my server, I was getting that problem and never found a fix to it.

Yes, it times out after a minute. I can login to my server(put my username and password in) Then it accepts my password, but doesn't load in the world. I updated my server to 1.16.5, thinking that would help, but it didn't. I have tried it on every system in my house that has bedrock edition, still doesn't work.

Yes, it times out after a minute. I can login to my server(put my username and password in) Then it accepts my password, but doesn't load in the world. I updated my server to 1.16.5, thinking that would help, but it didn't. I have tried it on every system in my house that has bedrock edition, still doesn't work.

Something random, but have you tried setting the IP to your computers IP instead of <IP_ADDRESS> or localhost? Don't think it will do anything, but a lot of the posts I'm finding about the error mention localhost/<IP_ADDRESS> having problems.

Something random, but have you tried setting the IP to your computers IP instead of <IP_ADDRESS> or localhost? Don't think it will do anything, but a lot of the posts I'm finding about the error mention localhost/<IP_ADDRESS> having problems.

I use a Apexhosting, so I use my servers ip address.

I use a Apexhosting, so I use my servers ip address.

@QPCrummer yeah, maybe try setting that to auto.

@Camotoy Nope, I've already tried that. It will let me connect to the server, but it fails to load in the world. I believe if the server address was wrong the motd and player count wouldn't show up.

Are you able to provide a Geyser dump?

https://dump.geysermc.org/wf5xlNwHJE0DUqxiqYs91ofF16SDF1P4
Sorry for the wait, I was transferring my server to a new machine.

How i dump it? Sorry about my ignorance

Type in your console: geyser dump

Then just copy and paste the link it gives you

Thanks, here is my dump
https://dump.geysermc.org/0FPYS0KjkI9OKrTfUrK3Rs5gEJEK2KTX
El jue, 18 de feb. de 2021 a la(s) 14:47, QPCrummer (
<EMAIL_ADDRESS>escribió:

Then just copy and paste the link it gives you
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GeyserMC/Geyser-Fabric/issues/10#issuecomment-781522167,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFP5LQQNBEIBASPU345PVBLS7VHDNANCNFSM4WGQQ24A
.

--
-Thomas

BlueGuitar, that Geyser version is a bit old. Try updating?

Theres a compiled jar on this github? I can not compile by myself right
now, and theres only 1.0-SNAPSHOT on readme for fabric, and didn't found
any Releases panel with any jars.
El jue, 18 de feb. de 2021 a la(s) 18:28, Camotoy<EMAIL_ADDRESS>escribió:

BlueGuitar, that Geyser version is a bit old. Try updating?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GeyserMC/Geyser-Fabric/issues/10#issuecomment-781646611,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFP5LQXXOTSL7NPMNN7DLR3S7WA7ZANCNFSM4WGQQ24A
.

--
-Thomas

I'm also running in to this issue from a windows instance of minecraft: bedrock edition on a 1.16.5 server with only fabric-api and geyser-fabric (most recent build, ~hrs old.)

@BlueGuitarCL You can get the latest version of Geyser on Jenkins
https://ci.opencollab.dev//job/GeyserMC/job/Geyser-Fabric/job/java-1.16/

Used build #95 of Geyser-Fabric-1.0.SNAPSHOT.jar (22feb2021 https://ci.opencollab.dev/job/GeyserMC/job/Geyser-Fabric/job/java-1.16/95/) and still got 'Took too long to login' error. IMO having lots of builds with same version on the file makes download process a bit confusing. Maybe linking repo's readme/releases to geyser-fabric's jenkings would help a bit? (i would prefer 1.x versions on releases but idk)
Here is my data.
https://dump.geysermc.org/dIBUVunrmPSBAeOhlOQa5srtGATpugeg
latest.log

Same here. Latest version and still crashes.

I think this is down to the FabricAPI on the server. I was previously using Geyser standalone and once I added the Fabric API bedrock clients are not able to access the server. I did some testing today with the following setups.
Minecraft Version: 1.16.4
Bedrock Version: 1.16.201
Geyser: latest
Standalone Geyser, online Minecraft server, no mods: Working
Standalone Geyser, online Minecraft server, Fabric API: Took too long to login
Geyser-Fabric, online Minecraft server, Fabric API: Took too long to login
I have no solution at the moment other than running Geyser standalone with no Fabric API or mods
Kind regards,
Nic

I think this is down to the FabricAPI on the server. I was previously using Geyser standalone and once I added the Fabric API bedrock clients are not able to access the server. I did some testing today with the following setups.
Minecraft Version: 1.16.4
Bedrock Version: 1.16.201
Geyser: latest
Standalone Geyser, online Minecraft server, no mods: Working
Standalone Geyser, online Minecraft server, Fabric API: Took too long to login
Geyser-Fabric, online Minecraft server, Fabric API: Took too long to login
I have no solution at the moment other than running Geyser standalone with no Fabric API or mods
Kind regards,
Nic

You need BE version 1.16.201

Read that as a different version... just ignore that

@nicholasjackson, I think you're onto something. I was testing something else entirely when I found myself unable to log in. I have not gotten "too long to log in" specifically as an error message, but with Fabric API 0.29.3+1.16 I cannot log in. 0.25.4+1.16 works fine.

0.27.1+1.16 works fine, but 0.28.0+1.16 does not.
Also of note that this is a Geyser issue and not a Geyser-Fabric issue.

Yes, I use that version of the api (0.31.0)

https://github.com/GeyserMC/Geyser/pull/1995 should fix this. :)

Thanks a lot! Can you let us know when a build with that fix arrives?
El mar., 2 de marzo de 2021 1:53 p. m., Camotoy<EMAIL_ADDRESS>escribió:

GeyserMC/Geyser#1995 https://github.com/GeyserMC/Geyser/pull/1995
should fix this. :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GeyserMC/Geyser-Fabric/issues/10#issuecomment-789052884,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFP5LQXOA5O3WOYYMIKTSXTTBUJYNANCNFSM4WGQQ24A
.

This should now be fixed. Please report here if it is or is not working!
https://ci.opencollab.dev/job/GeyserMC/job/Geyser-Fabric/job/java-1.16/


unable to test http trigger functions locally on VSCode

Followed the https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code and tried to test locally using debugger ,
Starting language worker process:node  --inspect=5858 "/usr/local/Cellar/azure-functions-core-tools/2.3.199/workers/node/dist/src/nodejsWorker.js" --host <IP_ADDRESS> --port 49865 --workerId 630704fd-93d6-4b9c-9194-5717e6650754 --requestId dee7f2d0-bc0e-4ea3-a8a3-d4b5fd5cf6e3 --grpcMaxMessageLength 134217728
A host error has occurred
Microsoft.Azure.WebJobs.Script: Failed to start Language Worker Channel for language :node. System.Diagnostics.Process: No such file or directory.
Stopping JobHost
Building host: startup suppressed:True, configuration suppressed: False
Reading host configuration file '/Users/bk347276/Documents/Azure/AZFunctions/demoAZFn001/host.json'
[06/01/2019 14:46:50] Host configuration file read:
[06/01/2019 14:46:50] {
[06/01/2019 14:46:50]   "version": "2.0"
[06/01/2019 14:46:50] }
[06/01/2019 14:46:50] Initializing Host.
[06/01/2019 14:46:50] Host initialization: ConsecutiveErrors=1, StartupCount=2
Hosting environment: Production
Content root path: /Users/bk/Documents/Azure/AZFunctions/demoAZFn001
Now listening on: http://<IP_ADDRESS>:7071
Application started. Press Ctrl+C to shut down.
Host lock lease acquired by instance ID '00000000000000000000000061A1FE0D'.
Language Worker Process exited.
The operation has timed out.

For me problem was JAVA_HOME wasn't set. On Ubuntu, trying to run Java function locally using ./gradlew azureFunctionRun from command line.


Possibility to change LOCALE_COOKIE constant

Is your feature request related to a problem? Please describe.
I have a monorepo with some frontend apps. This apps are looking for a NEXT_LOCALE cookie when looking for currentLang.
Now I'm integrating one of the apps (website) to use next-international.
For the other apps to continue working, I will need to change the cookie name in all apps to Next-locale and I'll need also a migration, so users with NEXT_LOCALE cookie won't be affected by this. I'll need to copy NEXT_LOCALE content to Next-locale cookie in all apps.
Describe the solution you'd like
We should be able to change LOCALE_COOKIE constant. createI18nMiddleware should probably accept this argument.

Let's add this option in the next release!

@QuiiBz any news? :)

@QuiiBz  any news? :)

@QuiiBz any news?


Java: Java Inheritance II #67

I want to contribute my code for the problem mentioned . Please assign this under hacktoberfest 2022 tag.
Problem statement- https://www.hackerrank.com/challenges/java-inheritance-2/problem

assign this to me.

@sahilsarawagi
I've assigned you the issue and you may please go ahead!
Happy Coding😃!


[Proposal] Mapping functionality for Eloquent

Consider the following example.
<?php namespace Example\Code;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model {

    protected $table = 'profiles';

    protected $appends = [
        'email'
    ];

    /**
     * Returns email_primary as email
     *
     * @return mixed
     */
    public function getEmailAttribute()
    {
        return $this->attributes['email_primary'];
    }

}

It is rather clunky and potentially inefficient for such a simple issue. A use-case would be if you have a legacy table that you are providing an API for and want specific control over naming conventions.
The following would be the proposed syntax for mapping.
<?php namespace Example\Code;

use Illuminate\Database\Eloquent\Model;

class Profile extends Model {

    protected $table = 'profiles';

    /**
     * @var bool (optional) default false
     */
    protected $mappedOnly = false;

    /**
     * @var array (optional) specifies columns to alias
     */
    protected $map = [
        'email_primary' => 'email'
    ];

}

It is similar to how doctrine works in ways while keeping the simplicity of eloquent.
The $map variable would take a key, value and treat it as column, alias.
The $mappedOnly boolean would allow for, if true, to only select the mapped columns. This could help in certain situations where you need to load part of a table efficiently.
All in all, it adds power with a clean opt-in approach.
Thoughts?

Definitely cleaner.
+1

+1
Would come in handy in an application I am building right now.

It's clearer, but less powerful. Is this supposed to replace, or augment the accessor methods?

It is supposed to augment (and really be independent).
Here's an example:

profiles table

id
primary_email
first_name
last_name
favorite_color
favorite_animal

1
<EMAIL_ADDRESS>John
Smith
blue
tiger

2
<EMAIL_ADDRESS>Susan
Banks
red
griaffe

Profile.php
<?php

use Illuminate\Database\Eloquent\Model;

class Profile extends Model {

    protected $table = 'profiles';

    protected $map = [
        'primary_email' => 'email'
    ];

    protected $appends = [
    	'full_name'
    ];

    public function getFullNameAttribute()
    {
    	return $this->attributes['first_name'].' '.$this->attributes['last_name'];
    }

}

LightProfile.php
<?php

use Illuminate\Database\Eloquent\Model;

class LightProfile extends Model {

    protected $table = 'profiles';

	protected $mappedOnly = true;
    protected $map = [
        'primary_email' => 'email',
        'first_name',
        'last_name'
    ];

    protected $hidden = [
    	'first_name',
    	'last_name'
    ];

    protected $appends = [
    	'name'
    ];

    public function getNameAttribute()
    {
    	return $this->attributes['first_name'].' '.$this->attributes['last_name'];
    }

}

routes.php
<?php

Route::get('/profiles', function() {
	return Profile::all();
});

Route::get('/light-profiles', function() {
	return LightProfile::all();
});

GET: /profiles
[
	{
		"id": 1,
		"email"<EMAIL_ADDRESS>		"first_name": "John",
		"last_name": "Smith",
		"full_name": "John Smith",
		"favorite_color": "blue",
		"favorite_animal": "tiger"
	},
	{
		"id": 2,
		"email"<EMAIL_ADDRESS>		"first_name": "Susan",
		"last_name": "Banks",
		"full_name": "Susan Banks",
		"favorite_color": "red",
		"favorite_animal": "giraffe"
	}
]

GET: /light-profiles
[
	{
		"id": 1,
		"email"<EMAIL_ADDRESS>		"full_name": "John Smith"
	},
	{
		"id": 2,
		"email"<EMAIL_ADDRESS>		"full_name": "Susan Banks"
	}
]

For the "light profile", it isn't just "hiding" the extra properties, as you would do with $hidden. It is actually only selecting the "mapped" fields.

So, kind of like $visible then no?

@Anahkiasen well now the select will be constrained I'm thinking.
Anyway, I don't think this should be in the core. By using packages such as Fractal you have far more control over how your objects are sent as JSON and limiting the fields you retrieve from the database is already easily done.
The mapping in itself is something different, but I guess also easily implemented in a base superclass.

@JoostK — Is there really a simple way to limit the fields you retreieve the from the database? What if you want to have the contraint on all queries against that model?
On another note, it isn't really about the formatting for JSON. Its purpose is two-fold.

Allowing for selection of only the necessary columns for an object (not just hidden/visible, but actual select constraints).
Mapping/aliasing columns easily without needing an iteration through a collection and run an accessor/getter.

I'm not sure how easy it would be to apply it on all queries, because it is very likely to conflict with lots of Eloquent internals (where by default * is used in many places). Easiest way would be to define a VIEW in your database that only selects a subset of columns, although I don't know how this would impact performance.

As I said, the mapping is essentially unrelated from limiting selected columns. I don't think they should actually be combined, if at all implemented.

On 2, they both affect the select part of the query. That said, it does have deeper implications with how queries are built.
Though, this new approach would be (theoretically) more performant than any other approach mentioned.

Oh, I see, you meant to rename columns directly from the SQL. I had in mind that it was a mapping somewhere in Eloquent while setting attributes (much like your attribute setter but without that extra code)

Yeah, exactly. I'm trying to minimize the transformations done on the php side. There are, of course, places where it makes sense to transform a value with an accessor/getter, but it shouldn't have to be that way for a simple renaming of a column.

+1
It would definitely be nice to not need a custom DB query to specificy the columns to select on an Eloquent model.

@ardeay well you can do this, right?
Profile::all()->select('primary_email','first_name')->get();
but the purpose of this proposal seems to be more aimed towards the renaming of columns.  seems useful, +1

:+1:

I like the idea of specifying aliases (similar to virtual fields in CakePHP), i.e. full_name may be the first_name and last_name attributes concatenated.
However, I don’t like this “mapped only” flag. This sounds like something that should be in a service class, and not the model class for an ORM. The ORM should fetch and persist data to a data source, it’s then up to you what you do with those records once they’ve been converted to objects.

+1

@martinbean — Why would it be in a service? Isn't it the responsibility of the ORM? The hidden/visible approach is really just superficial mapping minus the ability to actually rename fields (which has to be done with getters/accessors).

@andyfleming Because the hidden/visible approach works well if you only need to access different attributes depending on two contexts, but fails when you have more than two contexts.

@martinbean — Yeah. I've done that in practice before, but it doesn't change that all the columns are being loaded behind the scenes.

@andyfleming Then that’s when you would specify the columns to load.

@martinbean But you need to do that on every query, right? What if I want a specific object to always load just those columns?

:+1:

+1 been.  Exact same situation except it's the entire database!

-1 Not a fan of this. It adds a lot of complication into Eloquent for the sake of supporting 'legacy' applications to, essentially, prettify field names. With this, you now have 2 different field names in your application; one legacy/database one which may be used throughout your app and one that is used in eloquent and your models. If your aim is to make your application more simple and unify the field names, you've ironically done the opposite -- you've created another field name, adding another layer of complexity to your app. That is not good.
To me, if I was that fussed about changing field names in a legacy app, I would change them all by some kind of grep search / through migrations. Or, if it's not practical, use getter / setter attributes, which we already have.

Completely agree, @garygreen, and you explained it far better than me when I tried.
If you need to refer to columns by different names, then that’s what the Adapter pattern is for. Don’t stick it in your ORM for the sake of legacy. It just makes things convoluted and non-uniform.

If you need this functionality for a specific project it seems like it would be better if it was a separate package. Doesn't seem like it's something that would be needed on every project and thus included in Eloquent.

My use case is creating searchable json APIs for ugly, legacy dbs that I can't change. Something to this effect would be a useful package.

@KevinCreel Again: Adapter pattern.

I know this is closed but +1

I know this is closed but +1. If you are using laravel 5 this can solve your problems https://github.com/jarektkaczyk/eloquence/wiki/Mappable.

I thikn that by the name (ORM -> Object Relational Mapper) everything should be mappable by the tool.
Maybe some concepts of Propel or Doctrine could be used by Eloquent too.

+1. I have an existing Laravel application that planned to have all 40+ tables migrated from an older schema, until we decided that was untenable in the near future. Making a translation layer through repositories and accessors works, but it's kind of a pain.

I would like to see some mature evolution in Eloquent, not some software I tryied to built at 17's with PHP 5.4. I'm sadly migrating to Doctrine right now.

You can use the packaged listed above for the mapping. I'm using it, and it works well. Still, it would be nice to have this in the core like other ORMs.

@mkrell If other ORMs do what you want, then use them.

@martinbean we are just dicussing here, looking for a better Eloquent. If you have nothing to add to the conversation, then please don't. Thanks for the adapter pattern btw.

Has anyone found another solution besides sofa/eloquence? The package appears to be abandoned and has not been updated for php8. I'll have to update my column names if I can't find a better solution.

Has anyone found another solution besides sofa/eloquence? The package appears to be abandoned and has not been updated for php8 (You can, however, get it working for Laravel 8 and PHP7.3 if you require the dev-master branch). I'll have to update my column names if I can't find a better solution.

Use Eloquent API resources to present a different representation on your object.

Use Eloquent API resources to present a different representation on your object.

Unless there's something about API resources I don't understand, that doesn't help. What I need to translate the eloquent queries themselves, example ->where('customer_id', 1) to WHERE JobID = 1. That package was able to do this, and I'm guessing Doctrine can do this, but not Eloquent.

Here's a good reason I think Eloquent should support this out of the box:
I'm using Filament, and thousands of functions on the codebase expect to receive Builder $query and to return an instance of  Builder, which is Illuminate\Database\Eloquent\Builder.
However, if we depend on somethign like sofa/eloquence-mappable, the Builder on that is a completelly separate thing that doesn't extent Illuminate\Database\Eloquent\Builder.
This causes us to end up facing things like this:
Filament\Resources\Pages\ListRecords::Filament\Tables\Concerns\{closure}(): Argument #1 ($query) must be of type Illuminate\Contracts\Database\Eloquent\Builder, Sofa\Eloquence\Query\Builder given, called in /var/www/mamute/bignews-livewire/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php on line 356

So now, we need to write own adapter for something that is pretty much the same for everyone needing this.


Start Server Failing

The Start Server option was failing for me and it seems to be some minor issues with the command string and status message. I've made some changes that fixed the issue on my end and submitted a pull request.
Very handy plugin, feedback on the pull request welcome.

Changes looks good to me. Merged the pull request.
Much appreciated.


Package gcloud has moved and renamed to google-cloud

Package gcloud has moved and has been renamed to google-cloud on PyPI.
This commit is a simple rename of requirements, imports and links, not tested, but I think there are no breaking changes.

Hi @gpchelkin, thanks for the pull request! You missed one module name in the tests, otherwise everything was fine.
You can add yourself to the contributors in AUTHORS.rst and open a new pull request with that, if you want to.


Support for XFG

XFG is the successor of CFG, currently supported from Windows 21H1.

Current implementation only shows in modules list which modules have XFG or CFG support.

I'm not sure what to do with process list since that just shows either "CF Guard" or nothing. Here are couple of ideas I had

Display "XF Guard" if main executable supports XFG
Display "XF Guard" if all loaded modules support XFG
Rename "CF Guard" to something generic like "On"
Leave it as is, since you can always open the process and check modules

I was inclined to go with option 1) but now I'm thinking that 4) sounds the best, what do you think? Or do you have some other idea how to display it?
Also, do we want to keep the name of the column?

Display "XF Guard" if all loaded modules support XFG

dumpbin shows an X next to functions using XFG while showing the CFG function table so the module might always be using XFG for every function protected by CFG?

I'm thinking that 4) sounds the best

The process can have modules using both CFG and XFG, so showing XFG for the process might not be accurate in those cases so 4) would likely be the best candidate.

do we want to keep the name of the column?

Yeah, I guess using CFG would be the best since XFG is still CFG.
I've also discovered XFG can also be used to check if reverse engineered function prototypes for undocumented functions are correct by hashing the prototype and checking against the XFG hash. Since the number of parameters and types are limited you could also easily brute force prototypes for undocumented functions?

Easter egg in WinSDK 20215:
#ifndef DECLSPEC_XFGVIRT
#if _CONTROL_FLOW_GUARD_XFG
#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
#else
#define DECLSPEC_XFGVIRT(base, func)
#endif
#endif


policy: Use NumericIdentity for rule selector cache

Feedback on #7542 was that the rule selector cache indexing based upon
the identity pointer may have unintended impact, as there is no
guarantee that an identity pointer for the same numeric identity is the
same. Fix it up by keying based upon NumericIdentity instead.
Feedback link: https://github.com/cilium/cilium/pull/7542#discussion_r277402254

This change is

test-me-please

test-me-please

Coverage decreased (-0.09%) to 41.252% when pulling 3c85f46e3aa52f5c600c9390d4155be9c5659af8 on joestringer:submit/fix-rule-selection-cache into 41f8dab23a5cd154a6816e519128394c9d344b2b on cilium:master.

test-me-please


Add ability to disable type module in package.json

Describe the problem
I have a lot of problems using this function "type": "module". I think this is still an experimental feature. For example, ts-node still doesn't fully support esm, but I can't run it without esm as long as there is a "type": "module" in package.json.
I need the ts-node to run mocha tests inside the same project. And I do not think that this is the only problem that I will have to face in the development of my project.
If I disable the "type": "module" then I got this error:
C:\Users\Mika\AppData\Roaming\npm\pnpm.cmd run build

><EMAIL_ADDRESS>build D:\projects\-temp\svelte-kit\svelte-kit-template
> vite build

vite v2.9.13 building for production...
✓ 13 modules transformed.
.svelte-kit/output/client/_app/immutable/manifest.json                    1.14 KiB
.svelte-kit/output/client/_app/immutable/layout.svelte-c20868e3.js        0.53 KiB / gzip: 0.35 KiB
.svelte-kit/output/client/_app/immutable/error.svelte-dab28125.js         1.56 KiB / gzip: 0.75 KiB
.svelte-kit/output/client/_app/immutable/start-1ae51c64.js                23.04 KiB / gzip: 8.73 KiB
.svelte-kit/output/client/_app/immutable/pages/index.svelte-c3890ae1.js   0.80 KiB / gzip: 0.47 KiB
.svelte-kit/output/client/_app/immutable/chunks/index-dd64db13.js         6.84 KiB / gzip: 2.79 KiB
vite v2.9.13 building SSR bundle for production...
✓ 11 modules transformed.
Generated an empty chunk: "hooks"
.svelte-kit/output/server/manifest.json                        1.09 KiB
.svelte-kit/output/server/index.js                             73.08 KiB
.svelte-kit/output/server/entries/fallbacks/layout.svelte.js   0.24 KiB
.svelte-kit/output/server/entries/fallbacks/error.svelte.js    0.72 KiB
.svelte-kit/output/server/entries/pages/index.svelte.js        0.32 KiB
.svelte-kit/output/server/chunks/index-9f6ceea8.js             2.31 KiB
.svelte-kit/output/server/chunks/hooks-1c45ba0b.js             0.00 KiB
(node:1912) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
[vite-plugin-svelte-kit] Cannot use import statement outside a module

Process finished with exit code 0

.svelte-kit/output/prerendered is not generated
.svelte-kit/output/client/_app/immutable/**/*.js is not generated
But Process finished with exit code 0 - this is fine
see my repo to reproduce it
Describe the proposed solution
I think the solution to this problem is simple - use the .mjs extension instead of .js where it necessary.
Alternatives considered
The alternative is to wait indefinitely for a lot of popular modules to fully support esm so that I don't regularly stumble over unsolvable problems.
Importance
i cannot use SvelteKit without it
Additional Information
No response

"type": "module" only affects your code or the code that SvelteKit generates as part of your app. Anything in a dependency will be treated according to the value in its package.json (which defaults to CJS).
I don't know what the "a lot of popular modules" that don't support ESM that you're talking about are. It would just be modules that act on your code (like ts-node), and not modules that are imported by your code.

OK, I understand, if imported modules are not affected, then only the problem with ts-node remains (for now).
The alternative is to fix the problem with ts-node or find a replacement for it.

I would recommend Vitest over Mocha + ts-node. It will utilize your vite.config.js to support things like Vite aliases, is faster, nicer, etc.

also you can use https://www.npmjs.com/package/tsx instead of ts-node

Yeah, it should replace the need for Karma as well
I'm going to go ahead and close this given that it sounds like things are working for you at the moment


Import cycle tests

thanks

No. Thank you, valued associate.
On Fri, 15 May 2015 07:58 Mario Kostelac<EMAIL_ADDRESS>wrote:

thanks
—
Reply to this email directly or view it on GitHub
https://github.com/constabulary/gb/pull/89#issuecomment-102181441.


Refresh parent directory of new AppMaps for better user experience

Closes #436
Refreshing the parent directory triggers earlier (re)indexing of the AppMap metadata directories.
This results in a quicker UI update of available AppMaps, because the list of AppMaps relies on the metadata indexes.

I added a test.


[Fix #12852] Correctly deserialize a global offense

Closes #12852.
A global offense goes into the cache but a range comes out. This results in errors when trying to display this range because begin/end at 0 is not valid. The global offense structure handles this, which is why only the second run will fail.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

I have tested this change in the scenario reported in #12852 and it appears to correct that issue.

Thanks for the review. Looks like CodeClimate is having some issues at the moment:

'/tmp/cc-test-reporter: line 2: `504 Gateway Time-out

I'm not sure of the cause, but something might have happened on the server side of cc-test-reporter. I've opened https://github.com/codeclimate/test-reporter/issues/520. I will merge this PR. Thank you.


Disagreement due to stereochemical SMILES

Given the molecule: (e)-2-butenenitrile
PubChem will resolve to: ['C/C=C/C#N']
CIR will resolve to: ['CC=CC#N']
These two are (almost) the same SMILES strings, but Pura says they don't agree because one specifies the stereochemistry, while the other doesn't.
Perhaps a 'drop stereochemical information' arg would be a solution?

I think this would make sense! So just to confirm, you'd want an option in resolve_identifiers that ignores stereochemistry differences?

Yea! I used the following in my own code:
Canonicalise and remove stoichiometry
def clean_smiles(smiles):
if pd.isna(smiles):
return smiles
else:
mol = Chem.MolFromSmiles(smiles)
return Chem.MolToSmiles(mol, isomericSmiles=False) # isomericSmiles=False is what strips away the stereo info
Apply the function to all columns in the DataFrame
df = pura_solvents.applymap(clean_smiles)
I haven't investigated fully what services/conditions cause a SMILES string to either contain, not contain, or 'explicitly be ambiguous' (ie having the crossed bond) in relation to stereochemistry.

Didn't realise the indentation would be removed by markdown... hopefully it's self-evident how the indentation should be!

Following up on the discussion we had in person. The behavior in the original post is actually expected since (e)-2-butenenitrile should resolve to 'C/C=C/C#N (i.e., CIR was wrong). Therefore, we would want the consensus algorithm to say these two SMILES are different and therefore there is not sufficient agreement.


'mutant phenotype evidence' review

This issue stems from #174.
I plan on laying out the review in the near future.
James

This issue is no longer needed and has been superceded.


Networking probes

Talked with @danwinship offline, it will be nice to be able to report

Pod network problems
DNS cluster problems
Services problems

It should not be hard to provide some basic plugins that provide some basic checks, if we can figure out the best way to obtain the information needed

/cc @danwinship
/assign @aojea

We currently have some pods such as cni network plug-ins, and we also want to detect its health status.

pods such as cni network plug-ins

why current Pod Probes are not valid?


NIFI-8272 Delete stale metrics from REST API Prometheus endpoint.

Thank you for submitting a contribution to Apache NiFi.
Description of PR
Please provide a short description of the PR here:
Fixes bug reported in NIFI-8272 where the metrics from deleted or renamed processors/connections/funnels/etc continue to be shown on the REST API Prometheus metrics endpoint.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[x] Have you written or updated unit tests to verify your changes?
[x] Have you verified that the full build is successful on JDK 8?
[x] Have you verified that the full build is successful on JDK 11?
[n/a] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[n/a] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[n/a] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[n/a] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[n/a] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

+1 LGTM, GHA passed and I tried on a live NiFi instance, verified the removed processor's metrics no longer showed up in the Prometheus scrape results. Thanks for the fix! Merging to main


[Remoto] iOS Developer Sr CLT @ Rightpoint

Empresa
Rightpoint, a Genpact company (NYSE: G) is a global experience leader. Over 700 employees across 12 offices work with clients end-to-end, from defining and enabling vision, to ensuring ongoing market relevance. Our diverse teams lead with empathy, data and creativity—always in service of the experience. From whiteboard to roll-out, we help our clients embed experience across their operations from front to back office to accelerate digital transformation through a human-centric lens. Rightpoint has been recognized among the top customer experience consultancies in The Forrester Wave™: Customer Experience Strategy Consulting Practices, Q4 2020.
Are you someone who wants to inspire change in the way business is done? Do you want to work with encouraged and like-minded intrapreneurs? Us too! We take our work very seriously, but we have fun doing it. And we’re searching for passionate, talented people to join the Rightpoint team.
Descrição da vaga
Rightpoint’s Product Development practice implements custom, dynamic, experience-led applications. We’re looking for iOS developers with strong product mindsets who care about building software that meaningfully connects with people. We value engineering excellence alongside a commitment to helping other team members succeed.
When you join us, you’ll be exposed to a broad variety of exciting technologies and industries (healthcare, mobile, security, Internet of Things, accessibility, and more). We are also passionate about giving back to the community through open-source contributions, hosting events, contributing to conferences, and more.
RightPoint: https://www.youtube.com/watch?v=fnowVfy257k
This role requires you to be able to communicate in English (Verbal and Written). ONLY resumes in English will be considered.
Responsabilidades
-Develop native iOS applications and frameworks using Swift.
-Lead development of world class apps.
-Define and implement robust app architectures and complex user interfaces.
-Apply expert knowledge of iOS system frameworks to solve novel problems.
-Collaborate with designers, engineers, and product managers to build great experiences.
Posição
Sênior.
Tipo de contratação
CLT.
Requisitos
O que você precisa conhecer
-Develop native iOS applications and frameworks using Swift.
-Lead development of world class apps.
-Define and implement robust app architectures and complex user interfaces.
-Apply expert knowledge of iOS system frameworks to solve novel problems.
-Collaborate with designers, engineers, and product managers to build great experiences.
Pra ter aquela vantagem extra
-Work with BLE, beacons, and connected devices.
Benefícios
-Medical insurance paid 100% to employees and direct dependents;
-Dental insurance paid 50% to employees and direct dependents;
-Life insurance;
-Meal voucher (1 per business day R$25,00);
-Bus transportation to band 5s who earn up to R$4500,00
-Annual bonus to band 4+ (~11% of annual salary). For band 3 it´s 15%. It´s must be eligible according to the guidelines.
-Monthly variable income compensation (VIC) for band 5s based on the eligibility according to the policy.
-3 PBD or personal business days per year on top of vacations.
Como aplicar
Saiba mais sobre essa grande oportunidade e se candidate no site (basta fazer login e inserir seus contatos): https://vagas.hunterco.com.br/job/62acca4c143e6b001f3dc776?r=srch&c=4740
Tempo médio de feedbacks
Costumamos enviar feedbacks em até 5 dias úteis após cada processo. Depois da candidatura no site, entraremos em contato para alinhamento e marcar entrevista.

Vaga aberta ainda!


Break the film to issue relationship

In the XML files, created per-issue, we have a film to issue relationship carried naively into the DB.
But occasionally (Paterson, 2016) there are multiple issues which have reviews of the same film, a fact that should properly be reflected in the model.  Remove this relationship and replace by a review-to-issue relationship.

Note that the API is not affected by this, just the html and pdf yearly lists.

Code in the break-film-issue-dependency branch.

merged


GoogleCloudStorage is not defined

when using your package, this var is not available trough the app

@donalbertico did you import it like this:
import { GoogleCloudStorage } from 'meteor/jss:google-cloud-storage'

I didn't... Im not sure why you don't have to do this with other packages, and them vars are just available.
It works now thanks! @alonoslav
very useful package if you prefer google storage instead of amazon s3

@donalbertico you're welcome)

I get GoogleCloudStorage is not a constructor even when I do the import. If I don't do the import then it says it's not defined.

@hamedhemmati Can't say what is wrong. Please, provide line with import and line with constructor call.


Changes required on Footer

The current color contrast of the footer text is inadequate, making the font color difficult to read. Please assign the task to adjust the color contrast to ensure the font is clearly visible against the background.
The logo and links in the footer are currently not functioning correctly. Please ensure that the logo redirects to the homepage and that all links are properly working.

Also please add the labels gssoc and the level which you find appropriate for this issue. thank you!

Please assign me this issue


Cloud na Quebrada

CLoud Na Quebrada

Hi @Ch1c4n0 , this is a LinkedIn profile. Global Azure is to share events happening from 18-20 April 2024 that should be free and about Azure.


Updates to the apiserver swagger-ui

Fixes #1343
Why are these changes needed?
Current implementation of the Kuberay API server present the vanilla pet store implementation in the /swagger-ui/ endpoint. This PR fixes this issues.
The changes are:

Update the swagger version to 5.4.2
Added the correct swagger .json files
Serve the swagger.json files from the local file system when running the API server from the development machine.

Related issue number
Closes #1343
Checks

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[x] Manual tests
[ ] This PR is not tested :(

The RayService e2e tests are known to be flaky. It is not related with this PR. Merge this PR.


echoboat-odometry

On the project Hydro-B,
-- +++ processing catkin package: 'echoboat_odometry'
-- ==> add_subdirectory(echoboat_odometry)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Could NOT find sbg_driver (missing: sbg_driver_DIR)
-- Could not find the required component 'sbg_driver'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "sbg_driver" with
any of the following names:
sbg_driverConfig.cmake
sbg_driver-config.cmake

Add the installation prefix of "sbg_driver" to CMAKE_PREFIX_PATH or set
"sbg_driver_DIR" to a directory containing one of the above files.  If
"sbg_driver" provides a separate development package or SDK, be sure it has
been installed.
Call Stack (most recent call first):
echoboat_odometry/CMakeLists.txt:11 (find_package)

already fixed


Fix missing packages in setup.py

Use find_packages in setup.py to include nested packages.
Closes #665

Coverage remained the same at 60.375% when pulling f8fed9c7ddec3bedef1b4932326f64d1ed511efb on redixin:fix_setup_py_find_packages into 3ddf79b7db86a60f970ffe49c5de6255893de1f3 on Netflix:develop.


Explorer not loading on non web3 enabled browsers

Describe the bug (required)
The explorer is displaying a blank page (not loading at all) on mobile browsers and non web3 enabled desktop browsers. It is possibly because of this PR, which would throw an exception if web3 isn't injected into the page: https://github.com/livepeer/livepeerjs/pull/164/files
Expected behavior (required)
Explorer should load
To Reproduce (required)
Steps to reproduce the behavior:

Visit explorer.livepeer.org on mobile safari or brave

Device (required):

Reproduced on mobile iOS and desktop browsers.

Additional context
The above referenced PR got Livepeer working within the Mist browser, but I think it's more important to roll it back (or just undo the two line change) and fix this issue, prior to worrying about Mist support.

I don't know if it's related, but I regularly see the explorer not loading in browsers on laptops also.
I can't seem to identify any kind of pattern or cause.
The only potentially relevant detail is that the blank page being loaded is actually some kind of Livepeer content - because it is one of Livepeer's official colours (and not a plain white). So, something is loading, just not everything :/

I also experience this:

Load the mine page in Chromium (https://explorer.livepeer.org/mine)

Witness that the page doesn't load fully - only a blank page

Press F12 to view developer console

Page loads.

Does this have anything to do with it?


Should "Reopen with Encoding" dropdown include UTF-8 with BOM?

VSCode Version:1.3.0
OS Version: Windows 10

Steps to Reproduce:

Click on Encoding button on Status Bar
Select "Reopen with Encoding"

UTF-8 with BOM is not in the list.
It is included if you select "Save with Encoding".
This came up when looking at vscode-docs bug https://github.com/Microsoft/vscode-docs/issues/402 which calls out that UTF-8 with BOM is missing in the screen shot for "Select File Encoding to Reopen File" dropdown.

No, this only applies to when saving. When a BOM is present we always open with UTF 8.


java installer leaves jarfile in root directory, doesn't install config file with jarfile, etc...

newrelic.yml must be installed in same directory as jar file
if we aren't doing the java app installer, put the jarfile in the install dir
use the chef file cache directory instead of root to store jarfile before installing

Hi @jorhett,
thanks for your contribution - would you mind having a look through the referenced commit, as it should cover the main issues with the Java-agent in the cookbook which were sitting for a while on my laptop...
Thanks in advance for your feedback!
Kind regards,
David