Leaking memory when used streaming

Hi there!
I have an application using multiple web-workers to compress files and upload them and after switching to brotli-wasm we started to see browser crashes due to out of memory errors. Usually we will be uploading a few thousand files at a time, but we are seeing crashes after just 100 or so files. Tracking down the memory usage, we can see that for each web worker, brotli-wasm is using an excessive amount of memory (and it keeps growing until it crashes)

This seems to come from the native WASM memory mapped between the WASM and JS memory.
I tried using the code provided in your readme but found that the files would be corrupted so have implemented the stream like
const compressStream = new brotli.CompressStream(3);
const compressionStream = new TransformStream({
  start() {},
  transform(chunk, controller) {
    let first = true;
    do {
      controller.enqueue(
        compressStream.compress(
          first ? chunk : chunk.slice(compressStream.last_input_offset()),
          1024 ** 2
        )
      );
      first = false;
    } while (
      compressStream.result() ===
      brotli.BrotliStreamResult.NeedsMoreOutput
    );
  },
  flush(controller) {
    if (
      compressStream.result() === brotli.BrotliStreamResult.NeedsMoreInput
    ) {
      controller.enqueue(compressStream.compress(undefined, 1024 ** 2));
    }
    controller.terminate();
  },
});

Which works very well until the memory runs out.
I've not been able to locate a cause for this memory leak except for something going wrong in the rust code itself or the wasm wrapper

Hmmm, I'm really not sure what could cause this I'm afraid @william00179. Streaming support was an extra feature added by @myl7 in #11, and I don't actually use it myself - I built brotli-wasm purely to use the direct compress/decompress API really.
If in your investigations you do find more clues towards exactly what's causing this, then do please share more info, and of course I'd be very happy to look at a PR if you can find a fix.

By the way, this has just nudged me into properly looking into the README example for web streams, and I found a few issues there that cause problems once you start using these for non-trivial examples.
I've now updated that in the README - you might want to test out the new version, since I think it resolves the issue your modified version handles (compression running out of output) more simply (by using the compression stream's existing internal buffer), and fixes some other bugs, which might plausibly resolve the memory issues you're seeing.

Hi @pimterry thanks for having a look at that so quickly.
Unfortunately, I'm still seeing the same behavior when using that new code.
After uploading < 100 images each at about 512KB each the process is almost using over 3GB of memory. The problem is made worse because each worker leaks the memory so it compounds the issue quickly as it will use the number of cores available minus one.
In the case below I uploaded 100 images, each being exactly 513.92KiB.
Each worker will receive an image to upload in a round robin fashion so each worker should have only received approx 4662 KiB of uncompressed data. Yet we see almost 400MB of shared memory being used here between WASM and JS on just this one worker VM.

Do you see the same behaviour if you use the non-streaming APIs?
I think this issue is very likely to be a detail of the streaming API specifically, but it'd be good to confirm that so we can at least be precise about where the problem is.
Unfortunately, beyond that debugging this is going to require some in-depth Rust knowledge, and I'm not sure I can help much! PRs to fix this are very welcome if you can trace down the issue.

The flush part should check NeedsMoreOutput other than NeedsMoreInput, since there is already no input.
https://github.com/httptoolkit/brotli-wasm/blob/b5c095da32a2c646b6e8c1771d83f437c1777e35/src/stream.rs#L144-L149 shows the logic in Rust.
When flushing (chunk input is null / undefined), only NeedsMoreOutput or ResultSuccess are returned.
As for the code in the issue, the above means the stream is terminated without actually flushed, so the left input buffer causes the memory leak.
I am not completely sure about that so maybe you need to recheck if the below code can work.
I think the TransformStream should be:
const compressStream = new brotli.CompressStream()
const compressionStream = new TransformStream({
  start() {},
  transform(chunk, controller) {
    do {
      controller.enqueue(compressStream.compress(chunk.slice(compressStream.last_input_offset()), 1024 ** 2))
    } while (compressStream.result() === brotli.BrotliStreamResult.NeedsMoreOutput)
  },
  flush(controller) {
    do {
      compressStream.compress(undefined, 1024 ** 2)
    } while (compressStream.result() === brotli.BrotliStreamResult.NeedsMoreOutput)
    controller.terminate()
  },
})

@pimterry Sorry I did not ship an example of streaming in the PR, and that seems to make many users confused.
If the above TransformStream code is tested fine, do you like to add it to README or, which I would prefer more, let me add an example folder with playable example projects?

Thanks @myl7! @william00179 if you can confirm that that works that'd be very helpful.
@myl7 regarding examples - yes, I think creating an examples folder and putting working streaming examples in there would be very helpful! If you have some time, a PR for that would be great (once we've confirmed that the code above now works correctly).

Hi @pimterry and @myl7,
From testing this example above, when trying to decompress the brotli encoded files, the decompression fails with an unexpected EOF.


Docker 1.13.0  Swarm Mode - consistent packet loss when pinging containers using custom hostname created with "templates" feature

Description
I've created a swarm using the following command:
docker service create -e SERVICE_PORTS="15672" --name rmq --network rnet --constraint "node.role != manager" -e RABBITMQ_ERLANG_COOKIE='myrabbitcookie' --replicas 4 --hostname="{{.Service.Name}}{{.Task.Slot}}" rabbitmq
Four replicated RabbitMQ containers are successfully started with the following hostnames: rmq1, rmq2, rmq3, rmq4. However, I'm having issues successfully connecting containers using these custom hostnames created with --hostname for docker service create For example: ping rmq1 consistently results in some amount of packet loss.
Therefore, I'm unable to create a RabbitMQ cluster, which uses hostnames to identify each node in the cluster. For example rabbitmqctl join_cluster rabbit@rmq1 fails.

Steps to reproduce the issue:

Create overlay network with docker network create -d overlay rnet

Create service using docker service create -e SERVICE_PORTS="15672" --name rmq --network rnet --constraint "node.role != manager" -e RABBITMQ_ERLANG_COOKIE='myrabbitcookie' --replicas 4 --hostname="{{.Service.Name}}{{.Task.Slot}}" rabbitmq

Get hostname of one of the replicated containers (say container-A):
docker exec -it container-A /bin/bash -c "hostname"

Repeat previous step for a different replicated container (container-B)

Attempt to ping one of the containers from the other using hostname: ping rmq2

Get RabbitMQ node name from container-A using: docker exec -it container-A /bin/bash -c "rabbitmqctl cluster_status". Say the RabbitMQ node name is rabbit@rmq1

From container-B, run the following:

docker exec -it container-B /bin/bash -c "stop_app"

docker exec -it container-B /bin/bash -c "reset"

docker exec -it container-B /bin/bash -c "rabbitmqctl join_cluster rabbit@rmq1"

Describe the results you received:

Packet loss when pinging containers using hostnames:
^C--- rmq1 ping statistics ---
10 packets transmitted, 1 packets received, 90% packet loss

Unable to create RabbitMQ cluster. Receive following error:
Error: unable to connect to nodes [rabbit@rmq1]: nodedown

Describe the results you expected:
I expected 0% packet loss when pinging the containers, which is what happens when I exclude the --hostname option from docker service create and use the default random hostnames.
I expected to be able to create the RabbitMQ cluster, which also happens when using default random hostnames and excluding --hostname from docker service create
Additional information you deem important (e.g. issue happens only occasionally):
I receive 0% packet loss when I use the overlay IP to ping between the 4 replicated containers
Output of docker version:
Client:
 Version:      1.13.0
 API version:  1.25
 Go version:   go1.7.3
 Git commit:   49bf474
 Built:        Tue Jan 17 09:55:28 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.0
 API version:  1.25 (minimum version 1.12)
 Go version:   go1.7.3
 Git commit:   49bf474
 Built:        Tue Jan 17 09:55:28 2017
 OS/Arch:      linux/amd64
 Experimental: false

Output of docker info:
Containers: 8
 Running: 4
 Paused: 0
 Stopped: 4
Images: 7
Server Version: 1.13.0
Storage Driver: devicemapper
 Pool Name: docker-253:0-11518725-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 1.338 GB
 Data Space Total: 107.4 GB
 Data Space Available: 1.114 GB
 Metadata Space Used: 4.391 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 1.114 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-10-14)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: k1fvva2a4zse89yzw1aix2izr
 Is Manager: false
 Node Address: <IP_ADDRESS>
 Manager Addresses:
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
  <IP_ADDRESS>:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 03e5862ec0d8d3b3f750e19fca3ee367e13c090e
runc version: 2f7393a47307a16f8cee44a37b262e8b81021e3e
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.797 GiB
Name: worker-2
ID: HC23:G72K:NPST:2MQB:OURN:RGVK:T3TS:C7L7:JVSX:566Q:J3LV:NKXW
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-ip6tables is disabled
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

3-node Swarm Mode cluster (3 CentOS VMs in VirtualBox)
Host machine running Mac OS X 10.12.2 (16C67)
Using latest official RabbitMQ image from Docker Hub

I think this is expected; hostname is only local to the container itself, and not used to discover a container on the network. To find the names and IP-addresses of a task, you can nslookup tasks.<servicename>, which returns those; see https://docs.docker.com/engine/swarm/networking/#/use-swarm-mode-service-discovery
I did see something interesting, i.e. that if a custom hostname is set, the name of the host itself is overwritten in that response;
docker exec into task rmq.2.6em3q6uvh5y9h66mv3if12mif (hostname rmq2);
docker exec -it b25e721a4240 sh                                                                                / # nslookup tasks.rmq
nslookup: can't resolve '(null)': Name does not resolve

Name:      tasks.rmq
Address 1: <IP_ADDRESS> rmq2
Address 2: <IP_ADDRESS> rmq.3.qpgka88kqhrn36u01jb1ba73v.rnet
Address 3: <IP_ADDRESS> rmq.4.coqzw2grxhwgocdodyn7sydqa.rnet
Address 4: <IP_ADDRESS> rmq.1.edo8guq2tft50fr8j3k0it1q9.rnet

