Give a useful error if sexpdata dep is not installed

See the unfinished TODO from #235, this seems to be catching people off guard so it ought to get done soon. I'll try to find time.
I'm also about to send a PR for the doc site to try to make it more obvious in the installation instructions.

:+1:


Specify a list of usernames to ignore

What would you like to be added:  completely ignore liking images and follows from certain users
Why is this needed: if you have a business, you don't want to interact with the competition

I’m pretty sure this already exists. Just rename blacklist.example to blacklist.txt and add the usernames.

https://github.com/GramAddict/bot/blob/f1548e7ffb088b7bfa88919b9c326bbeaa0d75e2/GramAddict/core/storage.py#L14
I’ll have to check later to make sure it’s all good since I’ve not used it; but it appears to be in the code.

Thanks Philip, i'll check if it works and reply here

I've confirmed this is working with testing/code.


Allow multiple URL for the same reference

Hey there, when i try to short an URL that already exist it gives me the previous shortned URL, there is a way shorten "already-shortned" links?
eg google.com -> http:// sh.rt/1a && http://sh.rt/344bfsha32

Sure. Just take a look into the configuration file user/config.php within your installation. Look for this:
/** Allow multiple short URLs for a same long URL
 ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
 ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
define( 'YOURLS_UNIQUE_URLS', true );

Read the comment block. Then edit the file:
Replace
define( 'YOURLS_UNIQUE_URLS', true );

with
define( 'YOURLS_UNIQUE_URLS', false );

Easy, isn't it? ;-)

yes, thanks man!


RFC: Reduce dependencies and support rustc 1.63

removes the number of dependencies from 66 to 48
supports rustc 1.63 from debian stable

Support of debian stable's compiler makes it easier to integrate a2ltool in a debian based CI.

Sure, why not.


Refactor TFJobStatus in CRD API

Hi, this is a separate tracker/discussion issue from https://github.com/tensorflow/k8s/issues/283.
Motivation
As we discussed, TFJobStatus need to be more specified to tracking individual TF job status, here is our considerations:

Different data/model parallel training

Synchronous and Asynchronous

Mange the Pod/Service lifecycle more efficient

Restart or ignore failed Pod due to different strategies

Give us more preciser information to make good control of the whole process

What we have now
There is a little confusing about TFReplicaStatus what we have now:
type TFReplicaStatus struct {
	TFReplicaType `json:"tf_replica_type"`

	// State is the overall state of the replica
	State ReplicaState `json:"state"`

	// ReplicasStates provides the number of replicas in each status.
	ReplicasStates map[ReplicaState]int
}

TFReplicasStates just tell us how many Replicas of each state (Running, Failed, Succeeded), it is hard to maintain and seems useless to user (e.g. which one is running?)
I think user care about the whole status of a TFJob:

Does this Job start training?
And the status of each "job_name + task_index"

Proposed Design
Add TFClusterStatus in TFJob.Status:
// TFClusterStatus represents a TensorFlow cluster status.
// See: https://www.tensorflow.org/deploy/distributed
//      https://www.tensorflow.org/api_docs/python/tf/train/ClusterSpec
// It is a map from "job_name + task_index" to status (submitted, created, failed):
// chief worker is worker_0 by default (i'm not sure about this)
// {
//     "worker_0": "created",
//     "worker_1": "created",
//     "worker_2": "submitted",
//     "worker_4": "failed",
//     "ps_0": "created",
//     "ps_1": "submitted",
// }
type TFClusterStatus map[string]string

This topic is open to discuss, so please show your ideas and let's make it clearer together :)
@jlewi @Jimexist @DjangoPeng @gaocegege @ddysher @mqliang @mitake WDYT?

@jlewi @gaocegege How about this structure for TFJobStatus:
type TFJobStatus struct {
	// Status for chief worker
	// The number of actively running chief worker.
	ActiveChief int32 `json:"activeChief"`
	// The number of chief worker which was completed.
	CompletedChief int32 `json:"completedChief"`
	//The number of chief worker which was failed.
	FailedChief int32 `json:"failedChief"`

	// Status for workers (includes chief worker)
	// The number of actively running workers.
	ActiveWorkers int32 `json:"activeWorkers"`
	// The number of workers which were completed.
	CompletedWorkers int32 `json:"completedWorkers"`
	//The number of workers which were failed.
	FailedWorkers int32 `json:"failedWorkers"`

	// Status for PSs
	// The number of actively running PS.
	ActivePSs int32 `json:"activePSs"`
	//The number of PSs which were failed.
	FailedPSs int32 `json:"failedPSs"`
}

@ScorpioCPH How about using Running instead of Active?
There is only one chief worker, so only one of ActiveChief, CompletedChief and FailedChief are 1, and others would be 0. Am I right?

LGTM

only one of ActiveChief, CompletedChief and FailedChief are 1, and others would be 0.

Yes. And the same as local job:
	// Status for local job
	// The number of actively running local job.
	ActiveLocalJob int32 `json:"activeLocalJob"`
	// The number of local job which was completed.
	CompletedLocalJob int32 `json:"completedLocalJob"`
	//The number of local job which was failed.
	FailedLocalJob int32 `json:"failedLocalJob"`

What is a LocalJob?
Why not
type TFJobStatus struct {
       ReplicaStatus []ReplicaStatus
}

type ReplicaStatus struct{
    Name string
    Active int32
    Completed int32
    Failed int32
}

This seems more flexible in terms of supporting changes to the Replica type (see #64).

What is a LocalJob?

LocalJob is a non-distributed training job.
I'm not sure it is a good pattern to keep information in deeper layers. I would think it might be a little bit tough to get the information directly and explicitly.
And about flexible and changing to the Replica type, Can you give a example about the changes?
And as we use TFJob to represent the TensorFlow jobs, so keep the status more explicitly maybe better.

LocalJob is a non-distributed training job.
What does a non-distributed job require special handling? Why isn't that just a job with a single chief, no workers and no PS?

And about flexible and changing to the Replica type, Can you give a example about the changes?
And as we use TFJob to represent the TensorFlow jobs, so keep the status more explicitly maybe better

The proposal in #64 is to get rid of ReplicaType and introduce different properties to control different behaviors such as restart behavior rather than the inferring this based on ReplicaType.
One motivation for this is to add replicas to do evaluation which I belief is part of the Estimator API (#61).
If we define an Enum of replica types and explicitly have fields for each replica type, then any time TF introduces a new type of process (e.g. eval worker) than our API has to change.

I'm not sure it is a good pattern to keep information in deeper layers. I would think it might be a little bit tough to get the information directly and explicitly.

Can you explain? If we have an array or map of Replica status then its much easier to programmatically check all replicas because you can just iterate over the map and list. I think using a container like a map or list makes it clear that all items are the same and should be treated identically.
I think if you have distinct fields for each ReplicaType that makes it harder to process programmatically and doesn't make it clear that they are identical.
Also we should be consistent with the TFSpec. In the Spec we treat Replicas as a list of TFReplicaSpec. So I'd expect status has a ReplicaStatus which is a list of TFReplicaStatus.
In the same way that pod is an arbitrary list of containers, I think we should make TFJob an arbitrary list of replicated pods. What's the advantage of limiting TFJob to workers, ps, chief?

Can you explain?

Sure, each time I want to get how many worker Pods are running, I must iterate over the whole array, filter which type == workers, return the value i want. This is

If we have an array or map of Replica status then its much easier to programmatically check all replicas because you can just iterate over the map and list.

A map is better than array/list, we can have many map operations (e.g. set/get).

pod is an arbitrary list of containers.

But the containers have the same template (no different type).
How abut use map:
type TFJobStatus struct {
    // type is string
    ReplicaStatus map[string]ReplicaStatus
}

type ReplicaStatus struct{
    Active int32
    Completed int32
    Failed int32
}

I think the spec and status should be consistent; either both lists or both maps
So option 1
type TFJobSpec struct {
   // ReplicaSpecs specifies the TF replicas to run.
   ReplicaSpecs []*TFReplicaSpec `json:"replicaSpecs"`
}

type TFJobStatus struct {
     ReplicaStatus []*TFReplicaStatus
}

Option 2
type TFJobSpec struct {
   // ReplicaSpecs specifies the TF replicas to run.
  ReplicaSpecs map[string]*TFReplicaSpec
}

type TFJobStatus struct {
   ReplicaStatus map[string]*TFReplicaStatus
}

I think I prefer lists for the following reasons

This is the convention in K8s

e.g. a Pod contains a list of containers/volumes not a map of containers/volumes

With a map the question becomes do we store the name in ReplicaSpecs/ReplicaStatus or just rely on the key in the map

If we don't store the name in ReplicaSpecs/ReplicaStatus then I think that makes for messy code because we will usually want to deal with the tuples (name, ReplicaSpec) or (name, ReplicaStatus)
If we do store the name in ReplicaSpecs/ReplicaStatus then the key will duplicate information in ReplicaSpecs.name/ReplicaStatus.name and inevitably this will lead to bugs when they get out of sync.

Its true that if you are dealing with a list you have to do more work to find the Spec/Status for a particular Replica; but the same is true with getting container spec/status in a pod with multiple containers..

Pod contains a list of containers/volumes not a map of containers/volumes.

TFJobs are not the same as Pods, we have ReplicaType, this is the key point which make things more complex.

store the name in ReplicaSpecs/ReplicaStatus.

Why should we store the name, i think it is read-only. Is there any chance we will modify it?
Another case, we create Pods/Services due to ReplicaSpecs, then watch these Pods are created to update the ReplicaStatus. We can set this directly by TFJob.Status["worker"].active without iteration.

I prefer map, for the following reasons:

the data structure is easy to iterate. When i implement caicloud/kubeflow-controller, I found that it is not easy to get the index of the spec in the list: https://github.com/caicloud/kubeflow-controller/blob/master/pkg/tensorflow/distributed.go#L201. And if we replace the spec list with map, it will be easier.
the config is tidy:

ps:
#spec
worker:
#spec

And pod has lists for containers and volumes because each container in one pod is equivalent, IMO. In our case, PS and workers are different roles so I think the map is more appropriate.

@jlewi WDYT? Maybe we can start this change in api/v1alpha2.

@ScorpioCPH yes lets start api/v1alpha2.go and use that to itterate on an API.

TFJobs are not the same as Pods, we have ReplicaType, this is the key point which make things more complex.

I'm not sure I understand your point about ReplicaType. My suggestion is to get rid of ReplicaType and just have Name and various properties (e.g. TerminationPolicy) that determine the behavior of replica.
At this point a TFJob consists of many Replicas each identified by a Name. The pattern in K8s e.g. with volumes and containers, is that when you have a container containing many items a list of named entities is used rather than a map from name to entity.
So if we use a map and not a list we aren't following K8s conventions.

Why should we store the name, i think it is read-only. Is there any chance we will modify it?

If you don't store the name then I think it makes code more complicated because ReplicaSpec is
incomplete because it doesn't contain the name. So instead of doing
func `somefunc(r ReplicaSpec) {
...
}

we'd have to do
func `somefunc(name string, r ReplicaSpec) {
...
}

name is a key property of ReplicaSpec so it should be a part of the struct.
If you put name in ReplicaSpec and use a map then the user has to specify name in two places.

Another case, we create Pods/Services due to ReplicaSpecs, then watch these Pods are created to update the ReplicaStatus. We can set this directly by TFJob.Status["worker"].active without iteration.

I agree this might be a little more convenient but I think the API issues mentioned above are more important because they aren't hidden. In this case we can define a simple func
func updateStatus(j *TFJobStatus, r *ReplicaStatus) {
....
}

And pod has lists for containers and volumes because each container in one pod is equivalent, IMO. In our case, PS and workers are different roles so I think the map is more appropriate.

I don't understand this. Each container can run a different binary and have different properties (e.g. resource requirements). That seems analogous to the situation we have with replica.

I don't understand this. Each container can run a different binary and have different properties (e.g. resource requirements). That seems analogous to the situation we have with replica.

Sorry for the vague comment
My opinion is that the containers could be handled by the same logic, but in our case, PS and worker have different execution path. Because PS and worker are different roles, then we have to deal with them in different ways.
The logic to handle container creation may be:
func HandleContainerCreation(pod *api.Pod) {
    for _, container := range pod.Containers {
        # Same Logic here
    }
}

But we can not use the same code for PS and worker, then we have to:
func HandleTFJobCreation(tfJob *api.TFJob) {
    for _, spec := range tfJob.Specs {
        if isPS(spec) {
            # PS logic
        }
        else {
            # Worker logic
        }
    }
}

For example, we will check if all workers are finished, because if they do the TFJob is considered to be finished. But we do not check the PS, since PS are never finished if we do not kill them. When I am trying to implement an event-driven operator for TFJob, I find that the function getPSSpec(tfJob) and getWorkerSpec(tfJob) are used heavily since it is a list and I have to handle them in different ways.
But I think it also works for me if we use list, I am not strongly against it.

You make a good point with ResourceList.
The fact that we need different logic for different types of containers seems unrelated to whether its a map or list. We will still need to have different logic. However, with the proposed changes to get rid of ReplicaType, the logic will depend instead on the TerminationPolicy of the replica.
@gaocegege @ScorpioCPH you convinced me that a map is better. Lets go with a map from replica name to spec and a map for replica name to status.

@ScorpioCPH @gaocegege Any update on api/v1alpha2?
I checked the refactor branch. I didn't see a [v1alpha2] (https://github.com/kubeflow/tf-operator/tree/refactor/pkg/apis/tensorflow) directory.

@jlewi I think we are going to implement v1alpha2 these days.

I'm working on a design doc for v1alpha2. Let's design first then implement it :)
                        Penghao Cen

<EMAIL_ADDRESS>
签名由 网易邮箱大师 定制
On 03/02/2018 21:38, Ce Gao wrote: @jlewi I think we are going to implement v1alpha2 these days.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/kubeflow/tf-operator","title":"kubeflow/tf-operator","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/kubeflow/tf-operator"}},"updates":{"snippets":[{"icon":"PERSON","message":"@gaocegege in #333: @jlewi I think we are going to implement v1alpha2 these days."}],"action":{"name":"View Issue","url":"https://github.com/kubeflow/tf-operator/issues/333#issuecomment-369922720"}}}

Closed by #492


[Go Live][10 Jan 2022]

Docs Build status updates of commit c695a35:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/apps-in-teams-meetings/meeting-app-extensibility.md
:white_check_mark:Succeeded
View

msteams-platform/assets/icons/GitHub-icon.png
:white_check_mark:Succeeded
View

msteams-platform/assets/icons/teams-icon.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/community-feedback-edit.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/community-feedback-this-page.png
:white_check_mark:Succeeded
View

msteams-platform/feedback.md
:white_check_mark:Succeeded
View

msteams-platform/sbs-meeting-content-bubble.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Adressing issue #6331, small changes to pom.xml files to reduce warnings shown in building

Use ${project.version} instead of ${version}; same goes for ${build.finalName}, which is recommended to switch to ${project.build.finalName}.
Finally, use version for maven-jar-plugin consistently.
Impact

[x] Bug fix (non-breaking change which fixes expected existing functionality)
[x] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

skipReleaseNotes   - Don't show up on the Draft Release Notes page
newContributors    - New Contributors
Description
The project configuration in pom.xml uses two deprecated variables: ${version} and ${build.finalName}.
The warnings are issues with mvn version 3.9.x, possibly before.
Since the project has configured mvn version 3.9.5 in .mvn/wrapper/maven-wrapper.properties, a developer with no mvn installed is automatically using that version.
I am well aware that the project "only" mandates mvn version 3.6 as a minimum.
Fixes #6331

@MalloD12 On the FOSSA License Compliance failure, is there anything I must do ?

Hi @catull,
No, there is nothing to do on your side about that  FOSSA code scan failure. Our team is already aware of it.
Thanks,
Daniel.


separate errors container per field validation

Maybe this is already possible but I was unable to make it work.
I have a field that does remote validation as well as basic email validation.  If the server is down, I'd like to display the remote error in a custom error container.
If the email address is invalid, I still want the errors to show up in the default location.

The current release makes it very easy to fire your own ajax request and answer as you need it.


"Tuxphones unavailable" despite daemon reporting no issues

I've been following the development of this, it's a really amazing plugin. I've been wanting to stream game audio on discord for so long.
My problem is that although I installed it and the package dependencies correctly, and cargo ran reported no issues (aside from a couple syntax warnings), when I reload Discord with the daemon running, I get a subtitle in the streaming menu that says "Tuxphones unavailable". What would cause this to happen?
Unfortunately I can't contribute much else to the project. I don't know Rust or WebRTC that well.

Right now Tuxphones is in a pretty unstable state and a lot of work needs to be done to make it work again and I've been having issues with being able to consistently report whether or not Tuxphones will work or not. So it's probably just a bug.

Seems that "Tuxphones unavailable" text was causing a weird issue that prevented my plugin from detecting applications correctly so I removed it. If the button says "Go Live with Sound", that means detection was successful (although it won't work yet).

I see "Go Live with Sound" now. Is there an ETA on when the button will work?

So the deal with that button is that in most cases it does half of what it's supposed to do. It will stream video of the application (it may take a minute or two to show up, but it should), but we are still working on the audio system. Discord also won't show any indication that a stream had started, you just need to leave the call to end it.

Hello, sorry to interrupt, just found out this project and love it already, only thing I don't understand is how that's supposed to work
I do not see any "Go live with sound"
I only get "Tuxphones unavailable" from my two test benchs running Ubuntu 22.04, no audio is streamed.
I understand it's a work in progress but I am not sure the current state of the project and probably I'm using it incorrectly
Tried to reload with CTRL+R different times but still get tuxphones unavailable when trying to stream any application
These are the steps I followed

Install prerequisites for building the daemon
built the daemon
run the daemon
installed better discord and the plugins
installed the plugin dependencies from BD
tried everything with reloading the application multiple times

Thanks

We've been really busy recently so unfortunately we haven't had time to fix the constant bugs and crashes that occur when Discord updates. That's why it doesn't work right now. Once we get some more time (undefined timeframe) we'll fix everything.


Bug Report:Compiled code error

When I compile the latest source code to generate V2 firmware, the following error occurs.How can I solve this problem, or that the latest source code no longer supports V2 firmware?

Use the supported version of the compiler - https://dev.px4.io/en/setup/dev_env_linux_ubuntu.html#nuttx-based-hardware


Vim changes modeline automatically

Hi,
I have recently installed vim version 8.0.1107.
I work with modeline feature.
Example:
vim: set tabstop=4 shiftwidth=4 expandtab filetype=perl
Let's say I will open the file with vim, it automatically changes the line to:
vim: set tabstop=3 shiftwidth=4 expandtab filetype=perl
If I save the file and open it again it changes to:
vim: set tabstop=2 shiftwidth=4 expandtab filetype=perl
And so on, Any idea?
Thank You,
Patrick Pereira

sounds like a misbehaving plugin. Does it happen if you start from vim --clean?

Yes. it happens.

Looks like something similar with #2003 happens.
Which terminal emulator do you use? What is the result of :echo v:termresponse?

@chrisbra Is this related on https://github.com/vim/vim/issues/2003 ?

Oh, I lost the race.

Thre result of :echo v:termresponse is : ^[[>0;253;0c

@PtkP What terminal do you use? and echo $TERM ?

$TERM=xterm-256color

What terminal?

Sorry, missed the question.
I use xterm.

can you bisect which commit causes this?

I have updated vim version yesterday.
I have this one right now: "patch 8.0.1107: terminal debugger jumps to non-existing file"
Previously I had   version 7.4.1830
I can try, but it is not an easy task to do. I need to do like a try and error. install a previous version and try.
Best Regards,
Patrick Pereira

you might want to specifically check
patch 8.0.1069: still get CTRL-X sometimes
patch 8.0.0993: sometimes an xterm sends an extra CTRL-X

please check, if https://github.com/vim/vim/releases/tag/v8.0.1128 fixes your problem

Hi all,
I have tested the https://github.com/vim/vim/releases/tag/v8.0.1128.
It works perfectly.
Thanks,
Patrick Pereira


JIT: Exception 0xc0000005 0x8 0x0 0x0

I'm testing some code with Wazero, and I notice one odd crash, that I'm not sure if it's either my code (which is Zig) or Wazero. That is strange from previous errors, because it's one "Exception 0xc0000005 0x8 0x0 0x0". It's not an panic or something from testing.Error(err).
I'm using Windows/amd64.

The log is:
 go test -tags wasi,km,zig -v -bench=. -benchmem -benchtime=5s -cpu 1
=== RUN   TestEncodeObjectAPI
Exception 0xc0000005 0x8 0x0 0x0
PC=0x0

github.com/tetratelabs/wazero/internal/wasm/jit.(*callEngine).execWasmFunction(0xc00074a240, {0x5dd008, 0xc00009e140}, 0xc000952e70, 0xc000952cf0)
        Z:/GOPATH/pkg/mod/github.com/tetratelabs/wazero@v0.0.0-20220430041858-abd1c79f3335/internal/wasm/jit/engine.go:699 +0x185 fp=0xc00095dbb8 sp=0xc00095dae0 pc=0x4d5305
github.com/tetratelabs/wazero/internal/wasm/jit.(*moduleEngine).Call(0xc000954030?, {0x5dd008, 0xc00009e140}, 0xc000952e70, 0xc000494dd0, {0xc000954030, 0x1, 0x1})
        Z:/GOPATH/pkg/mod/github.com/tetratelabs/wazero@v0.0.0-20220430041858-abd1c79f3335/internal/wasm/jit/engine.go:582 +0x48f fp=0xc00095dcb8 sp=0xc00095dbb8 pc=0x4d4b2f
github.com/tetratelabs/wazero/internal/wasm.(*FunctionInstance).Call(0x53bca0?, {0x5dd008?, 0xc00009e140?}, {0xc000954030?, 0xc000022270?, 0x0?})
        Z:/GOPATH/pkg/mod/github.com/tetratelabs/wazero@v0.0.0-20220430041858-abd1c79f3335/internal/wasm/call_context.go:164 +0x63 fp=0xc00095dd08 sp=0xc00095dcb8 pc=0x4901c3
benchmark%2ekarmem%2eorg.(*Wasm).Run(...)
        X:/karmem/benchmark/main_wasi_test.go:289
benchmark%2ekarmem%2eorg.TestEncodeObjectAPI(0xc000061040)
        X:/karmem/benchmark/main_wasi_test.go:113 +0x1f6 fp=0xc00095df70 sp=0xc00095dd08 pc=0x50d556
testing.tRunner(0xc000061040, 0x58dce8)
        C:/Program Files/Go/src/testing/testing.go:1439 +0x102 fp=0xc00095dfc0 sp=0xc00095df70 pc=0x3e3482
testing.(*T).Run.func1()
        C:/Program Files/Go/src/testing/testing.go:1486 +0x2a fp=0xc00095dfe0 sp=0xc00095dfc0 pc=0x3e432a
runtime.goexit()
        C:/Program Files/Go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc00095dfe8 sp=0xc00095dfe0 pc=0x3587a1
created by testing.(*T).Run
        C:/Program Files/Go/src/testing/testing.go:1486 +0x35f

goroutine 1 [chan receive]:
testing.(*T).Run(0xc000060ea0, {0x57e4e0?, 0x35af53?}, 0x58dce8)
        C:/Program Files/Go/src/testing/testing.go:1487 +0x37a
testing.runTests.func1(0xc000020090?)
        C:/Program Files/Go/src/testing/testing.go:1839 +0x6e
testing.tRunner(0xc000060ea0, 0xc0000c3cd8)
        C:/Program Files/Go/src/testing/testing.go:1439 +0x102
testing.runTests(0xc000094320?, {0x72cd40, 0x1, 0x1}, {0x26848cc0598?, 0x40?, 0x738f20?})
        C:/Program Files/Go/src/testing/testing.go:1837 +0x457
testing.(*M).Run(0xc000094320)
        C:/Program Files/Go/src/testing/testing.go:1719 +0x5d9
main.main()
        _testmain.go:57 +0x1aa
rax     0x20
rbx     0x110000
rcx     0xc000494270
rdi     0x1100000012
rsi     0xc0002de820
rbp     0xc00095dba8
rsp     0xc00095dad8
r8      0x23280
r9      0x8
r10     0x90
r11     0x0
r14     0xc000966600
r15     0xc004a90000
rip     0x0
rflags  0x10202
cs      0x33
fs      0x53
gs      0x2b
exit status 2

That issue is ONLY affecst JIT, so I think it's an Wazero issue. The biggest issue is that it crashes the entire program and it's not possible to recover.
Change:
wazero.NewRuntimeConfigJIT().WithFinishedFeatures()

To:
wazero.NewRuntimeConfigInterpreter().WithFinishedFeatures()

Runs the tests without issue:
=== RUN   TestEncodeObjectAPI
--- PASS: TestEncodeObjectAPI (17.07s)

Also, it's ONLY affects WASM compiled with zig build install -Dtarget="wasm32-wasi" -Drelease-safe, so if you compile as debug zig build install -Dtarget="wasm32-wasi" it will run. A lot slower, but runs. The debug have more bounds checks and so on. So, maybe there's something in my code that is actually crashing the runtime, crashing at one unrecoverable point.

I'll share the source-code soon.

Compiling Zig with zig build install -Dtarget="wasm32-wasi" -Drelease-fast instead of zig build install -Dtarget="wasm32-wasi" -Drelease-safe doesn't crash. Funny that "safe" is causing crash.
However, I think it's a big deal for Wazero in general.  Since maliciously crafted wasm can cause the host to crash and the host goes to unrecoverable state. Notice, it's NOT an panic, it's a exception. Also, since it's a Memory Access error, should be possible to escape the sandbox using such method?! 🧐

hmm once you have the source or wasm from it, especially as it can work one way and not another, should be possible to solve.
FWIW, I looked at the commit you are on and doesn't seem like anything since then is related, but looking at the wasm will help know for sure.

PS when we run into things like this, there's a possibility to err earlier sometimes if we missed something detectable

parsing the wasm
validating the functions
compiling the functions (to wazeroir)

Some things can't be caught until Instantiate or worst case Function.Call. Interpreter hasn't such dire effects when something goes wrong, so it isn't surprising that JIT crashes while interpreter happily carries on.
Anyway a boundary or misinterpretation of an operand or opcode is always possible and we've had them before. The spectests don't go into cases like this, so the only defense we have are unit tests, integration tests and soon fuzzing which @mathetake reluctantly set aside knowing API parity 2.0 was more important for the next week or two, as that helps us stabilize the API.
Meanwhile, when we get bugs whether from fuzzing, random noticing or otherwise, the best is to find the earliest place to prevent them if possible (ex function validation etc) and prevent them. As well identify anything in the JIT code or our approaches that could make the overall thing more safe. Then, add unit tests for the known bug fix.
Even when we complete fuzzing, we'd still backfill tests on crashes like this vs rely on fuzzing to randomly find it again.
Hope all this gives context, as I know we've not actually written down our approach to fixing and making sure stays fixed.

yeah in anyway wazero shoudn't crash the host programs so we would definitely like to solve and identify the root cause... as @codefromthecrypt said it would be great if you could provide the reproducer! Thanks!

I'm publishing the source-code and pre-compiled wasm, to make it easier to reproduce. You can run:
git clone https://github.com/inkeliz/karmem
cd karmem/benchmark
go test -tags wasi,wazero,km,zig -bench=.

That works on MacBook (M1), but fails on my Windows-desktop (Ryzen).  I'm not sure if it's the OS or the CPU. Also, I have issues calling external functions when importing Foundation on SwiftWasm, but Wasmer runs it fine.

As I said before, you can compile with zig build install -Dtarget="wasm32-wasi" -Drelease-fast and it will run fine, even on Windows/AMD64. The compilation can be done inside benchmark folder and it will update the testdata/wasi/zig.wasm.

I did more tests, this issue is only on AMD64. Running the code using GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 go test -tags wasi,wazero,km,zig -bench=. on MacBook (M1), results in the following issue:
--- FAIL: TestEncodeObjectAPI (0.08s)
    main_wasi_test_test.go:27: runtime error: invalid memory address or nil pointer dereference (recovered by wazero)
        wasm stack trace:
                .std.heap.WasmPageAllocator.alloc(i32,i32,i32,i32,i32,i32,i32)
                .KBenchmarkDecodeObjectAPI(i32)
--- FAIL: FuzzContent (0.34s)
    --- FAIL: FuzzContent/4f86a6f9a4bdaa12a2adbc4ec28d475dacdce26a24b4f4d5db859d9f9e398f18 (0.00s)
        main_wasi_fuzz_test.go:72: runtime error: invalid memory address or nil pointer dereference (recovered by wazero)
            wasm stack trace:
                .std.heap.WasmPageAllocator.alloc(i32,i32,i32,i32,i32,i32,i32)
                .KBenchmarkDecodeObjectAPI(i32)

That doesn't crash the host, but still not working. So, on Windows it's causing crashes, and on MacOS it not crashing, but not work either. However, compiling using -Drelease-fast works, also running other tests (such as -tags wasi,wazero,km,golang works too). Using zig build install -Dtarget="wasm32-wasi" -Drelease-fast:
goos: darwin
goarch: amd64
pkg: benchmark.karmem.org
cpu: VirtualApple @ 2.50GHz
BenchmarkDecodeSumVec3-8            3738            329105 ns/op            1232 B/op          5 allocs/op
BenchmarkDecodeObjectAPI-8<PHONE_NUMBER> ns/op         1924556 B/op          4 allocs/op
BenchmarkEncodeObjectAPI-8          1226            934726 ns/op            1216 B/op          3 allocs/op
PASS
ok      benchmark.karmem.org    14.728s

thanks @inkeliz , it's not surprising that amd64 is only affected as the JIT impl differs on each arch.
WIll look into this shortly!

ok i will defer the investigation on this until finish SIMD (hence closes #484) as that's our priority... but yeah this must be resolved so I promise in a week or so!

I notice another issue, with "Swift". Using wasm-opt -O3 it have two issues, one on AMD and other at ARM.
AMD64 causes the same Exception 0xc0000005 0x8 0x0 0x0.
ARM64 doesn't crash, but have error on compiling:
main_wasi_wazero.go:70: function[731/7939] failed to compile: large memory offset (>255) must be a multiple of 8 but got 260: MOVWU [R9 + 0x104], R9

You need SwiftWasm for that, and since the size of the file is big, and didn't include the pre-compiled.
cd benchmark

xcrun --toolchain swiftwasm swift build --triple wasm32-unknown-wasi -v -c release

xcrun --toolchain swiftwasm swiftc -L ".build/wasm32-unknown-wasi/release" -o "testdata/wasi/swift.wasi" -module-name benchmark -emit-executable @.build/wasm32-unknown-wasi/release/benchmark.product/Objects.LinkFileList -target wasm32-unknown-wasi -sdk /Library/Developer/Toolchains/swift-wasm-5.6.0-RELEASE.xctoolchain/usr/share/wasi-sysroot -L /Library/Developer/Toolchains/swift-wasm-5.6.0-RELEASE.xctoolchain/usr/lib -O -Xlinker "--export=_start" -Xlinker "--export=InputMemoryPointer" -Xlinker "--export=OutputMemoryPointer" -Xlinker "--export=KBenchmarkEncodeObjectAPI"  -Xlinker "--export=KBenchmarkDecodeObjectAPI" -Xlinker "--export=KBenchmarkDecodeSumVec3"

wasm-opt -O3 -o testdata/wasi/swift.wasi testdata/wasi/swift.wasi

Running go test -tags wasi,wazero,km,swift -v -bench=. -benchtime=5s -count 5 crashes.

I notice similar issues when import Foundation, as I said before. But, now, if you remove wasm-opt -O3 it runs. I think something similar is happening on Zig.

I tried to run: wasmer testdata/wasi/swift.wasi it doesn't report any error.
--
In the case of ARM64 it's safer, since the host still alive. But, on x64 that is really problematic. 😬

Thanks @inkeliz for finding another bugs...  let me take a look after #565 ... thank you for your patience...

ok started debugging the first one (https://github.com/tetratelabs/wazero/issues/526#issue-1226545860)...

hey @inkeliz none of this has been reproducible on my machine... could provide the detailed step-by-steps for reproducing the error/exception or it would be great if you create the branch where you push the problematic binaries.

ok reproduced om my ryzen ubuntu!

Hi,
For the first problem, I can reproduce it on MacBook 2020 (M1) using GOARCH=amd64:
git clone https://github.com/inkeliz/karmem
cd karmem
git reset --hard adc37bce9562426e217b5b7dfea1eeef5dbb1f25
cd benchmark
GOARCH=amd64 GOOS=darwin go test -tags zig,wasi,wazero,km -bench=. -v .

That causes the issue:
   main_wasi_fuzz_test.go:124: runtime error: invalid memory address or nil pointer dereference (recovered by wazero)
        wasm stack trace:
                .std.heap.WasmPageAllocator.alloc(i32,i32,i32,i32,i32,i32,i32)
                .KBenchmarkDecodeObjectAPI(i32)

The current master branch is compiled using fast (instead of safe), so it's not cause this issue. I'll create a bench with both problematic, but using git reset --hard adc37bce9562426e217b5b7dfea1eeef5dbb1f25 is enough for Zig.

cool thanks! :D

I add new branch: https://github.com/inkeliz/karmem/tree/wasibug (wasibug)
That contains 3 bugs, each one is different (and varies on each platform). I primary use Windows, but I can reproduce on MacOS (some of those bugs, only on ARM).
You can git clone --branch wasibug https://github.com/inkeliz/karmem.git then cd karmem/benchmark and then run tests as follows:

Zig -Drelease-fast:
go test -tags zig,wasi,wazero,km -bench=. -v

MacOS / ARM: Works
MacOS / AMD (GOARCH=amd64):
        wasm stack trace:
                .std.heap.WasmPageAllocator.alloc(i32,i32,i32,i32,i32,i32,i32)
                .KBenchmarkDecodeObjectAPI(i32)

Windows / AMD:
Exception 0xc0000005 0x8 0x0 0x0
PC=0x0

Swift (with -O3 and removing import Foundation):
go test -tags swift,wasi,wazero,km -bench=. -v

MacOS / ARM: Compile error:
main_wasi_wazero.go:70: function[767/8158] failed to compile: large memory offset (>255) must be a multiple of 8 but got 276: MOVWU [R9 + 0x114], R9

MacOS / AMD (GOARCH=amd64):  Works (I don't know why, it crashes before)
Windows / AMD:   Works (I don't know why, it crashes before)

Swift (with `import Foundation):
go test -tags foundation,wasi,wazero,km -bench=. -v

MacOS / ARM: Compile Error
main_wasi_wazero.go:70: function[20622/59804] failed to compile: large memory offset (>255) must be a multiple of 8 but got 260: MOVWU [R8 + 0x104], R8

MacOS / AMD (GOARCH=amd64):
main_wasi_wazero.go:70: module[] function[_start] failed: wasm error: unreachable
       wasm stack trace:
               .__CFDateInitialize()
               .__CFInitialize()
               .__wasm_call_ctors()
               ._start.command_export()

Windows / AMD:
 main_wasi_wazero.go:70: module[] function[_start] failed: wasm error: unreachable
        wasm stack trace:
                .__CFDateInitialize()
                .__CFInitialize()
                .__wasm_call_ctors()
                ._start.command_export()

ok found out that the Zig one is something to do with call_indirect implementation, but yet to identify the root cause. Anyway thank you for putting the detailed repro steps!

ok identified the root cause for the first one!

@inkeliz could you double check #583 fixes the first bug? Thanks!

I tested it on MacOS and Windows, and the first issue is fixed. 🥳

I think it's out-of-scope question.
The "zig-bug" crashes on Windows and panics on MacOS. In order words: the same the error have two behaviors. I think the MacOS behavior is safer, because the host doesn't crash (it's recovered from panic). I'm not sure what is the behavior on Linux (I don't use Linux for development).
That bug is fixed. But, if another similar bug happens (or be discovered in the future), it will crash the host. It's possible, somehow, to prevent "Exception" in Windows, in general? So, even if another (similar) bug is found, it doesn't crash the host. I think there's two issues: 1. The wasm not work; 2. The wasm crashes the host. The severity of the second one is higher. I'm not sure why MacOS gives panics and Windows crashes very badly.

yeah I got your point. We haven't tried but I believe https://pkg.go.dev/runtime/debug#SetPanicOnFault runtime.SetPanicOnFault would help here to avoid host crashes but instead just recover.
As for the different behaviors, the memory page handling and signaling behaviors are different on each OS and that's the reason why we see the different error messages here

so the second compilation error stuff https://github.com/tetratelabs/wazero/pull/584 will solve it.

ok the last one seems not a bug but rather just Swift wasm expects WASI's clock_res_get to be implemented but we haven't implemented https://github.com/tetratelabs/wazero/blob/main/wasi/wasi.go#L645

let me implement it and make sure the test passes

ok verified that the last one is due to clock_res_get. I will close this issue on #584 and raise the PR for implementing clock_res_get in a day or so


Downloaded file(s) gets deleted when program is closed

I don't really know why but every time I close LittleWeeb the completed download files gets deleted somehow.

Interesting, I will take a look at when weekend arrives ^^. Could you provide some more information? Like operating system and what the console says before closing (next weekend I will add a log function that writes the output of the console to a file).

OS: Windows 10 Pro 64-bit build 16299
The console say before closing: WSDEBUG: Written message to server of size: 92
Cerebrate:** Closing Connection: Connection Lost
Only the last file downloaded gets deleted(ex. if I finished downloading from eps. 1-12, only ep.12 gets deleted the rest are fine and if I download only one file it gets deleted)

Gotta be honest, thought this one weird bug that happens only in a specific case, and I would be never able to actually see it happen... but it really happens... xD, thats not something that I should say right ^^, well atleast this makes it easier to solve, on it like a boss...

Please test it out for me :) I hope that it's fixed now in the little time that I had.

Working great now 👍
To be honest I also didn't notice it even after downloading 5 different series until I started DLs on currently airing shows.


Support DNS roundrobin and cname

Add DNS support for roundrobin of IPs and cname record support.

rancherio/rancher-dns#5

:+1: This is awesome! Can't wait to try it out!

Add Rancher API support and configuring the DNS server

Tested with server version - v0.29.0-rc1
Cname support is provided as part of External Services created with host name.
Created an external service using hostname pointing to an external site.
Create a service with link to this external service.
From the containers of this service , able to access the external site using the external link name.
Roundrobin support for DNS resolution is actually random order now.
Created a DNS service.
Created a service S2.
Created a service S1 which has links to S2  as "servlink" and DNS service as "dnslink".
From the containers of service S1 , dig on both "servlink"  and "dnslink" return the resolved addresslists in random order.
Closing this issue.


In next version, possible bug with pictures from assets? I see only the spinner.

Dear team,
I am facing an issue in Regions module.
When i select a picture from Assets to an assets field type as defined in a region, the picture is not displayed at all and i just see the loading spinner, spinning for ever.
After some testing and firebug monitoring, i managed to fix it somehow by changing the following from:
var SITE_URL   = '{{ rtrim($app->pathToUrl('site:'), '/') }}';
To:
var SITE_URL = 'http://admin.myperfectsite.com{{ rtrim($app->pathToUrl('site:'), '/') }}';
Well, no matter if it works now with the above fix, i feel that something is going wrong. Does anybody have any idea regarding this behaviour ?
Im on PHP > 7.0 behind NGINX.
With Regards,
Diamantis

Thanks for reporting!


java.lang.UnsatisfiedLinkError: 'org.nd4j.nativeblas.OpaqueDataBuffer (Raspberry Pi 4, 1.0.0-SNAPSHOT)

Issue Description
By calling the method init() of the MultiLayerNetwork class on my Raspberry Pi 4 I am getting an exception(see below). Testing the program on my computer(macOS Catalina) doesn't cause any issues.
Version Information
Please indicate relevant versions, including, if relevant:

DL4J Version: 1.0.0-SNAPSHOT
Raspbian GNU/Linux 10 (buster)
OpenJDK version "11.0.7" 2020-04-14

Additional Information
Error Message: https://gist.github.com/FredericKayser/dc7235ec779ebec5867de443de4616ea
I am using 1.0.0-SNAPSHOT, because before I got this error I had the problem mentioned in this issue: https://github.com/eclipse/deeplearning4j/issues/8744

Typically that’s the sign of versions clash. Share your pom.xml please

This is my pom.xml:
https://gist.github.com/FredericKayser/b147b75a47a11909c0905dbb63e5bb63

Can you re-pull the snapshots (using -U parameter when calling mvn)? It doesn't happen often, but you might have gotten Snapshots that were in between updates.

So I've re-pulled the snapshots a few minutes ago, I got the same exception. I used the -U parameter before too, so probably this isn't the problem.

@sshepel are we sure arm binaries are successfully built in CI/CD?

Well from the build log, I can see that at least gcc was picked right...

I'm not quite sure how it's possible. OpaqueDataBuffer class is platform-independent. It's pure java.

@FredericKayser
Can you share the output of your mvn build with us? And ideally also the names of the nd4j related jar files in your maven cache.
The missing file should be in nd4j-native-api-1.0.0-20200501.125842-27039.jar and that file should have an md5sum of 4f6f502137f6b91e89d2cccbb699a828

Well, it took me a while too find the correct files, but here are my nd4j related jar files:
nd4j-api
nd4j-api-1.0.0-20200501.102357-27416.jar
nd4j-api-1.0.0-20200501.123354-27417.jar
nd4j-api-1.0.0-20200501.125856-27418.jar
nd4j-api-1.0.0-SNAPSHOT.jar
nd4j-common
nd4j-common-1.0.0-20200501.102121-26713.jar
nd4j-common-1.0.0-20200501.123230-26714.jar
nd4j-common-1.0.0-20200501.125813-26715.jar
nd4j-common-1.0.0-SNAPSHOT.jar
nd4j-native-api
nd4j-native-api-1.0.0-20200501.102335-27037.jar
nd4j-native-api-1.0.0-20200501.123340-27038.jar
nd4j-native-api-1.0.0-20200501.125842-27039.jar - md5sum: 4f6f502137f6b91e89d2cccbb699a828
nd4j-native-api-1.0.0-SNAPSHOT.jar
nd4j-native-platform
nd4j-native-platform-1.0.0-20200501.092801-2431.jar
nd4j-native-platform-1.0.0-SNAPSHOT.jar
So I think with maven build you want my packaged jar? If I did not understand your question correctly, please write it ;)
So if it was correct, here can you download it: https://workupload.com/file/5sfMsC8kpDA
And sorry for taking so long to answer, I was a bit overwhelmed.

What does mvn dependency:tree look like?

It looks like libgomp.so.1 isn't getting bundled, and it's probably what we're going to find in the log somewhere.
@sshepel Please add the directory containing that file to java.library.path when calling mvn, something like this: https://github.com/bytedeco/javacpp-presets/blob/master/ci/install-travis.sh#L188

Here is the dependency tree: https://gist.github.com/FredericKayser/1e6c461d48af45df7f30822ff96f4963

@FredericKayser Thanks! If you install libgomp.so.1 on the system, it will most likely work.

Thank you very, very much! It is now working!


etcd cluster pods not removed when cluster definition deleted..

When I delete a etcd cluster definition, the etcd-operator fails to terminate and remove the etcd Pods.
My cluster definition is
kind: "EtcdCluster"
metadata:
  name: "test2-secrets-etcd-cluster"
spec:
  size: 3
  version: "3.2.11"

Running kubectl create -f etcd-cluster.yaml I see the following pods:
NAME                              READY     STATUS    RESTARTS   AGE       IP
etcd-operator-1447703311-h1sz2    1/1       Running   0          23h       <IP_ADDRESS>
test2-secrets-etcd-cluster-0000   1/1       Running   0          10m       <IP_ADDRESS>
test2-secrets-etcd-cluster-0001   1/1       Running   0          10m       <IP_ADDRESS>
test2-secrets-etcd-cluster-0002   1/1       Running   0          10m       <IP_ADDRESS>

Running kubectl delete -f kubectl delete -f etcd-cluster.yaml  I still see the pods and services
Any idea what is going on?
Kube version
kubectl version
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.3", GitCommit:"2c2fe6e8278a5db2d15a013987b53968c743f2a1", GitTreeState:"clean", BuildDate:"2017-08-03T07:00:21Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.10", GitCommit:"bebdeb749f1fa3da9e1312c4b08e439c404b3136", GitTreeState:"clean", BuildDate:"2017-11-03T16:31:49Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Relavent logs from etcd-operator:
time="2017-12-13T18:55:38Z" level=info msg="{" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:38Z" level=info msg="    "size": 3," cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:38Z" level=info msg="    "repository": "quay.io/coreos/etcd"," cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:38Z" level=info msg="    "version": "3.2.11"" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:38Z" level=info msg="}" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:38Z" level=info msg="cluster created with seed member (test2-secrets-etcd-cluster-0000)" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:38Z" level=info msg="start running..." cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:46Z" level=info msg="Start reconciling" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:46Z" level=info msg="running members: test2-secrets-etcd-cluster-0000" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:46Z" level=info msg="cluster membership: test2-secrets-etcd-cluster-0000" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:46Z" level=info msg="added member (test2-secrets-etcd-cluster-0001)" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:46Z" level=info msg="Finish reconciling" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:54Z" level=info msg="Start reconciling" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:54Z" level=info msg="running members: test2-secrets-etcd-cluster-0000,test2-secrets-etcd-cluster-0001" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:54Z" level=info msg="cluster membership: test2-secrets-etcd-cluster-0000,test2-secrets-etcd-cluster-0001" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:54Z" level=info msg="Finish reconciling" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:55:54Z" level=error msg="failed to reconcile: fail to add new member (test2-secrets-etcd-cluster-0002): etcdserver: unhealthy cluster" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:56:02Z" level=info msg="Start reconciling" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:56:02Z" level=info msg="running members: test2-secrets-etcd-cluster-0000,test2-secrets-etcd-cluster-0001" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:56:02Z" level=info msg="cluster membership: test2-secrets-etcd-cluster-0001,test2-secrets-etcd-cluster-0000" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:56:02Z" level=info msg="added member (test2-secrets-etcd-cluster-0002)" cluster-name=test2-secrets-etcd-cluster pkg=cluster
time="2017-12-13T18:56:02Z" level=info msg="Finish reconciling" cluster-name=test2-secrets-etcd-cluster pkg=cluster

Log from node of the etcd pods seems to show some network issues..
2017-12-13 18:55:47.394032 W | raft: cdcaf87332827c5c stepped down to follower since quorum is not active
2017-12-13 18:55:47.394068 I | raft: cdcaf87332827c5c became follower at term 2
2017-12-13 18:55:43.782779 I | etcdmain: etcd Version: 3.2.11
2017-12-13 18:55:43.783324 I | etcdmain: Git SHA: 1e1dbb2
2017-12-13 18:55:43.783334 I | etcdmain: Go Version: go1.8.5
2017-12-13 18:55:43.783339 I | etcdmain: Go OS/Arch: linux/amd64
2017-12-13 18:55:43.783344 I | etcdmain: setting maximum number of CPUs to 2, total number of available CPUs is 2
2017-12-13 18:55:43.783496 I | embed: listening for peers on http://<IP_ADDRESS>:2380
2017-12-13 18:55:43.783541 I | embed: listening for client requests on <IP_ADDRESS>:2379
2017-12-13 18:55:43.790107 I | pkg/netutil: resolving test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2380 to <IP_ADDRESS>:2380
2017-12-13 18:55:43.791608 I | pkg/netutil: resolving test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2380 to <IP_ADDRESS>:2380
2017-12-13 18:55:43.791684 I | etcdserver: name = test2-secrets-etcd-cluster-0000
2017-12-13 18:55:43.791691 I | etcdserver: data dir = /var/etcd/data
2017-12-13 18:55:43.791696 I | etcdserver: member dir = /var/etcd/data/member
2017-12-13 18:55:43.791700 I | etcdserver: heartbeat = 100ms
2017-12-13 18:55:43.791704 I | etcdserver: election = 1000ms
2017-12-13 18:55:43.791707 I | etcdserver: snapshot count = 100000
2017-12-13 18:55:43.791722 I | etcdserver: advertise client URLs = http://test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2379
2017-12-13 18:55:43.791729 I | etcdserver: initial advertise peer URLs = http://test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2380
2017-12-13 18:55:43.791741 I | etcdserver: initial cluster = test2-secrets-etcd-cluster-0000=http://test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2380
2017-12-13 18:55:43.793767 I | etcdserver: starting member cdcaf87332827c5c in cluster d6842e751e188f14
2017-12-13 18:55:43.793802 I | raft: cdcaf87332827c5c became follower at term 0
2017-12-13 18:55:43.793815 I | raft: newRaft cdcaf87332827c5c [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
2017-12-13 18:55:43.793820 I | raft: cdcaf87332827c5c became follower at term 1
2017-12-13 18:55:43.799035 W | auth: simple token is not cryptographically signed
2017-12-13 18:55:43.801383 I | etcdserver: starting server... [version: 3.2.11, cluster version: to_be_decided]
2017-12-13 18:55:43.802245 I | etcdserver/membership: added member cdcaf87332827c5c [http://test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2380] to cluster d6842e751e188f14
2017-12-13 18:55:44.394033 I | raft: cdcaf87332827c5c is starting a new election at term 1
2017-12-13 18:55:44.394116 I | raft: cdcaf87332827c5c became candidate at term 2
2017-12-13 18:55:44.394134 I | raft: cdcaf87332827c5c received MsgVoteResp from cdcaf87332827c5c at term 2
2017-12-13 18:55:44.394148 I | raft: cdcaf87332827c5c became leader at term 2
2017-12-13 18:55:44.394158 I | raft: raft.node: cdcaf87332827c5c elected leader cdcaf87332827c5c at term 2
2017-12-13 18:55:44.394556 I | etcdserver: published {Name:test2-secrets-etcd-cluster-0000 ClientURLs:[http://test2-secrets-etcd-cluster-0000.test2-secrets-etcd-cluster.default.svc:2379]} to cluster d6842e751e188f14
2017-12-13 18:55:44.394687 I | etcdserver: setting up the initial cluster version to 3.2
2017-12-13 18:55:44.394742 I | embed: ready to serve client requests
2017-12-13 18:55:44.394939 I | etcdserver/api/v3rpc: dialing to target with scheme: ""
2017-12-13 18:55:44.394947 I | etcdserver/api/v3rpc: could not get resolver for scheme: ""
2017-12-13 18:55:44.395038 N | embed: serving insecure client requests on <IP_ADDRESS>:2379, this is strongly discouraged!
2017-12-13 18:55:44.395473 N | etcdserver/membership: set the initial cluster version to 3.2
2017-12-13 18:55:44.395528 I | etcdserver/api: enabled capabilities for version 3.2
2017-12-13 18:55:46.205662 I | etcdserver/membership: added member 6df913a7844f7727 [http://test2-secrets-etcd-cluster-0001.test2-secrets-etcd-cluster.default.svc:2380] to cluster d6842e751e188f14
2017-12-13 18:55:46.205691 I | rafthttp: starting peer 6df913a7844f7727...
2017-12-13 18:55:46.205740 I | rafthttp: started HTTP pipelining with peer 6df913a7844f7727
2017-12-13 18:55:46.206051 I | rafthttp: started streaming with peer 6df913a7844f7727 (writer)
2017-12-13 18:55:46.207782 I | rafthttp: started streaming with peer 6df913a7844f7727 (writer)
2017-12-13 18:55:46.208719 I | rafthttp: started peer 6df913a7844f7727
2017-12-13 18:55:46.208743 I | rafthttp: added peer 6df913a7844f7727
2017-12-13 18:55:46.208775 I | rafthttp: started streaming with peer 6df913a7844f7727 (stream MsgApp v2 reader)
2017-12-13 18:55:46.208921 I | rafthttp: started streaming with peer 6df913a7844f7727 (stream Message reader)
2017-12-13 18:55:46.224949 W | etcdserver/api/v3rpc: failed to receive lease keepalive request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2017-12-13 18:55:47.394032 W | raft: cdcaf87332827c5c stepped down to follower since quorum is not active
2017-12-13 18:55:47.394068 I | raft: cdcaf87332827c5c became follower at term 2
2017-12-13 18:55:47.394092 I | raft: raft.node: cdcaf87332827c5c lost leader cdcaf87332827c5c at term 2
2017-12-13 18:55:49.194033 I | raft: cdcaf87332827c5c is starting a new election at term 2
2017-12-13 18:55:49.194064 I | raft: cdcaf87332827c5c became candidate at term 3
2017-12-13 18:55:49.194082 I | raft: cdcaf87332827c5c received MsgVoteResp from cdcaf87332827c5c at term 3
2017-12-13 18:55:49.194115 I | raft: cdcaf87332827c5c [logterm: 2, index: 5] sent MsgVote request to 6df913a7844f7727 at term 3
2017-12-13 18:55:50.394050 I | raft: cdcaf87332827c5c is starting a new election at term 3
2017-12-13 18:55:50.394088 I | raft: cdcaf87332827c5c became candidate at term 4
2017-12-13 18:55:50.394100 I | raft: cdcaf87332827c5c received MsgVoteResp from cdcaf87332827c5c at term 4
2017-12-13 18:55:50.394117 I | raft: cdcaf87332827c5c [logterm: 2, index: 5] sent MsgVote request to 6df913a7844f7727 at term 4
2017-12-13 18:55:51.209132 W | rafthttp: health check for peer 6df913a7844f7727 could not connect: dial tcp <IP_ADDRESS>:2380: getsockopt: connection refused
2017-12-13 18:55:51.694028 I | raft: cdcaf87332827c5c is starting a new election at term 4
2017-12-13 18:55:51.694060 I | raft: cdcaf87332827c5c became candidate at term 5
2017-12-13 18:55:51.694070 I | raft: cdcaf87332827c5c received MsgVoteResp from cdcaf87332827c5c at term 5
2017-12-13 18:55:51.694079 I | raft: cdcaf87332827c5c [logterm: 2, index: 5] sent MsgVote request to 6df913a7844f7727 at term 5
2017-12-13 18:55:52.723929 I | rafthttp: peer 6df913a7844f7727 became active
2017-12-13 18:55:52.723950 I | rafthttp: established a TCP streaming connection with peer 6df913a7844f7727 (stream Message reader)
2017-12-13 18:55:52.724087 I | rafthttp: established a TCP streaming connection with peer 6df913a7844f7727 (stream MsgApp v2 reader)
2017-12-13 18:55:52.725849 I | rafthttp: established a TCP streaming connection with peer 6df913a7844f7727 (stream Message writer)
2017-12-13 18:55:52.726308 I | rafthttp: established a TCP streaming connection with peer 6df913a7844f7727 (stream MsgApp v2 writer)
2017-12-13 18:55:53.094040 I | raft: cdcaf87332827c5c is starting a new election at term 5
2017-12-13 18:55:53.094082 I | raft: cdcaf87332827c5c became candidate at term 6
2017-12-13 18:55:53.094095 I | raft: cdcaf87332827c5c received MsgVoteResp from cdcaf87332827c5c at term 6
2017-12-13 18:55:53.094105 I | raft: cdcaf87332827c5c [logterm: 2, index: 5] sent MsgVote request to 6df913a7844f7727 at term 6
2017-12-13 18:55:53.098897 I | raft: cdcaf87332827c5c received MsgVoteResp from 6df913a7844f7727 at term 6
2017-12-13 18:55:53.098922 I | raft: cdcaf87332827c5c [quorum:2] has received 2 MsgVoteResp votes and 0 vote rejections
2017-12-13 18:55:53.098945 I | raft: cdcaf87332827c5c became leader at term 6
2017-12-13 18:55:53.098964 I | raft: raft.node: cdcaf87332827c5c elected leader cdcaf87332827c5c at term 6
2017-12-13 18:55:54.241003 W | etcdserver: not healthy for reconfigure, rejecting member add {ID:f01bd8d76cddca4 RaftAttributes:{PeerURLs:[http://test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc:2380]} Attributes:{Name: ClientURLs:[]}}
2017-12-13 18:55:54.241669 W | etcdserver/api/v3rpc: failed to receive lease keepalive request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2017-12-13 18:56:02.250839 W | etcdserver/api/v3rpc: failed to receive lease keepalive request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2017-12-13 18:56:02.255437 I | etcdserver/membership: added member e0388c0cd40fa0ac [http://test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc:2380] to cluster d6842e751e188f14
2017-12-13 18:56:02.255460 I | rafthttp: starting peer e0388c0cd40fa0ac...
2017-12-13 18:56:02.255474 I | rafthttp: started HTTP pipelining with peer e0388c0cd40fa0ac
2017-12-13 18:56:02.256212 I | rafthttp: started peer e0388c0cd40fa0ac
2017-12-13 18:56:02.256230 I | rafthttp: added peer e0388c0cd40fa0ac
2017-12-13 18:56:02.256375 I | rafthttp: started streaming with peer e0388c0cd40fa0ac (writer)
2017-12-13 18:56:02.256395 I | rafthttp: started streaming with peer e0388c0cd40fa0ac (writer)
2017-12-13 18:56:02.256447 I | rafthttp: started streaming with peer e0388c0cd40fa0ac (stream MsgApp v2 reader)
2017-12-13 18:56:02.256703 I | rafthttp: started streaming with peer e0388c0cd40fa0ac (stream Message reader)
2017-12-13 18:56:02.274376 W | etcdserver/api/v3rpc: failed to receive lease keepalive request from gRPC stream ("rpc error: code = Canceled desc = context canceled")
2017-12-13 18:56:05.112441 W | etcdserver: failed to reach the peerURL(http://test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc:2380) of member e0388c0cd40fa0ac (Get http://test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc:2380/version: dial tcp: lookup test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc on <IP_ADDRESS>:53: no such host)
2017-12-13 18:56:05.112463 W | etcdserver: cannot get the version of member e0388c0cd40fa0ac (Get http://test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc:2380/version: dial tcp: lookup test2-secrets-etcd-cluster-0002.test2-secrets-etcd-cluster.default.svc on <IP_ADDRESS>:53: no such host)
2017-12-13 18:56:07.257667 W | rafthttp: health check for peer e0388c0cd40fa0ac could not connect: dial tcp <IP_ADDRESS>:2380: getsockopt: connection refused
2017-12-13 18:56:08.663923 I | rafthttp: peer e0388c0cd40fa0ac became active
2017-12-13 18:56:08.663948 I | rafthttp: established a TCP streaming connection with peer e0388c0cd40fa0ac (stream MsgApp v2 writer)
2017-12-13 18:56:08.664114 I | rafthttp: established a TCP streaming connection with peer e0388c0cd40fa0ac (stream Message writer)
2017-12-13 18:56:08.675886 I | rafthttp: established a TCP streaming connection with peer e0388c0cd40fa0ac (stream Message reader)
2017-12-13 18:56:08.676175 I | rafthttp: established a TCP streaming connection with peer e0388c0cd40fa0ac (stream MsgApp v2 reader)
2017-12-13 18:56:08.745973 I | etcdserver/api/v3rpc: transport: http2Server.HandleStreams failed to read frame: read tcp <IP_ADDRESS>:2379-><IP_ADDRESS>:58610: read: connection reset by peer
2017-12-13 18:56:38.213597 I | etcdserver/api/v3rpc: transport: http2Server.HandleStreams failed to read frame: read tcp <IP_ADDRESS>:2379-><IP_ADDRESS>:58664: read: connection reset by peer

Yeah.
You need to use k8s 1.8+
See https://github.com/coreos/etcd-operator/issues/1337

Oh Geeze...    OK..
Should I take those network error in etcd to the etcd repo to find out if they are bad or not?

@ArcticSnowman Please use the image quay.io/coreos/etcd-operator:v0.7.0 if you don't have a 1.8 k8s cluster yet. That version of the operator still has garbage collection enabled.

@hasbro17  Thanks will try that...


Latest merge into master breaks resumableTotalChunks

Fixed in a PR here: https://github.com/23/resumable.js/pull/293

Fixed


Add end-to-end tests for VSIX package & CLI commands

We test the language server on its own, but don't have anything to assert that the language server was correctly copied into the VSIX and can be launched. We should add a basic test for this.
We should also add test(s) outside of the dotnet test framework (e.g. a bash script) to verify basic CLI functionality on the published executable.

if someone wants to pick this up, please reach out to us before writing any code so we can validate the approach

I didn't realize the existence of this issue, but I happened to sent out  https://github.com/Azure/bicep/pull/686 which covers the VSIX package part.

@shenglol - should we close this?

We have e2e tests for the VSIX package now, but we still need to create tests for the CLI commands.


Fix issues on running kadcast.StartTCPListener

sendTCPStream blocks on getting local TCP address.
StartTCPListener fails due to "Bind failed: Address already in use" error (NB StartUDPListener already allocates this address)
decodeRedPacket in ProcessTCPPacket fails

StartTCPListener fails due to "Bind failed: Address already in use" error (NB StartUDPListener already allocates this address)

This was mistakenly reported as both UDP and TCP has different port pools.


Issue 2273 - Delete old transaction log snapshots

Make sure you have checked all steps below.
Issue

[x] My PR addresses the following issues and references them in the PR title. For example, "Issue 1234 - My Sleeper
PR"

Resolves https://github.com/gchq/sleeper/issues/2273

Tests

[x] My PR adds the following tests OR does not need testing for this extremely good reason:

DynamoDBTransactionLogSnapshotStoreIT.GetOldestSnapshots
DeleteTransactionLogSnapshotsIT
Tested in AWS

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it, or I have linked to a
separate issue for that below.
[x] If I have added, removed, or updated any external dependencies used in the project, I have updated the
NOTICES file to reflect this.

I'm not sure whether it's worth making all the changes I've suggested, but it seems worth avoiding all the extra constructors.


[jest-each] Migrate to Typescript

Summary
This PR moves jest-each to TS as part of #7807
Test plan

Unit tests pass
e2e still passes

Codecov Report

Merging #8007 into master will decrease coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #8007      +/-   ##
==========================================
- Coverage   64.18%   64.18%   -0.01%
==========================================
  Files         259      259
  Lines       10141    10143       +2
  Branches     1753     1770      +17
==========================================
+ Hits         6509     6510       +1
  Misses       3246     3246
- Partials      386      387       +1

Impacted Files
Coverage Δ

packages/jest-each/src/bind.ts
98.85% <100%> (ø)

packages/jest-each/src/index.ts
100% <100%> (ø)

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 1b2fffa...0731192. Read the comment docs.


Remove mention of native WSL support + separation of build/deploy

Remote mention of both native WSL support and separation of build/deploy from "Install the C++ Linux workload in Visual Studio." Neither are very relevant when the user is trying to modify their VS installation and add extra complexity (especially when both features are documented elsewhere)

@esweet431 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Error building for Android

Hi,
I am trying to build for android the version 0.9.9 of this plugin.
I use cordova-android 6.2.2 version and cordova 8.0.0.
When I try to run for andoird "ionic cordova run android", I get following error:
`* What went wrong:
A problem occurred configuring root project 'android'.

Could not resolve all dependencies for configuration ':_debugApkCopy'.
Could not find any version that matches com.android.support:support-v4:27+.
Versions that do not match:
26.0.0-alpha1
25.3.1
25.3.0
25.2.0
25.1.1
+ 32 more
Searched in the following locations:
file:/C:/Users/jdiegoa/AppData/Local/Android/sdk/extras/android/m2repository/com/android/support/support-v4/maven-metadata.xml
file:/C:/Projects/GaliaMobile/branches/evolutiveClean/platforms/android/sdk-manager/com/android/support/support-v4/maven-metadata.xml
file:/C:/Projects/GaliaMobile/branches/evolutiveClean/platforms/android/sdk-manager/com/android/support/support-v4/
Required by:
project :
`

Should I use another version of this plugin to be compatible with cordova-android 6.2.2?

Please try older versions of this plugin. We currently target cordova-android 7,1,0


Error on Abuse Protection

Hello,
It appears the program crashes when Abuse Protection is triggered. The output is shown below.
Downloading episode num 1 from 220 : Triggered Abuse Protection, waiting for 60 seconds Traceback (most recent call last):   File "anime_heaven_dwnld.py", line 163, in <module>     dwnld_lnk = list(epi_soup.find_all(class_='an'))[0]['href'] IndexError: list index out of range

Hey, thanks for the response. Here is the output. Using python 3.7.1

Does the program wait for 60 seconds before crashing? The program still works fine and I also checked for the site its working fine.

Yes, it does wait 60 seconds before crashing.
What version of python are you using? I also noticed, you don't get the deprecated warning that I get about chrome_options.

I'm using python 3.6.6 , but I don't think that changing python versions may be the real reason behind this.
Did you try changing the sleep time?

you don't get the deprecated warning that I get about chrome_options.
Yeah, PyCharm doesn't show that but when I run that in cmd it shows the warning.
Try changing the time period. Also, I'm assuming that the problem occurs everytime 'Abuse protection' is triggered?
I tested the programs on some other machines also, but none of them faced this issue.
Nevertheless I'll think of some other way to look for a work around.

Your fix worked great! But another bug was introduced somewhere along the line.
The files directory does not get created, causing the error below. Manually creating the Files directory and trying again resolves the problem.
Total Episodes Available : 26 Chrome driver does not exist. Downloading it and saving in {Files} folder Downloading file :  chromedriver.zip Traceback (most recent call last):   File "anime_heaven_dwnld.py", line 272, in <module>     "Files")   File "anime_heaven_dwnld.py", line 103, in download_file     urlretrieve(url, os.path.join(folder, filename), reporthook)   File "C:\Tools\python\3.7.1\lib\urllib\request.py", line 257, in urlretrieve     tfp = open(filename, 'wb') FileNotFoundError: [Errno 2] No such file or directory: 'Files\\chromedriver.zip'

Thank you @uragirii! This is an awesome little program :)


Setup build process

Currently there is are no instructions how to transpile Less to CSS.
I suggest using a build task runner like NPM, Gulp or Grunt.
If done so, it might be helpful, to add some information to readme.md

I did use WebStorm built-in tool to compile files. I have a branch local for using Gulp. Doing more tests to make sure everything works fine. Yes, I will add those to Readme.

Done. I merged the Gulp support branch into master. You can have a test by using gulp build. Thanks.

@picturepan2 👍  Nice, will check it out later on :)

Fixed in 0c1b1641e07cab0d511ba73e96fb89f7cb042a81


test(txpool): listener it tests

Description
Add integration tests for txpool listeners.
Context
In production, attempt to register all transactions listener blocks the txpool. AllPoolEventsBroadcaster smh never returns after attempting to broadcast the first transaction.

Failing integration test is resolved by https://github.com/paradigmxyz/reth/pull/4020


Helm Chart inaccessible

Love this project, but seems like the helm chart repository is no longer working? Is it possible to fix it?

I was able to use the helm chart to install using the following steps:
VERSION="v0.6.1"
kubectl apply -f https://raw.githubusercontent.com/cloudflare/origin-ca-issuer/${VERSION}/deploy/crds/cert-manager.k8s.cloudflare.com_originissuers.yaml
helm repo add cloudflare https://cloudflare.github.io/origin-ca-issuer/charts
helm install cloudflare-ca cloudflare/origin-ca-issuer

The README at https://github.com/cloudflare/origin-ca-issuer/tree/trunk/deploy/charts/origin-ca-issuer needs updating

Inspecting the repository, if you use chart version 0.5.0 you will get appversion 0.6.1 available as a helm package you can use with terraform. Still have to install the CRDs separately.
helm repo add origin-ca-issuer https://cloudflare.github.io/origin-ca-issuer/charts
"origin-ca-issuer" has been added to your repositories

helm search repo origin-ca-issuer
NAME                             	CHART VERSION	APP VERSION	DESCRIPTION
origin-ca-issuer/origin-ca-issuer	0.5.0        	0.6.1      	A Helm chart for origin-ca-issuer

Using in terraform
resource "helm_release" "origin-ca-issuer" {
  name            = "origin-ca-issuer"
  namespace  = "origin-ca-issuer"
  repository    = "https://cloudflare.github.io/origin-ca-issuer/charts"
  chart             = "origin-ca-issuer"
  version         = "0.5.0"
  create_namespace = true

  set {
    name = "controller.resources.limits.cpu"
    value = "500m"
   }
  set {
    name = "controller.resources.limits.memory"
    value = "512Mi"
  }
  set {
    name = "controller.resources.requests.cpu"
    value = "500m"
  }
  set {
    name = "controller.resources.resources.memory"
    value = "512Mi"
  }

}

I'm in the process of automating publishing charts (you can see the PRs of that work above), but at this point we're not including CRDs.

The chart is now being published by GitHub Actions to the OCI registry at oci://ghcr.io/cloudflare/origin-ca-issuer-charts/origin-ca-issuer. See Helm's documentation on Using OCI-based registries.


Pub build workflow is slower than previous "run as JavaScript"

This issue was originally filed by<EMAIL_ADDRESS>
What steps will reproduce the problem?

Upgrade to dart 1.2 from dart 1.0
Try to launch a dart project as Javascript

What is the expected output? What do you see instead?
IDE should invoke Dart2JS to convert dart source to JS and then launch browser. Now with 1.2, Dart2JS is not being run by the editor and old incorrect JS code is launched in the browser.
What version of the product are you using? On what operating system?
Dart 1.2 on Mac OS X Mavericks, and Dart 1.2 on Windows 7. Same problem.
Please provide any additional information below.
The only way I've found to run Dart2JS from the Dart editor 1.2 is via Pub Build, but that takes a loooong time (about 5 minutes):
[Info from Dart2JS]:
Took 0:00:07.811778 to compile TestOrtho3D|web/testortho3d.dart.
Built 28818 files!
Please fix this ASAP as the JS development workflow using the Dart Editor in 1.2 is now pretty much unusable compared to 1.0.
-JB

This issue has been moved to dart-lang/pub#901.


(PDOC-35) Format generated html properly

Shaigy Nixon on Jira:
"Just a trivial thing. Looks like one line break is missing from the type's
output html between the property and the allowed values for parameter. Rest all
looks great."
https://tickets.puppetlabs.com/browse/PDOC-35?focusedCommentId=215400&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-215400
As an aside, I would really like to rewrite this method to be a real erb
template and not this nonsense.

If you want to add another erb template you can definitely do that. But if you think there is further work that needs to be done that this pull request won't cover then you should file a ticket for it so that it won't be lost.

@HAIL9000 I already have filed a ticket for that, see PDOC 42.


Dependencies update

Update dependencies used by cra-universal package

Would you mind if I looked into this for Hacktoberfest?

Sure! @ajchili , please send a PR


V12 masternodes stuck on status 3, eventually go offline

With V12, not seeing the "HotCold enabled" message at all in the debug.log. Currently I'm getting 2 different statuses with "masternode status" from the masternodes, "Wallet is locked." and "Could not find suitable coins". I'm also getting these random addresses in the "pubKeyMasternode" status field, that i've never seen before. Those aren't my masternode pubkeys. :/.
$ ./current_dash/bin/dash-cli masternode status
{
    "vin" : "CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000,<PHONE_NUMBER>), coinbase )",
    "service" : "XXX.XXX.XX.XX:9999",
    "status" : 3,
    "pubKeyMasternode" : "XXXXXX",
    "notCapableReason" : "Wallet is locked."
}

$ ../current_dash/bin/dash-cli masternode status
{
"vin" : "CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000,<PHONE_NUMBER>), coinbase )",
"service" : "XXX.XXX.XXX.XX:9999",
"status" : 3,
"pubKeyMasternode" : "XxLD1pQ8HjhMgrTTMBfdUBDsBbqnNXKqbt",
"notCapableReason" : "Could not find suitable coins!"
}

The pubKeyMasternode address shown here is not one of my known addresses.

Getting the same results as nmarley with the following messages in .dash/debug.log:
2015-08-15 12:12:10 CActiveMasternode::ManageStatus() - Checking inbound connection to 'x.x.x.x:9999'
2015-08-15 12:12:10 CActiveMasternode::GetMasterNodeVin - Could not locate specified vin from possible list
2015-08-15 12:12:10 CActiveMasternode::ManageStatus() - Could not find suitable coins!

Problem:
You have masternode in list but dash-cli masternode debug gives you Could not find suitable coins!. Few hours later you node drops out of list.
Explanation:
This means that your node was not activated actually. On a successfully activated remote masternode dash-cli masternode debug should return Masternode successfully started. One reason why your masternode wasn't activated could be that new activation message can't reach your masternode from your local wallet because somewhere on its route there are only v11 masternodes and they just ignore new messages.
Fix:
To fix this you need to connect to your node directly and there are few ways to do this:

simple one, temporary: open console in local wallet and type addnode MNIP onetry - this will force your client to open direct connection to your MN
if #1 didn't work for some reason or you want to force your wallet to connect to your MNs every time you run it: add -connect=MNIP in command line or add connect=MNIP in dash.conf. You can add it multiple times if you have many masternodes. Note: this way your client will connect only to specified IPs.

This problem should go away once we have enough MNs updated to v12.

@nmarley @dutchn0mad was the issue resolved or do you still have any problems?
PS. random address on masternode status is ok, it's used for debugging purposes and format will be changed if/when #562 will be merged

Yes, issue is resolved. Thanks.

@nmarley cool, thanks!
Closing this then.


Sync mian branch sdk/spring to feature/spring boot-3 branch

As title.
Notes:
Every PR since then needs to consider whether it needs to be merged into the feature/spring-boot branch at the same time

/azp run java  - spring - tests

/azp run java - spring - tests

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


Unexpected results when validating text against lte or lt rule

Laravel Version: 7.10.3
PHP Version: 7.4.2
Database Driver & Version: sqlite

Description:
When I try to validate a text with lte or lt rules I get unexpected results.
Steps To Reproduce:
// This
Validator::make(['foo' => 'bar'], ['foo' => 'lt:10'])->errors()->toArray()
// or this
Validator::make(['foo' => 'bar'], ['foo' => 'string|lt:10'])->errors()->toArray()

# "foo" => [
#     "The foo must be less than 10 characters.",
#,

Okay, I just understood that this rule is used to validate the size against an other field 😅


proposal: add a generic byte string manipulation package

This proposal is for use with #43651. I propose to define a new package, byteseq, that will provide simple generic
functions to manipulate UTF-8 encoded strings and byte slices.
Goals of this proposal:

Provide a safe generic API without string <-> []byte conversion overhead.
Reduce code duplication between strings and bytes packages.
Enforce immutability in API using type constraints. The ~string | ~[]byte constraint denotes that function should
not mutate their arguments.

API description:
// Byteseq represents a generic UTF-8 byte string.
type Byteseq interface {
     ~string | ~[]byte
}

// Compare returns an integer comparing two strings lexicographically.
// The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
func Compare[A, B Byteseq](a A, b B) int

// Contains reports whether subslice is within b.
func Contains[B, SubSlice Byteseq](b B, subslice SubSlice) bool

// ContainsAny reports whether any of the UTF-8-encoded code points in chars are within b.
func ContainsAny[B, Chars Byteseq](b B, chars Chars) bool

// Count counts the number of non-overlapping instances of sep in s.
// If sep is empty, Count returns 1 + the number of UTF-8-encoded code points in s.
func Count[S, Sep Byteseq](s S, sep Sep) int

// Equal reports whether a and b are the same length and contain the same bytes
func Equal[A, B Byteseq](a A, b B) bool

// EqualFold reports whether s and t, interpreted as UTF-8 strings, are equal under Unicode case-folding,
// which is a more general form of case-insensitivity.
func EqualFold[S, T Byteseq](s S, t T) bool

// Fields splits the string s around each instance of one or more consecutive white space
// characters, as defined by unicode.IsSpace, returning a slice of substrings of s or an
// empty slice if s contains only white space.
func Fields[S Byteseq](s S) []S

// FieldsFunc splits the string s at each run of Unicode code points c satisfying f(c)
// and returns an array of slices of s. If all code points in s satisfy f(c) or the
// string is empty, an empty slice is returned.
//
// FieldsFunc makes no guarantees about the order in which it calls f(c)
// and assumes that f always returns the same value for a given c.
func FieldsFunc[S Byteseq](s S, f func (rune) bool) []S

// HasPrefix tests whether the string s begins with prefix.
func HasPrefix[S, Prefix Byteseq](s S, prefix Prefix) bool

// HasSuffix tests whether the string s ends with suffix.
func HasSuffix[S, Suffix Byteseq](s S, suffix Suffix) bool

// Index returns the index of the first instance of substr in s, or -1 if substr is not present in s.
func Index[S, Substr Byteseq](s S, substr Substr) int

// IndexAny returns the index of the first instance of any Unicode code point
// from chars in s, or -1 if no Unicode code point from chars is present in s.
func IndexAny[S, Chars Byteseq](s S, chars Chars) int

// IndexByte returns the index of the first instance of c in s, or -1 if c is not present in s.
func IndexByte[S Byteseq](s S, c byte) int

// IndexFunc returns the index into s of the first Unicode
// code point satisfying f(c), or -1 if none do.
func IndexFunc[S Byteseq](s S, f func (rune) bool) int

// IndexRune returns the index of the first instance of the Unicode code point
// r, or -1 if rune is not present in s.
// If r is utf8.RuneError, it returns the first instance of any
// invalid UTF-8 byte sequence.
func IndexRune[S Byteseq](s S, r rune) int

// LastIndex returns the index of the last instance of substr in s, or -1 if substr is not present in s.
func LastIndex[S, Substr Byteseq](s S, substr Substr) int

// LastIndexAny returns the index of the last instance of any Unicode code
// point from chars in s, or -1 if no Unicode code point from chars is
// present in s.
func LastIndexAny[S, Chars Byteseq](s S, chars Chars) int

// LastIndexByte returns the index of the last instance of c in s, or -1 if c is not present in s.
func LastIndexByte[S Byteseq](s S, c byte) int

// LastIndexFunc returns the index into s of the last
// Unicode code point satisfying f(c), or -1 if none do.
func LastIndexFunc[S Byteseq](s S, f func (rune) bool) int

// Split slices s into all substrings separated by sep and returns a slice of
// the substrings between those separators.
//
// If s does not contain sep and sep is not empty, Split returns a
// slice of length 1 whose only element is s.
//
// If sep is empty, Split splits after each UTF-8 sequence. If both s
// and sep are empty, Split returns an empty slice.
//
// It is equivalent to SplitN with a count of -1.
func Split[S, Sep Byteseq](s S, sep Sep) []S

// SplitAfter slices s into all substrings after each instance of sep and
// returns a slice of those substrings.
//
// If s does not contain sep and sep is not empty, SplitAfter returns
// a slice of length 1 whose only element is s.
//
// If sep is empty, SplitAfter splits after each UTF-8 sequence. If
// both s and sep are empty, SplitAfter returns an empty slice.
//
// It is equivalent to SplitAfterN with a count of -1.
func SplitAfter[S, Sep Byteseq](s S, sep Sep) []S

// SplitAfterN slices s into substrings after each instance of sep and
// returns a slice of those substrings.
//
// The count determines the number of substrings to return:
//   n > 0: at most n substrings; the last substring will be the unsplit remainder.
//   n == 0: the result is nil (zero substrings)
//   n < 0: all substrings
//
// Edge cases for s and sep (for example, empty strings) are handled
// as described in the documentation for SplitAfter.
func SplitAfterN[S, Sep Byteseq](s S, sep Sep, n int) []S

// SplitN slices s into substrings separated by sep and returns a slice of
// the substrings between those separators.
//
// The count determines the number of substrings to return:
//   n > 0: at most n substrings; the last substring will be the unsplit remainder.
//   n == 0: the result is nil (zero substrings)
//   n < 0: all substrings
//
// Edge cases for s and sep (for example, empty strings) are handled
// as described in the documentation for Split.
func SplitN[S, Sep Byteseq](s S, sep Sep, n int) []S

// Trim returns a slice of the string s with all leading and
// trailing Unicode code points contained in cutset removed.
func Trim[S, Cutset Byteseq](s S, cutset Cutset) S

// TrimFunc returns a slice of the string s with all leading
// and trailing Unicode code points c satisfying f(c) removed.
func TrimFunc[S Byteseq](s S, f func (rune) bool) S

// TrimLeft returns a slice of the string s with all leading
// Unicode code points contained in cutset removed.
//
// To remove a prefix, use TrimPrefix instead.
func TrimLeft[S, Cutset Byteseq](s S, cutset Cutset) S

// TrimLeftFunc returns a slice of the string s with all leading
// Unicode code points c satisfying f(c) removed.
func TrimLeftFunc[S Byteseq](s S, f func (rune) bool) S

// TrimPrefix returns s without the provided leading prefix string.
// If s doesn't start with prefix, s is returned unchanged.
func TrimPrefix[S, Prefix Byteseq](s S, prefix Prefix) S

// TrimRight returns a slice of the string s, with all trailing
// Unicode code points contained in cutset removed.

// If s doesn't end with suffix, s is returned unchanged.
func TrimSuffix[S, Suffix Byteseq](s S, suffix Suffix) S

Notice that API proposal below does not include functions like strings.Map or strings.Join that build a new string.
The reason is avoiding dependency on strings.Builder.

Reducing code duplication is useful, but that could be done by adding an internal package.
This proposal by itself would be useful if we didn't already have bytes and strings packages.  But we do.  What do we gain by adding a third variant?

Proposed API allows us to use parameters of different types, you can instanitate Index[[]byte, string] and find index of string in a byte slice without string<->[]byte conversion.
That's quite similiar to what packages like go4.org/mem do, but without using unsafe.

I have a silly question: is it possible for the compiler to realize that there’s an unnecessary byte-slice conversion and optimize it away?

The compiler already does this in some specific cases.  I don't know if there is a general optimization for it.  See https://golang.org/wiki/CompilerOptimizations.


Training a model fails

Hi, I tried to run the command from the tutorial for model training, but it failed with the following error:
 CUDA_VISIBLE_DEVICES=0 th feedforward_neural_doodle.lua -model_name skip_noise_4 -masks_hdf5 data/starry/gen_doodles.hdf5 -batch_size 4 -num_mask_noise_times 0 -num_noise_channels 0 -learning_rate 1e-1 -half false
/root/torch/install/bin/luajit: /root/torch/install/share/lua/5.1/hdf5/group.lua:312: HDF5Group:read() - no such child 'style_img' for [HDF5Group 33554432 /]
stack traceback:
	[C]: in function 'error'
	/root/torch/install/share/lua/5.1/hdf5/group.lua:312: in function 'read'
	feedforward_neural_doodle.lua:49: in main chunk
	[C]: in function 'dofile'
	/root/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:145: in main chunk
	[C]: at 0x00406670

any ideas why hdf5 might fail with such error?

issue moved here: https://github.com/DmitryUlyanov/online-neural-doodle/issues/4


[bn] Localize blog/_index.md

Localize content/en/blog/_index.md in Bangla
Fixes Issue : #44993
Related PR : #45009
Tracking Issue: #31677

yeah sure @sftim , Thank you ❤🌟

/lgtm


missing inherited members in structure

In the popup Structure (but not the Structure window!) we inherited members are shown for ListMutator but not for MutableList.

Oh, wait, the IDEA Java Structure has the same bug. So this is a bug in IDEA, not in our plugin.

I think it's the same problem as the third bullet in https://github.com/ceylon/ceylon-ide-intellij/issues/76 ?

Yes, agreed. So I'll close this as a dupe.


Add mass-setup-ide to Justfile

Run 'scala-cli setup-ide' for all modules with one command

Paweł uses Intellij and it somehow supports multiple modules when they are
set up independently. I don't know how intermodule dependencies are
resolved in that case though.
On Fri 6. Oct 2023 at 16:43, Kacper Korban @.***> wrote:

@.**** commented on this pull request.
In Justfile
https://github.com/VirtusLab/besom/pull/223#discussion_r1348816837:

for file in ls */project.scala | cut -f1 -d'/'; do scala-cli setup-ide $file; done