Although the other name alsol works;
/ # ping rmq.2.6em3q6uvh5y9h66mv3if12mif
PING rmq.2.6em3q6uvh5y9h66mv3if12mif (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: seq=0 ttl=64 time=0.031 ms
64 bytes from <IP_ADDRESS>: seq=1 ttl=64 time=0.059 ms
64 bytes from <IP_ADDRESS>: seq=2 ttl=64 time=0.056 ms

So, I don't think there's a bug here, but let me know if there's something I misunderstood

Many thanks @thaJeztah - the behaviour makes sense given your explanation.  One more more question:
Can you explain why pinging the default hostname, which by default is also the container ID, works?
eg. ping b25e721a4240. Is it merely because it corresponds to the container ID and each container is somehow aware of the other container IDs in the cluster?

Can you explain why pinging the default hostname, which by default is also the container ID, works?

That's a good question, and I don't have a direct answer. Possibly @sanimej is able to answer that :smile:

Actually, I recall this being added in docker 1.12; see https://github.com/docker/docker/pull/21901

@thaJeztah many thanks for sharing the link, all makes sense now. I'll close the issue - however it would be useful to have similar functionality for custom hostnames if possible in future.


[Improve]建议增加standalone模式启动建议

Description
建议在standalone启动教程里增加修改docker dashboard pod中默认api路由地址的提示
InLong Component
InLong Dashboard
Are you willing to submit PR?

[ ] Yes, I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

thanks, @yg9538 .
please add more details for your improvement suggestion.

我启动standalone模式时候dashboard会爆出502错误，经过排查是因为dashboard中的nginx配置文件中default.conf指向了<IP_ADDRESS>:8083，这个地址没法走通

@yg9538 <IP_ADDRESS>:8083 is the URL for manager, please check the manager services status, and make sure it started successfully.

如果是linux启动<IP_ADDRESS>:8083为manager启动 外网访问不通，只能把localhost_ip改成外网地址，一修改后dashboard就访问不通，如果不修改<IP_ADDRESS>:8083不是访问容器内的地址么?

please change the local_ip= to actual IP in conf/inlong.conf.


How Do I Install Flutter??

Steps to Reproduce

...
...
...

Logs

Logs

Refer to Flutter website

https://docs.flutter.dev/get-started/install

Is this issue still open? Do you require any further assistance?

Closing as above link should help to answer your question.


Update Filter Criteria for Component Data

ERG created the table below to match the component group it Table 17 of the MP Reporting Instructions with the applicable component type codes and “Component Type and Basis to Sample Acquisition Method” crosscheck entries.
The table notes explain why two entries exist for “TANK” in the “Component Type and Basis to Sample Acquisition Method” crosscheck.  Essentially the two entries allow for “TANK” component records with either a null or “O” sample acquisition method code.  So both “TANK” rows are correct.

Notes:

This component exists in the “Component Type and Basis to Sample Acquisition Method” crosscheck with an acquisition code but is not listed in MP RI Table 17 (“Sample Acquisition Method Codes for Components”) based on the component mapping in check COMPON-13.
“GFM” and “TANK” are Generic Component Types in the “Component Type and Basis to Sample Acquisition Method” crosscheck but are not actual component type codes and are not translated in COMPON-13.  I believe that the crosscheck entries are not currently used.
The “Component Type and Basis to Sample Acquisition Method” crosscheck entries with an empty (null) Sample Acquisition Method are used to indicate that the components are allowed to have null sample acquisition methods.
3a. “TANK” has an empty entry and one for “O”, which indicates that the source can report “TANKS” with a null or “O” sample acquisition code.
3b. “CALR”, “DP”, “FLC”, “GCH”, “MS”, “PRES” and “TEMP”, which are in the “Fuel Flowmeter Types” group, can also have a null sample acquisition code.
3c. “PRB”, which is in the “CEMS” group, can also have a null sample acquisition code.
3d. A null sample acquisition code is required for “DL” and “PLC”.

Updated the view to account for all possible options to display based on ERGs feedback. Attached is the latest version of the filtering master list for testing https://app.zenhub.com/files/287570343/bac24ecc-afdf-4b3d-8831-63f6650e6c59/download
When testing against ECMPS UI, ensure that the values that allow for null do have a blank option in the drop down list

data has been corrected but I do not see where the reporting instructions have been updated with this information


Trailing comma incorrectly kept when stripping types for ...rest param

Describe the bug
When accepting an options argument in a function, often times I want certain options to be kept separate. I achieve this by setting up an object splat, or whatever they're called, and putting a rest param afterwards to catch the rest.
The issue that I see is that swc is lifting out the trailing comma, if any, from within the TypeScript type clause for the
Input code
function myFunc({...data}: {
  field: string,
}) {
}

Output code
// Uncaught SyntaxError: Rest element must be last element
function myFunc({ ...data,  }) {
}

Note that removing the type's inner trailing comma removes it from the output as well, producing valid code:
Input code
function myFunc({...data}: {
  field: string
}) {
}

Output code
// All good!
function myFunc({ ...data  }) {
}

Config
I'm nominally using Deno, so to recreate this bug I wrote a very basic .swcrc:
{
  "jsc": {
    "parser": {
      "syntax": "typescript"
    },
    "target": "es2020"
  }
}

Expected behavior
The inner comma probably shouldn't get lifted out of the type signatures in general. I don't see when that would be useful
Version
<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
Additional context
It seems that using semicolons instead of commas inside the type is a valid workaround.

It seems like this is the cause:
https://github.com/swc-project/swc/blob/df2a926e9d4908456256e701b1399d3af7d153d0/ecmascript/codegen/src/lib.rs#L1629-L1645
It tries to emit a trailing comma if the input has a trailing comma, but this picks up the trailing comma of the type annotation. Should this functionality just be removed?

It looks like a fix for this is rolled into this PR: https://github.com/swc-project/swc/pull/1572/commits/e3b64a051f3c3bff1b0c765836fc3a7df1b6728d

@danopia You are correct, thanks! I'll update the pr.


.NET Isolated DateTime Route parameter issue

Hi and looks like it is same issue as this one #521 but for DateTime.
[Function("Rates")]
public async Task<string> Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", Route = "rates/{onDate:datetime}")] HttpRequestData req,
    DateTime onDate,
    FunctionContext executionContext)
{
  ...
}

The error that I'm getting

Exception: Microsoft.Azure.Functions.Worker.Diagnostics.Exceptions.FunctionInputConverterException: Error converting 1 input parameters for Function 'Rates': Cannot convert input parameter 'onDate' to type 'System.DateTime' from type 'System.String'.

Thanks

@rodchenkov This is fixed in 1.8.0-preview3. Could you give it a shot? Thanks!

Hi @kshyju and thank you, now all is working.


Game Save System Request

Technically not a bug, but it'd probably a) help with replicating bugs and b) prevent people from rage quitting every time some bug destroys their world.
I propose that, instead of automatically overwriting the autosave, that after x time, such a save is copy archived into the users local save directory (wherever that is). Allowing multiple saves to exist. Such that, in the event of a bug happening due to using shapes...or perhaps a chunk exploding causing a permanent dead chunk, a player would be able to "restore" their world to an earlier point by reloading an old save file.
Sure they'd lose fifteen minutes work, but  it's better than having to start all over again. Further, the user could attempt to recreate the bug in that world and if they can, then the save file could be useful evidence for a bug report as well and potential testing for developers.

Linking this to a comment @nihal111 made over at https://github.com/MovingBlocks/Terasology/pull/2550#issuecomment-283933830 - we still need to make this more visible, harden it further, and support multiple saves if desired yep :-)


Hello.
How can i display can i display more than 6 classes ?
How can i custom classes ( use custom yolo v4)
Thanks.

Hi, please refer to the documentation: https://github.com/opendatacam/opendatacam/blob/master/documentation/CONFIG.md#display-custom-classes


Breakpoints doesn't work like they are supposed to

Description
When the breakpoints are customised and with the use of useBreakpointValue hook, I returned some values. When they are working as expected for some of the breakpoints, some fail. Breakpoint md is customised to be 789 and lg is 1680. Ideally, whenever we stay on a screen of width ranging from 789 to 1679, the breakpoint value should be categorised as 'md', but it is coming out as 'xl'. After 1680, it comes out as 'lg' which is expected. This is happening in versions after 3.2.2 i.e., from 3.3.0 onwards. When I downgrade to 3.2.2, it is working as expected.
CodeSandbox/Snack link
https://snack.expo.dev/@djneelam/breakpoints-issue
Steps to reproduce

Go to provided snack link
Open the web preview in a seperate window
Right click and inspect to see the dev tools
Try adjusting the resolution between 1536 and 1679.
You will notice the breakpoint is coming as 'xl' where it's supposed to be 'md' between 789 and 1679.

NativeBase Version
3.4.15
Platform

[ ] Android
[ ] CRA
[X] Expo
[ ] iOS
[ ] Next

Other Platform
Web
Additional Information
I thought of down grading to 3.2.2 from 3.4.15 just for this, but there were lot of issues fixed in latest versions like double clicking Right/Left Input elements to make it functional etc.,

Hey @dheerajneelam-sigfyn, Thanks for reporting this. We will check this and let you know.

I found a workaround until it gets fixed. You basically have to define all of the breakpoints, so that they start working accordingly. So, in the customisation of breakpoints, when I add '2xl' : 2440 in the above snack example, they seem to work correctly, otherwise it will show 'xl' from 1536 to 1679.


SW-5780 Remove sequence resetting in tests

Tests have all been updated to use dynamically allocated IDs, and none of them
need to reset database sequences any more. Remove the sequence-resetting support
from DatabaseBackedTest.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#2290
#2289  👈
#2288
#2286
#2285
#2284
#2283
#2282
#2281
#2280
#2279
#2278
#2277
#2276
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @sgrimm and the rest of your teammates on  Graphite

Merge activity

Aug 14, 12:21 PM EDT: @sgrimm started a stack merge that includes this pull request via Graphite.


Port window snapping commands from Community

Shortcuts to snap windows to predefined positions, as well as between
different screens.
Required extracting the "currently running at" logic from
user.switcher_focus so the current app is generally accessible. I also
added a timeout and some overt errors to make it a bit cleaner.
Also add the ability to snap named apps.
Closes #217
Closes #218

Removed the double-move, Aegis wants to fix it first-party

Removed the double-move, Aegis wants to fix it first-party

I guess we hold off on merging this one until then? Or did I miss an update?

👍

I guess we hold off on merging this one until then? Or did I miss an update?

It should work on Mac in the meantime and it will still work on Windows, it will just have janky behaviour if the window is maximized. Up to you, can leave it until it's fixed in Beta too.

I guess we hold off on merging this one until then? Or did I miss an update?

It should work on Mac in the meantime and it will still work on Windows, it will just have janky behaviour if the window is maximized. Up to you, can leave it until it's fixed in Talon Beta.

I generally vote not to commit things that we know are broken, hehe. It's confusing for newbies, and may give a bad impression of Talon.
That said, we could make it Mac-only for now if anyone really wants it?
I was also fine with the workaround, though looks like aegis wasn't.

can we just use a mac-only context with a comment about what is preventing it from working on windows? It seems unnecessary to require that every command work on every platform before including here.

Added a comment with a TODO to audit it later

Just in case anyone is subscribed by email - I was testing my local copy with the hack. Ignore that last comment, it's still broken.


Declare version requirement of react-native

The minimal supported version of react-native is 0.20.0

Why should we add it to README, we have declared it at package.json, right?

Hi @yorkie , It's declared in both README and package.json now!


Confirmed to work with Sharp Air Conditioners

Integration is working as expected with Sharp AC

AY-J22H
AY-L40P

Only Issue is that the integration does not create additional sensors etc after first added devices. (Only first added device sensors are created)
Thanks for all your hard work!

Thanks for letting me know. So do you mean the outdoor sensors are not created for the second unit? Have you tried adding the devices in different order to see whether it is a variation in capability between each AC?

There was a few bugs when adding multiple nodes and how sensors were created which I think I have overcome this morning.
Can you please try the latest version and let me know

Thanks! Have tried the latest version and same issue currently. When adding the same model AC that works fine asking me the location of the device, But when trying to add a different model it works but will not create entities and does not ask for location within my house. Hope this helps. Thanks again.

So its not creating a second climate entity at all now?

Can you please add this to your configuration.yaml file, delete all the config entries, reboot, add them back in and let me know the output of home-assistant.log
logger:
  default: warning
  logs:
      custom_components.echonetlite: debug

Hopefully This Helps...
2021-09-15 09:55:25 DEBUG (MainThread) [custom_components.echonetlite.config_flow] IP address is <IP_ADDRESS>
2021-09-15 09:55:25 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Beginning ECHONET node discovery
2021-09-15 09:55:29 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Node detected
2021-09-15 09:55:29 DEBUG (MainThread) [custom_components.echonetlite] Plaform entry data - {'instances': []}
2021-09-15 09:56:03 DEBUG (MainThread) [custom_components.echonetlite.config_flow] IP address is <IP_ADDRESS>
2021-09-15 09:56:03 DEBUG (MainThread) [custom_components.echonetlite.config_flow] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>} has already been setup..
2021-09-15 09:56:03 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Beginning ECHONET node discovery
2021-09-15 09:56:03 DEBUG (MainThread) [custom_components.echonetlite.config_flow] ECHONET Node Discovery Successful!
2021-09-15 09:56:03 DEBUG (MainThread) [custom_components.echonetlite.config_flow] instance is 1
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite.config_flow] <IP_ADDRESS> - ECHONET Instance 1-48-1 map attributes discovered!
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite.config_flow] <IP_ADDRESS> - ECHONET Instance 1-48-1 Identification number discovered!
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Node detected
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>} has already been setup..
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite] None is the UID..
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite] None is the UID in ECHONET connector..
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite] ['On', 'medium-high', 'non-auto', 'cool', 21, 21, 25, 865803]
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite] Plaform entry data - {'instances': [{'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}]}
2021-09-15 09:56:04 DEBUG (MainThread) [custom_components.echonetlite.sensor] {'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] IP address is <IP_ADDRESS>
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>, '7d2376cc0632cbe24d95f37fbc5d62c9': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}]} has already been setup..
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Beginning ECHONET node discovery
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] ECHONET Node Discovery Successful!
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] instance is 1
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] <IP_ADDRESS> - ECHONET Instance 1-48-1 map attributes discovered!
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] <IP_ADDRESS> - ECHONET Instance 1-48-1 Identification number discovered!
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Node detected
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>, '7d2376cc0632cbe24d95f37fbc5d62c9': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}]} has already been setup..
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite] None is the UID..
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite] None is the UID in ECHONET connector..
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite] ['On', 'auto', 'auto', 'cool', 18, 19, 26, 1208854]
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite] Plaform entry data - {'instances': [{'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [128, 160, 176, 240, 129, 161, 241, 130, 242, 147, 179, 243, 132, 244, 133, 245, 134, 198, 246, 136, 137, 249, 138, 186, 250, 139, 187, 140, 157, 253, 158, 190, 143, 159, 207], 'setmap': [128, 129, 143, 147, 160, 161, 176, 179, 207, 249, 250], 'uid': None, 'manufacturer': 'Sharp'}]}
2021-09-15 09:56:48 DEBUG (MainThread) [custom_components.echonetlite.sensor] {'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [128, 160, 176, 240, 129, 161, 241, 130, 242, 147, 179, 243, 132, 244, 133, 245, 134, 198, 246, 136, 137, 249, 138, 186, 250, 139, 187, 140, 157, 253, 158, 190, 143, 159, 207], 'setmap': [128, 129, 143, 147, 160, 161, 176, 179, 207, 249, 250], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffaca3e8f40>}
2021-09-15 09:57:05 DEBUG (MainThread) [custom_components.echonetlite] ['On', 'medium-high', 'non-auto', 'cool', 21, 21, 25, 865808]
2021-09-15 09:57:31 DEBUG (MainThread) [custom_components.echonetlite.config_flow] IP address is <IP_ADDRESS>
2021-09-15 09:57:31 DEBUG (MainThread) [custom_components.echonetlite.config_flow] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>, '7d2376cc0632cbe24d95f37fbc5d62c9': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}], 'bdcf30d7e626e75f4c5b1646d2a71a93': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [128, 160, 176, 240, 129, 161, 241, 130, 242, 147, 179, 243, 132, 244, 133, 245, 134, 198, 246, 136, 137, 249, 138, 186, 250, 139, 187, 140, 157, 253, 158, 190, 143, 159, 207], 'setmap': [128, 129, 143, 147, 160, 161, 176, 179, 207, 249, 250], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffaca3e8f40>}]} has already been setup..
2021-09-15 09:57:31 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Beginning ECHONET node discovery
2021-09-15 09:57:36 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Node detected
2021-09-15 09:57:36 DEBUG (MainThread) [custom_components.echonetlite] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>, '7d2376cc0632cbe24d95f37fbc5d62c9': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}], 'bdcf30d7e626e75f4c5b1646d2a71a93': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [128, 160, 176, 240, 129, 161, 241, 130, 242, 147, 179, 243, 132, 244, 133, 245, 134, 198, 246, 136, 137, 249, 138, 186, 250, 139, 187, 140, 157, 253, 158, 190, 143, 159, 207], 'setmap': [128, 129, 143, 147, 160, 161, 176, 179, 207, 249, 250], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffaca3e8f40>}]} has already been setup..
2021-09-15 09:57:36 DEBUG (MainThread) [custom_components.echonetlite] Plaform entry data - {'instances': []}
2021-09-15 09:57:49 DEBUG (MainThread) [custom_components.echonetlite] [False, False, False, False, False, False, False, False]
2021-09-15 09:57:49 DEBUG (MainThread) [custom_components.echonetlite] polling ECHONET Instance host <IP_ADDRESS> timed out - Retry 1 of 3
2021-09-15 09:57:49 DEBUG (MainThread) [custom_components.echonetlite] Number of missed ECHONETLite msssages since reboot is - 2
2021-09-15 09:57:51 DEBUG (MainThread) [custom_components.echonetlite] [False, False, False, False, False, False, False, False]
2021-09-15 09:57:51 DEBUG (MainThread) [custom_components.echonetlite] polling ECHONET Instance host <IP_ADDRESS> timed out - Retry 2 of 3
2021-09-15 09:57:51 DEBUG (MainThread) [custom_components.echonetlite] Number of missed ECHONETLite msssages since reboot is - 3
2021-09-15 09:57:52 DEBUG (MainThread) [custom_components.echonetlite] [False, False, False, False, False, False, False, False]
2021-09-15 09:57:52 DEBUG (MainThread) [custom_components.echonetlite] polling ECHONET Instance host <IP_ADDRESS> timed out - Retry 3 of 3
2021-09-15 09:57:52 DEBUG (MainThread) [custom_components.echonetlite] Number of missed ECHONETLite msssages since reboot is - 4
2021-09-15 09:58:02 DEBUG (MainThread) [custom_components.echonetlite.config_flow] IP address is <IP_ADDRESS>
2021-09-15 09:58:02 DEBUG (MainThread) [custom_components.echonetlite.config_flow] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>, '7d2376cc0632cbe24d95f37fbc5d62c9': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}], 'bdcf30d7e626e75f4c5b1646d2a71a93': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [128, 160, 176, 240, 129, 161, 241, 130, 242, 147, 179, 243, 132, 244, 133, 245, 134, 198, 246, 136, 137, 249, 138, 186, 250, 139, 187, 140, 157, 253, 158, 190, 143, 159, 207], 'setmap': [128, 129, 143, 147, 160, 161, 176, 179, 207, 249, 250], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffaca3e8f40>}], '6ddcb47830261a0fa1ef7c195de0ba23': []} has already been setup..
2021-09-15 09:58:02 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Beginning ECHONET node discovery
2021-09-15 09:58:06 DEBUG (MainThread) [custom_components.echonetlite] [False, False, False, False, False, False, False, False]
2021-09-15 09:58:06 DEBUG (MainThread) [custom_components.echonetlite] polling ECHONET Instance host <IP_ADDRESS> timed out - Retry 1 of 3
2021-09-15 09:58:06 DEBUG (MainThread) [custom_components.echonetlite] Number of missed ECHONETLite msssages since reboot is - 6
2021-09-15 09:58:06 DEBUG (MainThread) [custom_components.echonetlite.config_flow] Node detected
2021-09-15 09:58:06 DEBUG (MainThread) [custom_components.echonetlite] {'api': <pychonet.echonetapiclient.ECHONETAPIClient object at 0x7ffab6b13910>, '7d2376cc0632cbe24d95f37fbc5d62c9': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [], 'setmap': [], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffab623bd90>}], 'bdcf30d7e626e75f4c5b1646d2a71a93': [{'instance': {'host': '<IP_ADDRESS>', 'eojgc': 1, 'eojcc': 48, 'eojci': 1, 'getmap': [128, 160, 176, 240, 129, 161, 241, 130, 242, 147, 179, 243, 132, 244, 133, 245, 134, 198, 246, 136, 137, 249, 138, 186, 250, 139, 187, 140, 157, 253, 158, 190, 143, 159, 207], 'setmap': [128, 129, 143, 147, 160, 161, 176, 179, 207, 249, 250], 'uid': None, 'manufacturer': 'Sharp'}, 'echonetlite': <custom_components.echonetlite.ECHONETConnector object at 0x7ffaca3e8f40>}], '6ddcb47830261a0fa1ef7c195de0ba23': []} has already been setup..
2021-09-15 09:58:06 DEBUG (MainThread) [custom_components.echonetlite] Plaform entry data - {'instances': []}
2021-09-15 09:58:07 DEBUG (MainThread) [custom_components.echonetlite] [False, False, False, False, False, False, False, False]
2021-09-15 09:58:07 DEBUG (MainThread) [custom_components.echonetlite] polling ECHONET Instance host <IP_ADDRESS> timed out - Retry 2 of 3
2021-09-15 09:58:07 DEBUG (MainThread) [custom_components.echonetlite] Number of missed ECHONETLite msssages since reboot is - 7
2021-09-15 09:58:08 DEBUG (MainThread) [custom_components.echonetlite] [False, False, False, False, False, False, False, False]
2021-09-15 09:58:08 DEBUG (MainThread) [custom_components.echonetlite] polling ECHONET Instance host <IP_ADDRESS> timed out - Retry 3 of 3
2021-09-15 09:58:08 DEBUG (MainThread) [custom_components.echonetlite] Number of missed ECHONETLite msssages since reboot is - 8