for file in ls */*/project.scala | cut -f1,2 -d'/'; do scala-cli setup-ide $file; done

Hmmm, not sure if this is the way to do it. Does this work for you in
metals?
I was convinced that we have to use scala-compose and it takes an
additional parameter. Honestly, I'm not sure exactly how it should work.
The command I used was e.g. scomp setup-ide --conf-dir . core (where scomp
is my alias to the scala-compose binary)
—
Reply to this email directly, view it on GitHub
https://github.com/VirtusLab/besom/pull/223#pullrequestreview-1662023139,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACBVNURPQBFT5S4RZFGM5WDX6AKHZAVCNFSM6AAAAAA5VO26UCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTMNRSGAZDGMJTHE
.
You are receiving this because your review was requested.Message ID:
@.***>

Paweł uses Intellij and it somehow supports multiple modules when they are set up independently. I don't know how intermodule dependencies are resolved in that case though.
…
On Fri 6. Oct 2023 at 16:43, Kacper Korban @.> wrote: @.* commented on this pull request. ------------------------------ In Justfile <#223 (comment)>: > + for file in ls */project.scala | cut -f1 -d'/'; do scala-cli setup-ide $file; done + for file in ls */*/project.scala | cut -f1,2 -d'/'; do scala-cli setup-ide $file; done Hmmm, not sure if this is the way to do it. Does this work for you in metals? I was convinced that we have to use scala-compose and it takes an additional parameter. Honestly, I'm not sure exactly how it should work. The command I used was e.g. scomp setup-ide --conf-dir . core (where scomp is my alias to the scala-compose binary) — Reply to this email directly, view it on GitHub <#223 (review)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACBVNURPQBFT5S4RZFGM5WDX6AKHZAVCNFSM6AAAAAA5VO26UCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTMNRSGAZDGMJTHE . You are receiving this because your review was requested.Message ID: @.***>

Inter-module is not working properly, if you click on code from other module you go to jar dependency source code.

If this is controversial, I'm happy to close as won't-fix :)

It's not controversial but a) rename it to clearly suggest that it's meant for IDEA, this setup borks metals immediately so it's not setup ide, it's setup idea; b) document how to setup IDEA in contribooting.md please.

That's my review btw.

I've renamed the just target and updated the CONTRIBUTING