I am seeing three devices here:
<IP_ADDRESS>
<IP_ADDRESS>
<IP_ADDRESS> - not getting configured
Only the first two appear to be getting detected.
The third device does not appear to be getting configured.
Which devices are which here?

These two are the same make/model of AC
<IP_ADDRESS>
<IP_ADDRESS>
This is a newer model
<IP_ADDRESS>
The top two are created fine, the .88 appears to be accepted but no entities are created. Even if added first.
I have also seen the same when adding a Air purifier.

I reckon .88 isn't ECHONET computable...

<IP_ADDRESS> - Sharp AY-L28-P Link shows echonet lite compatibility BUT it may a fault my end and is not in echonet lite mode. Will check. Thanks for your time on this.

No problem, it was something that I needed to sort out anyway as part of error handling in config flow so thanks!
From: glockpete @.>
Reply-To: scottyphillips/echonetlite_homeassistant @.>
Date: Wednesday, 15 September 2021 at 11:27 am
To: scottyphillips/echonetlite_homeassistant @.>
Cc: Scott Phillips @.>, Comment @.***>
Subject: Re: [scottyphillips/echonetlite_homeassistant] Confirmed to work with Sharp Air Conditioners (#46)
<IP_ADDRESS> - Sharp AY-L28-P Link shows echonet lite compatibility BUT it may a fault my end and is not in echonet lite mode. Will check. Thanks for your time on this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

Okay after a restart of the AC, Sharp AY-L28-P is working as expected.

Thanks let me know if any more dramas


Autocompletion for help command

When registering HelpCommand.class as subcommand, no autogeneration for the help on other subcommands is generated.
Current behaviour: typing mycommand help <TAB><TAB> falls back to default autocompletion
Expected behaviour: registered commands are shown as candidates for autocompletion
Some ideas off the top of my head:

treat the HelpCommand as special case in the completion generation
modify the HelpCommand to register subcommands (works only for runtime help generation)
require some custom subclassing of the help command with specification of the possible completions (is this possible?)

I never realized, but you’re right.
To address this, I like the first option you mentioned best (Autocompletion logic to give special treatment to HelpCommand).
Will you be able to provide a pull request for this?

I cannot do this during work-time as this is something that is not important to my employee.
IF I find the time, I can look into it in my spare time. If I start working on this, I'll let you know here. But do not expect something soon. Sorry :(

Ok, cool! Contributions always welcome!

I added the special case for HelpCommand in autocompletion generation in PR #1009 .
It also includes a new test, not sure whether the new behaviour is as intended, but it should not break any previous tests.

@NewbieOrange I merged the PR into master.
Thank you for the contribution!
It would be great if you could also add an Expect test for the new completions to the dejagnu.tests.
This would be similar to the picocompletion.exp and picocompletion-demo.exp, but for the new src/test/resources/picocompletion-demo-help_completion.bash completion script you added.
Do you think you will be able to do that?

Glad I could help. I've add a dejagnu test picocompletion-help.exp and picocompletion-demo-help.exp in #1011 .

All merged.
Thank you again for the contributions! Nice work!


Disregard sectiondef boundaries when de-duplicating adjacent memberde…

…f briefdescriptions (like "Constructor"). Addresses boostorg/json#440

Does the example build for you, with "b2 example" ?

I'm getting this:
evanl@THINKPAD-T480 ~/boost/tools/docca/example
$ ../../../b2.exe
Jamfile:33: in modules.load
*** argument error

rule glob ( wildcards + : excludes * )
called with: (  )
missing argument wildcards
C:/cygwin64/home/evanl/boost/tools/build/src/build\project.jam:1274:see
definition of rule 'glob' being called
C:/cygwin64/home/evanl/boost/tools/build/src/build\project.jam:372: in
load-jamfile
C:/cygwin64/home/evanl/boost/tools/build/src/build\project.jam:64: in load
C:/cygwin64/home/evanl/boost/tools/build/src/build\project.jam:142: in
project.find
C:/cygwin64/home/evanl/boost/tools/build/src\build-system.jam:618: in load
C:/cygwin64/home/evanl/boost/tools/build/src/kernel\modules.jam:295: in
import
C:/cygwin64/home/evanl/boost/tools/build/src/kernel/bootstrap.jam:139: in
boost-build
C:/cygwin64/home/evanl/boost/boost-build.jam:17: in module scope

On Fri, Oct 9, 2020 at 11:30 AM Vinnie Falco<EMAIL_ADDRESS>wrote:

Does the example build for you, with "b2 example" ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/boostorg/docca/pull/42#issuecomment-706338240, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAETWLWFE4RQ4QXC26YZWPTSJ5JDPANCNFSM4SJWC4QQ
.

I am investigating...

Happily, this code change should also fix boostorg/json#387, because now it is displaying the briefdescription if it has a different value than the immediately preceding briefdescription (not a different value than any of the previous briefdescriptions).


Set up docker-compose for local testing

The docker-compose should contain the images for stuff like Redis, Mongo and Postgres so that we can test this application locally. Even better would be if we could automatically set up these databases with some data, so that we can test getting some actual data.

Done!


Issue #25

Implemented currency conversion.

You're awesome! Thanks so much for your work. If you have any ideas for elements to add, create an issue and we can discuss them.


Stringify paths to unique paths correctly

The problem here is that gems like compass-sass and bootstrap-sass will
build their own Importer classes that aren't being properly uniqued.
This will resolve #79

Updated thanks @PikachuEXE

But the build failed :S

well 💩 I'll look at it

It appears that sassc/sass has changed how line_comments show up relative to this test.
It was reporting:
test/dummy/app/assets/stylesheets/css_scss_handler.css.scss
but the spec was asking for
/.+\/sassc-rails\/test\/dummy\/app\/assets\/stylesheets\/css_scss_handler.css.scss/
I did fix it as is but I believe it would actually be better to change the test to check on the first path which seems to make more sense to me.
Though that's up to you @PikachuEXE

I know nothing about the test
I am just reminding you the buidl failure :P


[BUG] Bar chart with multiple datasets is out of bounds

Expected Behavior
Chart should fit in bounds
Current Behavior
When using bar char with multiple datasets chars does not fit in bounds
Environment
"chart.js": "2.7.2"

Did you try scale.offset: true? Please provide a jsfiddle that reproduces your issue.

@simonbrunel thanks, adding offset: true for xAxes helped.

It should be true by default for bar charts

But it was't for me. I have datetime for X axis, maybe that's the reason.

Maybe that's why, feel free to re-open if the issue persists.


[Feature request][guild profiles] : copy role id from the role list

It'll be very cool if there is an option to copy role id from the role list (can be done only by those who have dev mode on)

unrelated to the plugin


in direct mode, zdb requires key to be empty

Recent change in zdb

Codecov Report

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

@@          Coverage Diff          @@
##           master    #22   +/-   ##
=====================================
  Coverage      79%    79%
=====================================
  Files          41     41
  Lines        3722   3722
=====================================
  Hits         2959   2959
  Misses        543    543
  Partials      220    220

Flag
Coverage Δ

#unittests
79% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

client/datastor/zerodb/client.go
77% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Fix tests broken by metrics naming convention change

This PR fixes a few issues introduced by #12 (including the failing tests mentioned in #14.) I've also added a CHANGELOG entry and renamed variables to reflect the new metrics names.

Thank you so so much, will cut a release shortly!


Changed code formatter workflow

Attempting to resolve failing formatter badge in README

Did not fix issue.
Closing - no need to merge


Issue with k8s.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

This is a Bug Report
I think this information comes from Katakoda. Not sure if this is the right place to report the issue.

Problem:
In Tutorial - Interactive Tutorial - Creating a Cluster, step 3, command kubectl cluster-info gives the output -
$ kubectl cluster-info
Kubernetes master is running at https://<IP_ADDRESS>:8443
KubeDNS is running at https://<IP_ADDRESS>:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

Which does not go very well with the explanation for this command which goes like - We have a running master and a dashboard. The Kubernetes dashboard allows you to view your applications in a UI.
The output of the command mentions Kubernetes master and KubeDNS (not dashboard).
Proposed Solution:
Add an explanation as per the output for the aforementioned command.
Page to Update:
https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

Thanks @rajattrt, that's a fair point.
@BenHall - is there a label that this kind of issue should have, to indicate that it applies to tutorials?
/priority backlog

Thanks for the suggestion. This has been updated and can now be closed.

/close


Could not find or load main class org.apache.zookeeper.ZooKeeperMain

Search before asking

[X] I had searched in the issues and found no similar issues.

Begin stop alert-server......
no alert-server to stop
End stop alert-server.
<IP_ADDRESS> api server is stopping
Begin stop api-server......
no api-server to stop
End stop api-server.
4.delete zk node
Error: Could not find or load main class org.apache.zookeeper.ZooKeeperMain
What you expected to happen
Cluster installation
How to reproduce
Cluster installation
Anything else
no
Version
3.0.0-alpha
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

zookepeer3.8.0

Thank you for your feedback.

This issue has been fixed in dev branch. You can try it or wait 3.0.0-beta-1 release.

I also encounter the same problem. Besides waiting for repair, is there any solution?

This issue has been fixed in dev branch. You can try it or wait 3.0.0-beta-1 release.

3.0.0-beta-1 还是存在同样的问题

This issue has been fixed in dev branch. You can try it or wait 3.0.0-beta-1 release.
@SbloodyS  meet same error in 3.0.0-beta-1

Could you describe the steps to reproduce this problem? @rayxo @GodWon

Could you describe the steps to reproduce this problem? @rayxo @GodWon

@EricGao888 @liqingwang Do you guys have time to take a look at this issue?

@EricGao888 @liqingwang Do you guys have time to take a look at this issue?

I will take a look this weekend.

Will check this issue later today. BTW, one interesting thing in Release Notes - ZooKeeper - Version 3.8.0 is that ZooKeeperMain was refactored.

https://issues.apache.org/jira/browse/ZOOKEEPER-3581
https://github.com/apache/zookeeper/pull/1255/files#diff-ac2f8dda96fddcdaf049aefa76a1ce10fc6cbc37327c860742c5e362caa998aa

https://github.com/apache/dolphinscheduler/blob/4be3b877c3c143e2b5c58c017b641fd927c0dff5/.github/workflows/cluster-test/mysql/docker-compose-base.yaml#L36-L44
The 3.8.0 version of zookeeper is used in our Ci. And it can run normally. In the cluster test of CI. install.sh is not used for installation, but the configuration file is modified after decompression. It seems the problem is in the install.sh script. @EricGao888

一下处理方式，请测有效
1）新增registryServers=$REGISTRY_ZOOKEEPER_CONNECT_STRING
2）修改export DOLPHINSCHEDULER_LIB_JARS=$DOLPHINSCHEDULER_HOME/libs/*为export

一下处理方式，请测有效 1）新增registryServers=$REGISTRY_ZOOKEEPER_CONNECT_STRING 2）修改export DOLPHINSCHEDULER_LIB_JARS=$DOLPHINSCHEDULER_HOME/libs/为export DOLPHINSCHEDULER_LIB_JARS=$DOLPHINSCHEDULER_HOME/api-server/libs/

Well done. Would you like to submit a PR to fix this?
BTW, please use English in order to make everyone understand.

一下处理方式，请测有效 1）新增registryServers=$REGISTRY_ZOOKEEPER_CONNECT_STRING 2）修改export DOLPHINSCHEDULER_LIB_JARS=$DOLPHINSCHEDULER_HOME/libs/为export DOLPHINSCHEDULER_LIB_JARS=$DOLPHINSCHEDULER_HOME/api-server/libs/

Well done. Would you like to submit a PR to fix this?
BTW, please use English in order to make everyone understand.

A PR has been submitted to fix this
thans


METRON-2036 Maven builds fail locally in HDFSWriterTest

Contributor Comments
See full context and description here - https://issues.apache.org/jira/browse/METRON-2036
Testing

Travis should succeed
Run mvn clean install from your local CLI. HdfsWriterTest should pass.
Run HdfsWriterTest from your IDE (I am running IntelliJ). All tests should pass there as well.

Pull Request Checklist
For all changes:

[x] Is there a JIRA ticket associated with this PR? If not one needs to be created at Metron Jira.
[x] Does your PR title start with METRON-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 master)?

For code changes:

[x] Have you included steps to reproduce the behavior or problem that is being changed or addressed?

[x] Have you included steps or a guide to how the change may be verified and tested manually?

[x] Have you ensured that the full suite of tests and checks have been executed in the root metron folder via:
mvn -q clean integration-test install && dev-utilities/build-utils/verify_licenses.sh

[x] Have you written or updated unit tests and or integration tests to verify your changes?

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 Have you verified the basic functionality of the build by building and running locally with Vagrant full-dev environment or the equivalent?

For documentation related changes:

n/a Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? If not then run the following commands and the verify changes via site-book/target/site/index.html:

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.
It is also recommended that travis-ci is set up for your personal repository such that your branches are built there before submitting a pull request.

+1, can you create a jira to upgrade when the new release comes out, and to remove this change?  Link it to the jira this refers to

Why did this never fail in Travis?

@ottobackwards - Ticket for upgrading JUnit and removing this fix -> https://issues.apache.org/jira/browse/METRON-2037
@nickwallen - I don't have a satisfying answer, unfortunately. I suspect it may have to do with our running with multiple cores via -T 2C in Travis, which may serendipitously provide the writer test a fresh thread that has not been interrupted, but I can't say for certain without diving into JUnit and Maven Surefire plugin code.

I don't think we need to know the answer to that question for this PR to be merged.   As long as what you have works reliability, I am happy with the fix.
Food for thought, locally I am able to reliably fail the tests no matter how many threads I run the tests with mvn test -T2C.

What version of Maven are you running?
mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T01:58:13-06:00)

Travis is using Maven 3.3.9 - https://travis-ci.org/apache/metron/jobs/506242356#L501. I would expect variability more from Surefire version differences, however, and I believe we specify explicitly in our poms.

I run mvn 3.3.9
$ mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T11:41:47-05:00)

Is anyone opposed to merging this now a few hours shy of 24, considering the implications to local development and testing?

No, go ahead


Feature request: Save settings

Whenever BSMM closes (or crashes) the settings are never saved, such as what's selected under Miscellaneous if you want to have "reinstall installed mods" enabled or a custom folder path.
When opening it again, the custom path and any ticks made don't save.
You should try saving the user's settings to a json file or something as they are changed (not when the application is closed ect)

With https://github.com/affederaffe/BeatSaberModManager/commit/f7418e7aa7c0162b2ea4536e011ab5dc919c08d6, exceptions are caught globally, so settings should always be saved on exit. I'm not a fan of saving them on change since it introduces unnecessary IO.


feat: update ACA-Py to 0.8.1

Updated acapy-client to point to "main", which points to 0.8.1

superseded by #37


bug: body is ignored when yield this.defer() is used

Is there an existing issue for this?

[X] I have searched the existing issues

Description of the bug
The body is ignored when you call yield this.defer()
only the files are passed
Steps To Reproduce
yield this.defer();

this.message({ files: [], content: 'test'}); // content is ignored, files are passed

Expected behavior
content to be passed
Screenshots
No response
Additional context
No response

It's not ignored, it's just an invalid payload. I need to make an updateMessage method for this 😅


fix sourceOrigin for  CORS requests

Fixes #583

@kul3r4 PTAL
Live here: https://cdn.ampproject.org/c/s/amp-by-example-staging.appspot.com/components/amp-form

LGTM


Details in this article are incorrect

This sentence is misleading or the stated value is incorrect: "If it finds any, then it goes and deletes the records that are marked for deletion, or ghosted, touching at most 10 pages with each execution."
This implies that the ghost cleanup removes 10 pages of deleted data approximately every 5 seconds. Based on observations, either the page limit is much higher, the cleanup task executes again immediately if it did not clean all ghost records or the statement is not clear about what is happening.
Observations:

Test: Deleting all rows from a table (clustered index) with 43291 pages
All ghost records and pages (per sys.dm_db_index_physical_stats) were gone within about 20 seconds
There were 85 transactions named "GhostCleanupTask" in the transaction log within this 20 second period
There were around 117K LOP_EXPUNGE_ROWS operations between each GhostCleanupTask transaction
Average bytes per row is 33 bytes, therefore it could be deduced that each GhostCleanupTask transaction was removing around 475 pages

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 9a868d47-f2ae-14f0-b303-ae6794a16ad6
Version Independent ID: 5d79057a-959f-73ef-6829-9111a9a98b39
Content: Ghost cleanup process guide - SQL Server
Content Source: docs/relational-databases/ghost-record-cleanup-process-guide.md
Service: sql
Sub-service: supportability
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

@rwestMSFT Thanks a lot for looking into this and clarifying that the 10 page limit per execution is PFS pages and not data pages, the documentation didn't make this distinction and I incorrectly assumed the latter.


Cantransmit script

Summary
Added a new python script to transmit
Changelist
Added scripts/cantransmit folder
Testing Done
No testing done yet. Need to test on Dyno.
Resolved Issues

Cleaning up old PRs so closing this for now, can reopen later if we want to continue work on it


TryMobileApp for Android does not work

I got sample Android project from https://tryappservice.azure.com/
After execute the app on device, you will get the error message:
{"message":"No API version was specified .... ZUMO-API-VERSION of '2.0.0' "}

Duplicate of #21.


Add IO.reduceAll

see #13

There are a few conflicts, can you take a look?

done

is something missing?

Bitte!


Update Sycamore to v0.6.0

Updates sycamore to 0.6.0, removes patch dependencies

For some reason, clicking on links causes a context error.

Found it. This line here is not being called inside a reactive scope so it can't access the context:
https://github.com/arctic-hen7/perseus/blob/main/packages/perseus/src/router.rs#L145
That's because it's called when the anchor is clicked which happens during the global scope.

Okay that makes a lot of sense for the context error. Given though that match_route can't take any arguments, how would that be fixed? I'm only providing the routes in context because of the restrictions of the Route trait...

Would you mind quickly running cargo fmt so tests pass?

Would you mind quickly running cargo fmt so tests pass?

Done

I'm only providing the routes in context because of the restrictions of the Route trait

What kind of restrictions are you thinking about? Object-safety? The way I would do it would be to use a global variable since there is only 1 router per app (albeit not being very idiomatic in Rust).
Alternatively, I could change something in Sycamore itself to prevent the router from handling click events. This way, we could attach our own click handler and manually call navigate. This is probably cleaner and we'll probably a config like this in Sycamore anyways.

I'll fix the broken links issue after this is merged as part of the fixes to #8, so this should be good to merge if you're done with it.

Alright. I'm done then.

Thanks so much, this is really helpful!


Passing HtmlTag as a property to the JSX component?

Heyo!
Having great fun using this package in my project but I'm trying to use the HtmlTag types to pass as props, I would of assumed that ...rest would do the trick but it does not seem to, The types are happy from typescript end so I am unsure why its not appending the attributes.
type JSXKeys = keyof JSX.IntrinsicElements['div'];
type JSXValues = JSX.IntrinsicElements['div'][JSXKeys];

type ChatMessageItemProps = {
	message: string;
} & { [K in JSXKeys]?: JSXValues };

export const ChatMessageItem = html.compile(
	({ message, ...rest }: ChatMessageItemProps) => {
		console.log('went here');
		return (
			<div class="p-4" {...rest}>
				{message}
			</div>
		);
	}
);

And usage
ChatMessageItem({ message: 'token', 'sse-swap': 'token_data' })

Any help appriciated!

Hey @ArthurTimofey, due to the nature of html.compile and its Proxy usage, you cannot use the spread operator inside Html.compile because it has to know all properties when "compiling" and the spread operator don't invote proxy methods.
If you want to keep using the compile option, you will have to specify all properties manually. Your example is a pretty small component wich won't give any speed benefits by using Html.compile, so I'd advise to drop it for better DX.

I've also improved Html.compile section.
https://github.com/kitajs/html/tree/master#compiling-html

@arthurfiorette thanks for clarifying that, just noticed we have the same first names haha. I suppose I am using Html.compile so that I can have reusable chunks of html at all times, so for this instance where I am using HTMX to render a ChatMessageItem where by I can modify the behaviour on this element through ...rest in order to do interesting things like having different attributes trigger different behaviours of that chat item. I guess the correct approach would be to build html strings outside of html package and use renderToString from react in order to pass these props. Coming from react world maybe my tendency of abstracting too much is an issue but I'm just playing around for now. It's a bit of mental shift as to how things should be done.


Merging Changes from CSE115A to Production Backend

Reorganized the folders/files in the backend to be more readable.
Refactored the CSE115A code to update the collection busStop with seconds until the bus arrives (or null) instead of true or false. Times are calculated by estimating it takes 1.75 minutes to get from one stop to another (May need to be increased later (line 50 of soonBusStop.js)).

This looks good, could you add some screenshots of some tests showing the functions work? Eg. before and after of firebase with a description of what was processed

Hey, just to let you know, now this pull request has two things. The initial backend ETA system explained before and new frontend features to display the ETAs.
This is what it looked like before:

And this is what it looks like now:

What I did was add a bunch of bus stop markers to the routes based on the coordinates given for the bus stops. If a user hovers over the bus stop icons they can see the estimated time of arrival of buses at that stop. This is specifically for the loop buses and their stops.


✋ [MEMBER] - Mogost

Why do you want to join?
I contribute to some open-source projects around and about Django.
In addition to this, my JazzBand issue appears in the @django-commons description.
I like the idea of @django-commons.
Which project(s) are you looking to contribute to?
There aren't many projects here yet, but I think when there are more I'll be able to contribute.
Code of Conduct

[X] I agree to follow Django Commons's Code of Conduct

Welcome aboard! Thank you for your work in the community too!

@tim-schilling done!


How can i have image and file upload option

I am having currently only image upload option can't upload pdf
filetype: [DocumentPickerUtil.images()],
please share sample code if some body has done it..
also i am using fetch to send file to server how to do that with fetch ??

Same issue with me. I want to upload .csv file. How could i do this ?

You can first setup Document picker to allow for PDFs by doing DocumentPickerUtil.pdf() for the filetype. As for sending it to a server via fetch I would say the easiest way would be to base64 encode it so it just becomes a string and send it in your fetch request.
 DocumentPicker.show({
     filetype: [DocumentPickerUtil.pdf()],
 }, (error, response) => {
     this.setState({ attachment: response });
     let path = (Platform.OS == 'ios')
                ? response.uri.replace('file://', '')
                : response.uri;
     RNFetchBlob.fs.readFile(path, 'base64')
    .then((encoded) => {
        // Send it to a server
    })
    .catch((error) => console.error(error));
});

I think this is question better suited for stackoverflow; you could use a number of libraries or the built-in blob support in RN, but it seems it stopped working at some point. I'll close this because it's not a bug in this library, thank you


Docker file

Add Docker

docker run -it boostchicken/saml-to:latest init
docker run -it boostchicken/saml-to:latest assume
To Test the Dockerfile

Awesome thank you, I'll get the CD of this to Dockerhub put together

For sure.  I would push the image to both github and docker hub, i do that with all my software and you would be surprised how many people don't have Docker Hub


[polymer-editor-service] Directories with spaces cause problems

It looks like we're getting the paths as url encoded strings and we need to convert them into filesystem encoded strings.
tl;dr: /hello world/index.html shouldn't turn into /hello%20world/index.html on a filesystem path.
Originally posted at Tue, 18 Oct 2016 16:06:59 GMT at https://github.com/Polymer/polymer-editor-service/issues/9

It looks like this may be a purely vscode problem. Need to verify in atom.
Originally posted at Thu, 20 Oct 2016 16:29:09 GMT at https://github.com/Polymer/polymer-editor-service/issues/9#issuecomment-255157301

This is fixed at master
Originally posted at Thu, 30 Nov 2017 02:24:32 GMT at https://github.com/Polymer/polymer-editor-service/issues/9#issuecomment-348062548


Add beacon distance approximation

@willfisher I get the distance data, but it's not really very accurate...

I will try and work on it. I attached a good class with everything you
should need, that's not all mixed up with the rest of the vision code.
All you need to do is call the update method each frame and pass it the
height (in pixels, as it appears in the frame) of whatever reference object
on the beacon, or the beacon itself, you choose. Image a vertical line
going straight through the center of the beacon, the closer the reference
object is to that line (for example the height along the direct center of
the front of the beacon), the more accurate the distance will be. I also
think, but I'm not sure, that it is more accurate when the beacon is
centered on the frame; if so I can work on fixing that.
On May 11, 2016 12:35 PM, "Arthur Pachachura"<EMAIL_ADDRESS>wrote:

Closed #89 https://github.com/lasarobotics/FTCVision/pull/89.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/lasarobotics/FTCVision/pull/89#event-657521008

Made a mistake on the file I sent earlier. Fixed class is attached.
On Wed, May 11, 2016 at 6:18 PM, Retro Chicken<EMAIL_ADDRESS>wrote:

I will try and work on it. I attached a good class with everything you
should need, that's not all mixed up with the rest of the vision code.
All you need to do is call the update method each frame and pass it the
height (in pixels, as it appears in the frame) of whatever reference object
on the beacon, or the beacon itself, you choose. Image a vertical line
going straight through the center of the beacon, the closer the reference
object is to that line (for example the height along the direct center of
the front of the beacon), the more accurate the distance will be. I also
think, but I'm not sure, that it is more accurate when the beacon is
centered on the frame; if so I can work on fixing that.
On May 11, 2016 12:35 PM, "Arthur Pachachura"<EMAIL_ADDRESS>wrote:

Closed #89 https://github.com/lasarobotics/FTCVision/pull/89.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/lasarobotics/FTCVision/pull/89#event-657521008

Oops this is very old, I just saw the close message. Anyways, if you ever work on it read above, here's the class: http://pastebin.com/kNaZSnJS


Optimize Compiled binary size

Shopify sets a limit for Compiled binary size of 256 kb, and I'm having trouble because I haven't put a single line of code in and the Compiled binary size is already 155kb.
Below is the content of my run.graphql file.
query Input {
  cart {
    lines {
      id
      attribute(key: "_my_key") {
        key
        value
      }
      cost {
        amountPerQuantity {
          amount
        }
      }
      quantity
      merchandise {
        __typename
        ... on ProductVariant {
          id
          product {
            id
          }
        }
      }
    }
  }
  discountNode {
    metafield(namespace: "$app:function", key: "function-configuration") {
      value
    }
  }
}

I have done measurements and found that with just 3 lines
 cost {
        amountPerQuantity {
          amount
        }
      }

it has increased 40kb,
Please provide a solution or guide me to solve this, I have a list of functions that need to be implemented and "40kb" took up 50% of what I wrote.
Thank you !

Hi @thangpqgm  --
We have tips on reducing Rust binary size here.


Integration testability -- constructors / method arguments should expect interfaces rather than concrete class implementations

The current implementation of this library makes testing within a consuming application difficult due to the absence of interfaces.
As an example, if I want to utilize Google_Service_Calendar it appears that I must always be able to connect to Google using valid credentials. Furthermore, the tests require real connections to the service in question. The means that any tests I put in my application are end-to-end tests or integration tests rather than unit-tests. I would like to be able to actually unit-test my code that integrates with Google :-P.

There are definitely ways to mock these calls out.  Here is one way that should work:
class Google_CacheTest extends PHPUnit_Framework_TestCase
{
  public function testInMemoryCache()
  {
    // mock the Google client object
    $mockClient = $this->getMock('Google_Client');
    // mock the logger
    $mockLogger = $this->getMock('Psr\Log\LoggerInterface');
    $mockClient->expects($this->any())
      ->method('getLogger')
      ->will($this->returnValue($mockLogger));

    // Create the PSR7 Response object you want to receive
    // This can also be a mock object, if you'd like.
    $response = new GuzzleHttp\Psr7\Response(
      200,
      [],
      '{"calendar":"fake"}'
    );

    // Ensure our $mockClient returns this response
    $mockClient->expects($this->once())
      ->method('execute')
      ->will($this->returnValue($response));

    // Create the calendar service using our $mockClient
    $calendar = new Google_Service_Calendar($mockClient);

    // Make the "api call"
    $response = $calendar->calendars->get('fake-calendar-id');

    // Decode the response! It will contain the body we specified in the response above.
    $mockReponse = json_decode((string)$response->getBody(), true);
    $this->assertEquals("fake", $mockReponse['calendar']);
  }
}

You're creating a mock, which needs you need to mock it's methods. You are not mocking all it's methods, so it doesn't realize that it's in batch mode, and is returning a Response instead of a Request object.

Thanks for replying @bshaffer, How should I mock the batch mode? since it's created by Google\Service\Gmail instance inside the controller?

I think it should be sufficient to mock the function shouldDefer on the Google client object to return true

I think it's because the [parseResponse](https://github.com/googleapis/google-api-php-client/blob/ea2d79cc006ed19dc7a148792b978bc16d1622d1/src/Http/Batch.php#L143) method, can't find way to make it match with the parse :
$someMock = '
--staticMe
Content-Type: application/http
Content-ID: response-batch_348294240904

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer

{
  "id": "348294240904",
  "threadId": "348294240904",
  "labelIds": [
    "UNREAD",
    "CATEGORY_UPDATES",
    "INBOX"
  ],
  "snippet": "qwerty<EMAIL_ADDRESS>somekdfjldkf",
  "payload": {
    "partId": "",
    "mimeType": "multipart/alternative",
    "filename": "",
    "headers": [
      {
        "name": "Delivered-To",
        "value"<EMAIL_ADDRESS>      },
     ..other_header..
    ],
    "body": {
      "size": 0
    },
    "parts": [
      {
        "partId": "0",
        "mimeType": "text/plain",
        "filename": "",
        ...restofparts
        ],
        "body": {
          "size": 4726,
          "data": "fkdfjkadsfasf-fdkljaklsdfjalsd-sdfkjaslkfdjakls-dfasdf-dsfadsf-dsfdasf-fdsa-dfs-dfas-PGRpdiBzdHlsZT0iZm9udC1zaXplOiAyNHB4OyI-PGE-dfsa-PC90YWJsZT4gPC9kaXY-dsfa-asfd-UGVyaWtzYSBha3Rpdml0YXM8L2E-PC9kaXY-PC9kaXY-"
        }
      }
    ]
  },
  "sizeEstimate": 11805,
  "historyId": "611098",
  "internalDate": "1663004975000"

--staticMe--

';

$mock_response = new GuzzleHttp\Psr7\Response(
          200,
          [''Content-Type' => 'multipart/mixed; boundary=staticMe''],
          $someMock
  );
 $this->gclient->expects($this->any())->method('execute')->willReturn($mock_response)

I think it would be helpful if this client library has more detail explained docs.


Fix parse_size to use u64 rather than usize for better 32-bit support

Using usize limits 32-bit platforms to operate only on sizes of 4GiB or
less. While 32-bit platforms only have 4GiB of addressable memory, not all
operations require the data to be entirely in memory, so this limitation
can be lifted if we use u64 instead of usize.
The following utilities have been adjusted to use this new type where possible -

stdbuf
od
tail
head
du
dd
truncate (Thanks @Gilnaa)
split (Thanks @Gilnaa)
sort (Thanks @Gilnaa)

The most obvious utility that benefits from this change is dd, it's not uncommon
to perform >4GiB dd operations on disks/files - and without this PR 32-bit platforms
cannot currently do that with the current state of uutils/coreutils.
Ideally the function would return u128 and the utilities would truncate it
to usize / u64 as they see fit, but I thought it was a bit excessive and
couldn't think of reasonable uses for it (u64 goes up to 16 exabytes).
Note that technically this PR actually makes 128-bit platforms worse
because u64 is smaller than usize on those platforms, but I don't think
that's too big of a problem

Great idea to support more than 32 bits on those platforms and nice work on the refactoring! This PR made me wonder about that function, because there isn't really a one size fits all solution here. All the try_infos speak to that. So, maybe we should make it generic (much like parse)?
I'm thinking something like:
// FromStr is required to use the parse method on str
// One and CheckedMul are from the num_traits crate
pub trait Size : FromStr + Clone + One + CheckedMul {}
impl Size for u8 {}
impl Size for u16 {}
impl Size for u32 {}
impl Size for u64 {}
impl Size for u128 {}
impl Size for usize {}
// maybe even signed integers too

pub fn parse_size<T: Size>(size: &str) -> Result<T, ParseSizeError> {}

// and then call with
parse_size::<usize>("10K");

Maybe that would make it too complicated though. Anyway, I think what you got here is already a vast improvement. Let me know what you think!

@tertsdiepraam maybe it's possible to utilize T: TryFrom<u128>, seeing as internally that's the type that the function is using anyway.
This would still result in the caller having to choose the "correct" type, which is probably not what you want, because they would naively choose usize.

maybe it's possible to utilize T: TryFrom,

Yeah that might be better than the num_traits solution.

seeing as internally that's the type that the function is using anyway.

Hmm, if that's the case then my suggestion just hides the conversion so maybe there wouldn't be much benefit. The only benefit is then that the function can return the error for "too large" instead of delegating that to the utils.

because they would naively choose usize.

That is a concern indeed. However, these values are often passed to other functions which accept a specific type. So that would most likely inform the type that is being chosen. So if it's used as the capacity for a Vec, it would be usize, but if it's compared with Metadata::len(), the dev would probably pick u64.

it needs merging

Waiting on #2906 and #3066 to merge first, since @jfinkels mentioned it's gonna conflict

@omertuc they have been merged now :)

Yep, having a bit of trouble with the split conflicts. Will probably fix today

Should be good to merge, as far as I'm concerned

one of the tail test is failing with:
Diff < left / right > :
<"tail: Insufficient addressable memory"
>"tail: invalid number of bytes: '1000G': Value too large for defined data type"

and please run rustfmt :)

Tests should pass now

Just a small rustfmt:
Error: ERROR: `cargo fmt`: style violation (file:'tests/by-util/test_head.rs', line:302; use `cargo fmt "tests/by-util/test_head.rs"`)
Error: ERROR: `cargo fmt`: style violation (file:'tests/by-util/test_split.rs', line:337; use `cargo fmt "tests/by-util/test_split.rs"`)
Error: ERROR: `cargo fmt`: style violation (file:'tests/by-util/test_truncate.rs', line:323; use `cargo fmt "tests/by-util/test_truncate.rs"`)

Huh, cargo fmt and my IDE didn't do anything to these files, had to explicitly run rustfmt <file_names to fix them. Oh well

Seems that we have a small clippy warning:
error: useless conversion to the same type: `u64`
   --> src/uu/dd/src/dd.rs:525:21
    |
525 |             let i = seek.unwrap_or(0).try_into().unwrap();
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `-D clippy::useless-conversion` implied by `-D warnings`

Was working on increasing coverage. Oh well, separate PR. Thanks for the review

sure, it can be done in a different PR :)


Memory address check does not account for loop iterations

Hello @rbertran ,
There seems to be an issue with the memory addresses when the memory size exceeds the values reached within 1 iteration of the code loop.
This scenario has a small memory (uses  memory.GenericMemoryStreamsPass([[1, 1024, 1, 64, 1]])) works correctly and has the following memory access pattern:
 533500: system.cpu T0 : @rel_branch_3+4    : fsd ft1, 640(ra)           : FloatMemWrite :  D=0x0000000000000000 A=0x80003280
 533500: system.cpu T0 : @rel_branch_3+8    : sd t2, 704(ra)             : MemWrite :  D=0x0000000000000000 A=0x800032c0
 620500: system.cpu T0 : @rel_branch_3+12    : mul a0, s1, s0             : IntMult :  D=0x0000000000000000
 620500: system.cpu T0 : @rel_branch_3+16    : fld fa1, 768(ra)           : FloatMemRead :  D=0x0000000000000000 A=0x80003300
 620500: system.cpu T0 : @rel_branch_3+20    : lb a1, 832(ra)             : MemRead :  D=0x0000000000000000 A=0x80003340
 620500: system.cpu T0 : @rel_branch_3+24    : fld fa2, 896(ra)           : FloatMemRead :  D=0x0000000000000000 A=0x80003380
 620500: system.cpu T0 : @rel_branch_3+28    : mul a2, a5, a3             : IntMult :  D=0x0000000000000000
 620500: system.cpu T0 : @rel_branch_3+32    : beq a7, a6, 4              : IntAlu :
 620500: system.cpu T0 : @rel_branch_4    : sb a0, 960(ra)             : MemWrite :  D=0x0000000000000000 A=0x800033c0
 620500: system.cpu T0 : @rel_branch_4+4    : mul a4, s3, s2             : IntMult :  D=0x0000000000000000
 621000: system.cpu T0 : @rel_branch_4+8    : bne s4, a1, 4              : IntAlu :
 621000: system.cpu T0 : @rel_branch_5    : flw fa3, 0(ra)             : FloatMemRead :  D=0x0000000000000000 A=0x80003000

You will notice that the memory addresses loops back to 0x80003000 after 0x800033c0, since the size of the memory is 1024 bytes.
The next scenario errors outs with incorrect memory address. It uses the following: memory.GenericMemoryStreamsPass([[1, 1024*1024, 1, 64, 1]])
At the end of the first iteration of execution, the memory address limit is not reached which itself is fine. The last few addresses are shown below (note: the starting address was 80003000, so this has covered an address range of 4800, which is less than the total available) :
4747500: system.cpu T0 : @rel_branch_44+24    : sd s8, 1920(ra)            : MemWrite :  D=0x0000000000000000 A=0x80007780
4747500: system.cpu T0 : @rel_branch_44+28    : fadd_s fs8, fs4, fa0       : FloatAdd :  D=0x0000000000000000
4747500: system.cpu T0 : @rel_branch_44+32    : sb zero, 1984(ra)          : MemWrite :  D=0x0000000000000000 A=0x800077c0
4755500: system.cpu T0 : @rel_branch_44+36    : addi ra, ra, 2047          : IntAlu :  D=0x00000000800077ff
4755500: system.cpu T0 : @rel_branch_44+40    : c_addi ra, ra, 1           : IntAlu :  D=0x0000000080007800
4756000: system.cpu T0 : @rel_branch_44+42    : fmul_s fa7, fs0, fs10      : FloatMult :  D=0x0000000000000000
4833000: system.cpu T0 : @rel_branch_44+46    : sd t1, 0(ra)               : MemWrite :  D=0x0000000000000000 A=0x80007800

This is followed by:
4833500: system.cpu T0 : @rel_branch_44+56    : addi ra, ra, 2047          : IntAlu :  D=0x0000000080007fff
4833500: system.cpu T0 : @rel_branch_44+60    : addi ra, ra, 2047          : IntAlu :  D=0x00000000800087fe
4833500: system.cpu T0 : @rel_branch_44+64    : addi ra, ra, 2047          : IntAlu :  D=0x0000000080008ffd
4833500: system.cpu T0 : @rel_branch_44+68    : addi ra, ra, 2047          : IntAlu :  D=0x00000000800097fc
4833500: system.cpu T0 : @rel_branch_44+72    : addi ra, ra, 2047          : IntAlu :  D=0x0000000080009ffb
4833500: system.cpu T0 : @rel_branch_44+76    : addi ra, ra, 2047          : IntAlu :  D=0x000000008000a7fa
4833500: system.cpu T0 : @rel_branch_44+80    : addi ra, ra, 2047          : IntAlu :  D=0x000000008000aff9
4833500: system.cpu T0 : @rel_branch_44+84    : addi ra, ra, 2047          : IntAlu :  D=0x000000008000b7f8
4834000: system.cpu T0 : @rel_branch_44+88    : addi ra, ra, 2047          : IntAlu :  D=0x000000008000bff7
4834000: system.cpu T0 : @rel_branch_44+92    : c_addi ra, ra, 9           : IntAlu :  D=0x000000008000c000

which is increasing the addresses by a huge chunk and thus wasting some space. Not sure if this is for alignment (to 4096 which is default).
After this in the next iteration we start from address 8000c000, which is okay. But now the check for address less than max size seems to go haywire. This check does not seem to account for the loop iteration, so it always seems to be within the address range.
This leads to a point (in some Nth iteration) when address hits the maximum and does not loop back:
163481500: system.cpu T0 : @rel_branch_39+12    : c_addi ra, ra, 1           : IntAlu :  D=0x0000000080103000

And this results in a fault.
Please let me know if i can provide more details - I'm not sure if my details convey the problem completely. In short I believe that the problem is that the memory address check, which should loop the memory address back to 0 when it crosses the max value, does not seem to take the iteration number multiplicative factor into account, thus it does not realize that the actual memory address has crossed the max bound.
Thanks!

After reproducing  the problem I found the issue: the updating of the base register was wrong, as you pointed out. We don't need to add such gap between iterations because the base register have been modified.  I'll provide an update once CI checks finish later today.

This leads to a point (in some Nth iteration) when address hits the maximum and does not loop back

The stream pass assumes that you'll be continuously executing the loop. So, make sure that you generate an endless loop. To do so use the endless=True parameter during wrapper creation and
avoid resetting the state on each iteration  (reset=False), which is the default behavior.  E.g.:
cwrapper = get_wrapper('RiscvTestsP')
synth = Synthesizer(
    self.target,
    cwrapper(
        reset=False
        endless=True),
    value=0b01010101,
)

Loop will do not end, but you can control the execution externally.

Thanks Ramon. Yes, I am running the endless loop and externally killing it gracefully after a few millions of instructions. I think the base register fix should solve "the failure in some ith iteration" which I described. I will confirm once your fix is available. Thanks again!!

Repositories and packages updated! ;)

Hi Ramon, it works perfectly now, thanks!! Closing this issue.

Hi Ramon,
I am reopening this issue because there are still some scenarios where there seems to be some trouble.
I am able to run without errors for the following:
memory.GenericMemoryStreamsPass([[1, 32768, 1, 128, 1],[2, 32768, 2, 128, 2]]),

But I hit memory address related errors for:
memory.GenericMemoryStreamsPass([[1, 32768, 1, 128, 1],[2, 32768, 6, 128, 2]]),

The difference between the above 2 is the percentage of time the 2nd stream is executed is higher in the latter case.
I am unsure if this is because of some ratio limitations, or are the base register checks you mentioned earlier getting messed up when there are multiple streams.
Not sure if this helps, but this is how the bottom of the assembly (before the loop ends, looks):
ADDI x2, x0, 0x0
ADDI x7, x7, 0x1
ADDI x1, x1, 0x80
LUI x31, 0
ADDIW x31, x31, 0x3
BLT x7, x31, stream1guard
stream1_pcrel_3:AUIPC x1, %pcrel_hi(stream1)
ADDI x1, x1, %pcrel_lo(stream1_pcrel_3)
ADDI x7, x0, 0x0
stream2_pcrel_4:AUIPC x3, %pcrel_hi(stream2)
ADDI x3, x3, %pcrel_lo(stream2_pcrel_4)
ADDI x4, x0, 0x0
stream2_pcrel_5:AUIPC x5, %pcrel_hi(stream2)
ADDI x5, x5, %pcrel_lo(stream2_pcrel_5)
ADDI x6, x0, 0x0
stream1guard:ADDI x0, x0, 0x0

I was unable to reproduce your error, but I detected something wrong when looking at the code generated (the one you pasted). The end of the bounds checking code of stream1 (BLT x7, x31, stream1guard ) was jumping all the bounds checking code of the other streams, and I think that in some scenarios that can lead to memory errors. The repos/packages will be updated in next minutes.

repos updated. Let's see if that fixes the issues. If not, next time provide the set of passes with the actual inputs so that I can reproduce exactly your scenarios.

Hey Ramon, It seems to be working fine after your fixes. Thanks, will close the issue.


Is there a way to upgrade the existing model from version 1.1 to 1.4?

Self Checks

[X] I have searched for existing issues search for existing issues, including closed ones.
[X] I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
[X] [FOR CHINESE USERS] 请务必使用英文提交 Issue，否则会被关闭。谢谢！:）
[X] Please do not modify this template :) and fill in all the required fields.

1. Is this request related to a challenge you're experiencing? Tell me about your story.
Is it technically feasible? If so, could you provide a request for an upgrade tool?
2. Additional context or comments
No response
3. Can you help us with this feature?

[X] I am interested in contributing to this feature.

huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

@AnyaCoder
I mean, I currently have a model fine-tuned on version 1.1. Can it be converted in some way to work for inference in version 1.4?
Thanks!


Format with timezones doesn't work as expected

Hello, I'm having an issue with moment.js.
I have this in my code:
moment.tz.setDefault('UTC');
Then I fetch a date field from my backend and try to convert it to local timezone in the front this way:
moment(this.model.get('start_date')).tz(USER_TIME_ZONE).format(this.momentDateFormat)
But it still gives me the same hour as in UTC.
If I do this, it works correctly:
moment.utc(this.model.get('start_date')).tz(USER_TIME_ZONE).format(this.momentDateFormat)
So it seems that moment is ignoring the default UTC settings... Writing the prefix function "utc" everytime seems a bit strange so maybe I'm doing something wrong.
Thank you for your amazing library.
Miguel.

Hi Miguel,
I was having a similar problem and found I was parsing the date wrong. See if this change works for you:
var format = 'YYYY-MM-DD HH:mm:ss'; // Your date format used
moment.tz(this.model.get('start_date'), format, USER_TIME_ZONE).format(this.momentDateFormat);

See also:

Moment Timezone Docs: Parsing in Zone

Well, setDefault changes the timezone after the moment is created, and you want to specify that the input string/moment is in utc, for which you have to use moment.utc. Also you might consider what @operf said :)


Suggeston: Please add django-base-site

Please consider adding https://github.com/epicserve/django-base-site/. I'm the author and I try to keep it updated. If not considered worthy, then please provide friendly feedback on what you would like to see changed.

Looks like a cool package. Thx for pinging us. Added and will be featured on Django News newsletter in the coming weeks.

@wsvincent,
Gulp! 😳
I've already had one bug reported since you added it that I fixed. Hopefully, I can find time to keep on improving it.


Testing, please ignore. (xuwnzq)

This is a bug bounty test.. Please DO NOT APPROVE THIS! (xuwnzq)

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.xuwnzq kfoke seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Edit Alias enhancement suggestion

Rather than a content box full of addresses, a 2 column table of addresses and descriptions would be more humanly useful.

This is a good idea, and would be helpful in better tracking what things are. However, this would require an ArrayField within an ArrayField which isn't possible given the design of the current model structure.
I did a mock up of what it might look like regardless though:


On Android device, when a user first joining the room, its resolution is very low until 10-15 seconds.

I set the high resolution, adaptiveStream to false and publish video track with setting simulcast to false.
However, on Android device, when a user first joining the room, its resolution is very low until 10-15 seconds.
How can I fix the problem? thx.

please do not file duplicate issues across repos.


Go fmt wallet.go

Coverage remained the same at 30.618% when pulling 1083f01be522f455a582915156b60f69448b03c9 on unable_to_spend_money_fix into ba4e2c9a1668ec4aadd98c060337673ebc429406 on master.


Why would Firebase developers be interested in this project?:
1, probably the only wrapper that deals with virtually any complex data type (nested array/object(map) type)
2. type everything:

document path type, collection path type, collection group path type and auto-generate sub collection path type
typed all Firestore.FieldValue: arrayUnion, arrayRemove, serverTimestamp and increment
safeguard against orderBy limitation.
prevent users from writing unnecessary values (especially undefined because of typescript partial member type)
prevent users from writing stranger members into the database.

easiest to set up
it is virtually impossible to make any typing mistake with the wrapper.

Have you added a .opensource/project.json file to your site: Yes

@tylim88 added it! It should appear on the site within 24 hours.


Geserver raises error executing apache_logs.pyc

What I Found:

Log is empty in http://geserver.domain/admin/apache_logs.html
"Status: 500 Condition Intercepted" on http://geserver.domain/cgi-bin/admin/apache_logs.pyc?type=access
In /opt/google/gehttpd/logs/error_log

[Tue Jun 13 10:42:22 2017] [error] (8)Exec format error: exec of '/opt/google/gehttpd/cgi-bin/admin/apache_logs.pyc' failed
[Tue Jun 13 10:42:22 2017] [error] [client 192.168.xxx.xxx] Premature end of script headers: apache_logs.pyc

What I Tried:

I copied an apache_logs.py file from the source code into /opt/google/gehttpd/cgi-bin/admin/
and replaced .pyc with .py in /opt/google/gehttpd/htdocs/admin/apache_logs.html.

This time apache_logs.html showed logs as expected.
(Ubuntu 14)

Closing because this script no longer exists.


Can I access cache from multiple python scripts/threads

Hi is it safe to access cache without custom lock from multiple python script/celery tasks?
Thanks

In general, unless a library explicitly mentions that it is thread safe, it's best to assume that it isn't. I haven't done any actual inspection of the code to determine its thread safety, but I would suspect that there are places where it is not thread safe.


Detect .src/.dat preferably from content

KRL files are easiely recognized. Even if the user does set
g:filetype_src or g:filetype_dat one may very well profit from file
content inspection. New files will always default to g:filetype_* if
present.

Sorry, I was mislead by FTr(), where it is the other way around.
export def FTr()
var max = line("$") > 50 ? 50 : line("$")
for n in range(1, max)
# Rebol is easy to recognize, check for that first
if getline(n) =~? '<REBOL>'
setf rebol
return
endif
... and so on...
# Nothing recognized, use user default or assume Rexx
if exists("g:filetype_r")
exe "setf " .. g:filetype_r
else
# Rexx used to be the default, but R appears to be much more popular.
setf r
endif
enddef