Flaky test: TestInvalidHeaders

Based on this test it looks like in some cases our tests are getting blank responses back.

Duplicate of https://github.com/aspnet/KestrelHttpServer/issues/2635


sokol_app.h Android: key_up/down, show_keyboard, clipboard get/set, quit_requested

Updated some parts of sokol_app for Android:

The back key will send the "SAPP_EVENTTYPE_QUIT_REQUESTED" instead of just shutting down
_sapp_android_key_event send all SAPP_EVENTTYPE_KEY_DOWN/SAPP_EVENTTYPE_KEY_UP
The clipboard is supported using JNI, the get/set functions handle the conversion to MUTF8
show_keyboard should work properly now
keyboard_shown added, even if it finds if the keyboard is visible in a hackish way since there is no standard way to get this information

Nice :) I virtual keyboard support from plain C was a hopeless case, but this doesn't actuall look too bad ;)
Just FYI, I'll delay all sokol_app.h PRs until I'm tackling the multiwindow PR, hopefully this won't require too many changes in backend code, especially not on mobile platforms which won't have multiwindow-support anyway. But just as a heads up that other sokol_app.h PRs will be delayed a bit more.

It still feels so hackish to manage, I hope it will works on all devices.
No problems for the delay, I'll update my PR once the multiwindow is integrated in master.

Any idea when this will be merged? Looks like you stopped working on the multiwindow PR.

It's back on my todo list for the next round of PRs (after I'm done with sokol_spine.h).

Ok, I'll start looking into this PR now.

@olivierbuisard I'm getting build errors like this when compiling as C++:
/Users/floh/projects/sokol/sokol_app.h:9305:14: error: member reference type 'JavaVM' (aka '_JavaVM') is not a pointer; did you mean to use '.'?
    if ((*vm)->GetEnv(vm, (void**)env, JNI_VERSION_1_6) == JNI_OK) {

I don't quite understand the (*vm)->GetEnv() pointer indirection, because vm is a simple pointer to a struct, not a pointer to a pointer:
    JavaVM *vm = _sapp.android.activity->vm;
    *env = NULL;

    if ((*vm)->GetEnv(vm, (void**)env, JNI_VERSION_1_6) == JNI_OK) {
        return false;
    }

The _JavaVM struct declaration looks like this (with the embedded JNIInvokeInterface struct):
/*
 * JNI invocation interface.
 */
struct JNIInvokeInterface {
    void*       reserved0;
    void*       reserved1;
    void*       reserved2;

    jint        (*DestroyJavaVM)(JavaVM*);
    jint        (*AttachCurrentThread)(JavaVM*, JNIEnv**, void*);
    jint        (*DetachCurrentThread)(JavaVM*);
    jint        (*GetEnv)(JavaVM*, void**, jint);
    jint        (*AttachCurrentThreadAsDaemon)(JavaVM*, JNIEnv**, void*);
};

/*
 * C++ version.
 */
struct _JavaVM {
    const struct JNIInvokeInterface* functions;

#if defined(__cplusplus)
    jint DestroyJavaVM()
    { return functions->DestroyJavaVM(this); }
    jint AttachCurrentThread(JNIEnv** p_env, void* thr_args)
    { return functions->AttachCurrentThread(this, p_env, thr_args); }
    jint DetachCurrentThread()
    { return functions->DetachCurrentThread(this); }
    jint GetEnv(void** env, jint version)
    { return functions->GetEnv(this, env, version); }
    jint AttachCurrentThreadAsDaemon(JNIEnv** p_env, void* thr_args)
    { return functions->AttachCurrentThreadAsDaemon(this, p_env, thr_args); }
#endif /*__cplusplus*/
};

...should the invocation not look like this?
    vm->functions->GetEnv(...)

@olivierbuisard another question: the UTF-8 <=> MUTF-8 conversion functions look a bit scary (in terms of buffer overflows). Are those copied from some "reference implementation" where I could take a look at the "original", and maybe also leave a link to the original source in sokol_app.h?
Btw, I'm doing those changes in my own merge-branch, no need for you to update the PR.

Ugh, this whole UTF-8 vs MUTF-8 topic is a rabbit hole of epic proportions. Why is every little thing on Android such a mess.  It's like a shit fractal ;)

This might be my new favorite phrase.

return DEREF_IF_C(self)->FindClass(self, name);

That won't work because the C++ version does not need self passed as first parameter.

Why is every little thing on Android such a mess.

Agreed.

...it's probably possible to solve this with variadic macros, but I didn't want to go down that road because it would be the first usage in the sokol headers, and I'd need to check first if it works across all compilers both in C and C++ mode.

I'm going to add a new mobile-input sample to the sokol-samples repo to better test the features in this PR and also protect it from regressions. It'll be a couple more days until the merge.

_sapp_android_get_jni_env is useful for accessing other android APIs, can it be made public?

Also, the screen keyboard row in the feature matrix needs updating.

Fixed in my branch just now.

_sapp_android_get_jni_env is useful for accessing other android APIs, can it be made public?

There's sapp_android_get_native_activity() already, and getting the JNIEnv from that is relatively trivial. Would that be enough?

Hrrcchhh... the PR doesn't provide SAPP_EVENTTYPE_CHAR events unfortunately, and it looks like that there's no way to get the UNICODE code point from a key event through the NDK... which means even more ugly JNI code. I'll abandon the PR for now. If anybody wants to pick up the pieces and work on this, my WIP branch is here: https://github.com/floooh/sokol/tree/olivierbuisard-master

Hm, that's really sad to hear. I get your point that Unicode support is important, but wouldn't it be better to have a "normal" keyboard at least than nothing? If you maybe accept ASCII input only anyway or e.g. just want to use arrow keys on a physical keyboard for scrolling, this PR would be very useful, don't you think so?
Yes, you could implement your own virtual keyboard, but why when there's already this implementation here?

There's also this hack to detect if the keyboard is open (the original appriach didn't work on my Pixel 4), and the JNI code is just too much hassle. And properly handling UNICODE input would increase the "JNI surface" even more.
 I'm currently thinking about removing the mobile keyboard functions completely, and instead allow to inject sokol-app events from the outside. This would allow to solve all sorts of scenarios without bloating sokol_app.h furhter, for instance IME support on Windows and Mac, gesture recognotion, support for other input devices like gamepads, etc... these things could then be handled by 3rd-party-libs with a bit of glue code, or by specialized sokol headers where the coding mess would be better isolated.

That's disappointing to hear.  I was excited because it seemed sokol was going to succeed where others (glut/glfw/glfm) have failed.  The native virtual keyboards are so advanced these days, I just don't see anyone coming up with a custom one that would be anywhere close in features.

For reference, here is how glfm gets unicode key char events:
https://github.com/brackeen/glfm/blob/master/src/glfm_platform_android.c#L389

That's looks actually quite simple!

I agree with the sentiment, platform abstraction can be a rabbit hole, and sokol-app should probably define some sort of line, or what "Tier 1" support means, and I would argue that IME might not make the cut.  And I agree that having virtual keyboards be "pluggable" via separate headers makes sense.  Some apps will want a custom game oriented keyboard, and some will want the full-blown native experience.
But however you decide to structure the code, I think including support for the native virtual keyboards as a "Tier 1" feature in the main repo will be greatly appreciated by many, and really I hope this work can be merged before the code is restructured.
I also wonder if it would make sense to go a step further and split sokol-app out for each platform, so there is an easier way to use the wayland backend.

That's disappointing to hear. I was excited because it seemed sokol was going to succeed where others (glut/glfw/glfm) have failed. The native virtual keyboards are so advanced these days, I just don't see anyone coming up with a custom one that would be anywhere close in features.

Completely agree. Can't wait to see this branch merged!


Map all blasters for level 1 in wave

All blasters in level 1 added. Scores incremented (100 points)
Also, end of the tunnel fade out added as well.


AUto complete

How do you enable auto-complete?

It is enabled by default. You just start typing and the editor should give you suggestions!
However, you do need to be connected to the internet for this to work

Of course i have internet? Weird,minds doesn't, i can share video snippet shortly

@firelotuz1

@firelotuz1 any updates?


cmd/compile: compiler does vet things

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

$ go version
go version go1.19rc2 linux/amd64

Also for many previous versions.
Does this issue reproduce with the latest release?
Yes
What did you do?

package main

func main() {}

func foo() (err error) {
	{
		err := bar()
		if err != nil {
			return
		}
	}

	return
}

func bar() error {
	return nil
}

What did you expect to see?
Complies okay.
What did you see instead?
Fails to compile.
$ go run main.go
# command-line-arguments
./main.go:9:4: result parameter err not in scope at return
	./main.go:7:3: inner declaration of var err error

Duplicate of #5425
https://go.dev/ref/spec#:~:text=functions are executed.-,Implementation restriction%3A,-A compiler may

Implementation restriction: A compiler may disallow an empty expression list in a "return" statement if a different entity (constant, type, or variable) with the same name as a result parameter is in scope at the place of the return.

This does prevent some valid code from compiling.

I plead to reopen this issue, for three reasons:

go vet is also able to catch this.
gc doesn't catch all similar such bugs.
I recently wrote several such (expected) valid code, but which is rejected by gc. The following is a simplified example

package main

import "fmt"

func g() (int, error) {
	return 0, fmt.Errorf("not implemented")
}

func f() (err error) {
	if n, err := g(); err == nil {
		return
	} else {
		return fmt.Errorf("%w: %d", err, n)
	}
}

func main() {
	fmt.Println(f())
}

Just let compilers do compiler things is a good philosophy.
@griesemer @ianlancetaylor

@go101 As @seankhliao said, the language spec explicitly calls this out as an implementation restriction.  The implementation restriction was added to the tools in https://go.dev/cl/5245056.  That predates the proposal process; it was part of the set of changes made for the release of Go 1.  You can see it mentioned at https://docs.google.com/document/pub?id=1ny8uI-_BHrDCZv_zNBSthNKAMX_fR_0dc6epA6lztRE which is linked from the blog entry https://go.dev/blog/go1-preview.  I don't think there is any new information since then, so I don't think we are going to change that decision.

The problem is the restriction might do false positive things, which is okay for govet, for is weird for go compilers.
Personally, I don't get why this warning is any more harmful than the other warnings reported by govet. So I don't understand why it is promoted to the compiler level.

there is any new information since then

If this breaks user expectations and causes unhappy user experiences is not new information ...

BTW, there is a poll: https://twitter.com/go100and1, which shows 2/3 voters think it should compile.

The compiler gives an error on this code because we observed that people thought they could use a naked return to return an error, and didn't realize that the named err result parameter was being shadowed by a locally declared err variable.  People were writing that kind of code in practice, but it was never what they wanted.
It's true that we might make a different decision today, but I think that given that the compiler has acted this way for 10 years, we need a really strong reason to change it.  And "weird for Go compilers" is a valid reason, but it's not a strong reason.

we observed that people thought they could us .... but it was never what they wanted.

This is also true for many cases reported by vet.
And this decision was made before 1.0, so I doubt the validity of the reason. At least for me, it is not true.
Personally, I think this is a “draw legs on a snake” thing, because it breaks user expectations, which is a strong enough reason.


Revert "[BEAM-12456] Parallel querying in JdbcIO"

Reverts apache/beam#15049

Run SQL PostCommit

@tysonjh Why #15049 should be reverted?

@tysonjh Could you elaborate why #15049 should be reverted?

I am investigating flakiness of the beam_PostCommit_SQL job. I'm not sure it should be reverted, but a "draft" PR is an easy way to check this on the Jenkins infra.

Ok, thanks! Please, let me know if that PR is a real cause.

Run SQL PostCommit

@aromanenko-dev I think we need to revert. There are timeouts in testSQLSelectsArrayAttributes that only started after the PR was merged (see BEAM-12571), this draft PR hasn't had a single timeout in that test.

I'm running the post commits one more time to confirm.

Does this test use somehow the new functionality that was added in #15049? I don't see that any old functionality was changed there.
R: @daria-malkova

False alarm! Someone pointed out to me that the test has been flaky for a while,
https://issues.apache.org/jira/plugins/servlet/mobile#issue/BEAM-12320


Tests fail: TabError: inconsistent use of tabs and spaces in indentation

  File "./scripts/test_rand.py", line 123
    expected = int(math.sqrt(oper1));
                                    ^
TabError: inconsistent use of tabs and spaces in indentation
*** Error code 1

Python-3.8

There are more than just this incompatibility I think - but it should be a fairly quick task to make the code python3-compatible.
I will give it a shot once I have the time, but if you (or anyone else) makes a PR with that, I'd be inclined to accept 😉 😃


[Docs]  Add a page about Appsmith's architecture

A user I spoke to wanted to see Appsmith's architecture diagram to understand how data flows under the hood. This is a common question in the minds of developers who self-host Appsmith. We should have a dedicated page with diagrams and explanations about the architecture diagram.
We should also write a blog post about the architecture because developers considering Appsmith would love to read about technical decisions and the reasoning behind them.

Any progress about this one?

I'm taking a class on Software Architecture and this would be perfect for my class. Is this issue still up for grabs?

I'm taking a class on Software Architecture and this would be perfect for my class. Is this issue still up for grabs?

I am also in this class. Any chance we could contribute part of it? @areyabhishek

@carbonara-mac @Rooney30 I missed your message. You can absolutely contribute to this. I'll assign the issue to both of you.

We recently published a page about Deployment Architecture which covers this. So closing this issue.


Fix CoreSchema's workaround

Dict[str, Any] is incompatible with concrete schemas.
This patch uses Mapping[str, Any] instead.
close #542

Codecov Report

Merging #543 (434a0da) into main (ed3a372) will increase coverage by 0.00%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #543   +/-   ##
=======================================
  Coverage   94.71%   94.71%
=======================================
  Files          93       93
  Lines       12367    12368    +1
  Branches       24       24
=======================================
+ Hits        11713    11714    +1
  Misses        648      648
  Partials        6        6

Impacted Files
Coverage Δ

pydantic_core/core_schema.py
96.81% <100.00%> (+<0.01%)
:arrow_up:

Continue to review full report in Codecov by Sentry.

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

thanks so much.


MediaManagerImplementation does not contains MediaRemoteControl

🐛 Bug Report
MediaManagerImplementation does not contains MediaRemoteControl
Configuration
I've implemented MediaRemoteControl renderer for iOS on v. 0.4.x and it worked, but after update to 0.5.3 I have an error

MediaManagerImplementation does not contains MediaRemoteControl
documentation

my old code
[Register(Application.AppName)]
    //[Register("AppDelegate")]
    public class MediaFormsApplication : UIApplication
    {
        private MediaManagerImplementation MediaManager => (MediaManagerImplementation)CrossMediaManager.Current;

        public override void RemoteControlReceived(UIEvent uiEvent)
        {
            // MediaManagerImplementation.MediaRemoteControl.RemoteControlReceived(UIEvent)
            MediaManager.MediaRemoteControl.RemoteControlReceived(uiEvent);
        }

    }

Version: 0.5.3
Platform:

[x] :iphone: iOS
[ ] :robot: Android
[ ] :checkered_flag: WPF
[ ] :earth_americas: UWP
[ ] :apple: MacOS
[ ] :tv: tvOS
[ ] :monkey: Xamarin.Forms

I've got the same error to revert upgrading.

I noticed the same thing today too!

This is fixed in 0.5.9. There is no need to add RemoteControlReceived anymore.


Expo client app stuck at "Building JavaScript bundle... 74.37%"

Description
I haven't done much -- I'm on a fresh Windows 10 machine. I installed node, downgraded npm to version 4, and then ran the commands suggested:
npm -i g create-react-native-app
create-react-native-app NewProject
cd NewProject
npm start
After starting the app, a QR code was displayed. I installed Expo on my Android Device and scanned the QR code. I've made no modifications to any files beyond the above commands.
Expected Behavior
I expected the program to build successfully.
Observed Behavior
Expo got stuck on Building JavaScript bundle... 74.37%, and I could not seem to get it to complete.
I have not encountered any errors that I can see; I'm not sure if there's a way to get any kind of error output, but the application is simply stuck.
Environment
Please run these commands in the project folder and fill in their results:

npm ls react-native-scripts<EMAIL_ADDRESS>npm ls react-native<EMAIL_ADDRESS>npm ls expo<EMAIL_ADDRESS>node -v: v8.9.2
npm -v: 4.6.1
yarn --version: not installed (is this the issue?)
watchman version: not installed (is this the issue?)

Also specify:

Operating system: Windows 10
Phone/emulator/simulator & version: OnePlus 3T; Android version 7.1.1; OxygenOS version 4.5.1

Thanks for any assistance!

After retrying this a few times and uninstalling & reinstalling Expo it seems to have worked. I'll close the issue, but I'd be glad to help debug things further if desired. Thanks!


Mouse cursor disappears after adjusting environment preview sky light parameters

Godot version
4.0 alpha 4 [f47097973]
System information
Vulkan, Windows 11, Nvidia GTX 1060, intel i5 11400
Issue description
After clicking the three dots on the top of the editor preview to adjust the properties of the sky light and adjusting the angular altitude or the azimuth with the sliders, the mouse cursor no longer displays while Godot is open

.
Steps to reproduce
In a new project, adjust the azimuth or angular altitude settings of the sun with the sliders from the drop down menu above the preview window.
Minimal reproduction project
No response

I remember seeing another issue reporting this already, but I can't find it right now.


Garbage after flashing generic ESP8266

Hi guys. Congratulations and thanks for Adafruit_WebSerial_ESPTool - this makes flashing ESP devices much more easier and accessible for beginners in a wide variety of environments!
I have tried to flash some ESP32 (not S2) generic boards with MicroPython firmware. All worked "nice and easy" and I quickly got MicroPython running on the boards!
My problem is with ESP8266. I have tried to flash MicroPython and CircuitPython to some ESP8266 models, and all "failed". By "failed" I mean that the Adafruit_WebSerial_ESPTool did flash the board, but when I reset the ESP8266 module, I only get continuous garbage coming from the serial port to the terminal (tried several speeds).
Here are some tests I did:
TEST 1 (works)
(with generic ESP32 / Adafruit ESPTool)
curl -LO https://github.com/nos86/micropython/releases/download/esp32-can-driver-v2/firmware.bin
On Google Chrome, select 0x1000 and click program:
Adafruit WebSerial ESPTool loaded.
Connecting...
Connected successfully.
Try to reset.
Readloop started
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Connected to ESP32
MAC Address: 24:6F:28:A1:B7:60
Uploading stub...
Running stub...
Stub is now running...
Writing data with filesize:1179600
Erase size 1179600, blocks 2304, block size 512, offset 0x1000, encrypted no
Took 126453ms to write 1179600 bytes
To run the new firmware, please reset your device.
Works at first try! :-)
By the way, if I use esptool.py, I have the output, which is consistent with the Adafruit_WebSerial_ESPTool:
Compressed 1179600 bytes to 743239...
Took 3.49s to erase flash block
Wrote 1179600 bytes (743239 compressed) at 0x00001000 in 22.9 seconds (effective 411.4 kbit/s)...
Hash of data verified.

TEST 2
(Generic ESP8266 / Adafruit ESPTool)
Connecting...
Connected successfully.
Try to reset.
Readloop started
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 3000 milliseconds
Error: Didn't get enough status bytes
After reloading the webpage, works:
Adafruit WebSerial ESPTool loaded.
Connecting...
Connected successfully.
Try to reset.
Readloop started
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Connected to ESP8266EX
MAC Address: C8:2B:96:2F:43:40
Uploading stub...
Running stub...
Stub is now running...
Writing data with filesize:632064
Erase size 632064, blocks 1235, block size 512, offset 0x0000, encrypted no
Took 67159ms to write 632064 bytes
To run the new firmware, please reset your device.
After resetting, garbage is continuously sent over the serial and LED blinks randomly.

TEST 3, with Generic ESP8266 / Adafruit ESPTool:
Tried to change baud rate to 460800. Chrome freezes when clicking connect, causing CPU usage to go to 100%

TEST 4, with Wemos D1 mini ESP8266 / Adafruit ESPTool:
Adafruit WebSerial ESPTool loaded.
Connecting...
Connected successfully.
Try to reset.
Readloop started
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Timed out after 100 milliseconds
Connected to ESP8266EX
MAC Address: 2C:F4:32:3C:E5:75
Uploading stub...
Running stub...
Stub is now running...
Writing data with filesize:632064
Erase size 632064, blocks 1235, block size 512, offset 0x0000, encrypted no
Took 68114ms to write 632064 bytes
To run the new firmware, please reset your device.
After resetting, garbage is continuously sent over the serial and LED blinks randomly.
BUT...
If I flash the same file with esptool.py, it works (see below)!
esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect -fm dio 0 *bin
Erasing flash...
esptool.py v1.3
Connecting....
Running Cesanta flasher stub...
Erasing flash (this may take a while)...
Erase took 10.0 seconds
esptool.py v1.3
Connecting....
Auto-detected Flash size: 32m
Running Cesanta flasher stub...
Flash params set to 0x0240
Wrote 634880 bytes at 0x0 in 55.1 seconds (92.2 kbit/s)...
Leaving...
Note that with ESP32, the bytes written are equal on esptool.py and WebSerialESP_Tool (1179600) while for ESP8266 they differ (632064 versus 634880).
Maybe I am doing something wrong, so any help / hint is welcome.
By the way, I am one of the authors of BIPES project, which allows quick and easy block based programming using serial or webrepl for MicroPython and CircuitPython. We want to allow users to flash CircuitPython or MicroPython firmwares easily and then use BIPES to program / monitor / interact with the board all from the browser.
http://bipes.net.br/beta2/ui/
Thanks for your time and best regards!
Rafael

First of all, thanks for testing. This has mostly been tested with ESP32 and ESP32S2 and is not a full implementation of the official esptool. Did you try at 115200? Also, I noticed you provided -fm dio 0, so it's possible the issue is this is not implemented.

First of all, thanks for testing. This has mostly been tested with ESP32 and ESP32S2 and is not a full implementation of the official esptool. Did you try at 115200? Also, I noticed you provided -fm dio 0, so it's possible the issue is this is not implemented.

Hi! Thank you very much for the quick reply!
All the tests I did were @ 115200. Just tried ESP8266 at 460800bps again, and had the same issue (flashed, but flash content is inconsistent).
[...]
Baud rate can only change on ESP32 and ESP32-S2
Connected to ESP8266EX
MAC Address: C8:2B:96:2F:43:40
Uploading stub...
Running stub...
Stub is now running...
Writing data with filesize:632632
Erase size 632632, blocks 1236, block size 512, offset 0x0000, encrypted no
Took 67240ms to write 632632 bytes
To run the new firmware, please reset your device.
[...]
WebSerial_ESPTool at 460800:
Writing data with filesize:632632
WebSerial_ESPTool at 115200:
Writing data with filesize:632632
esptool.py:
Wrote 634880 bytes at 0x0 in 55.2 seconds (92.0 kbit/s)...
About -fm dio 0, it is something I have as default on my scripts, but I can also flash without -fm dio 0
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect 0 esp8266-20191220-v1.12.bin
(Just tested the the command above works successfully and I get a MicroPython shell on my terminal)
So, DIO mode is not needed in this case.
One last point:
esptool.js has:
const ESP_SPI_SET_PARAMS = 0x0B;
esptool.py:
Flash params set to 0x0240
(which consists of:
flash_params = struct.pack(b'BB', flash_mode, flash_size + flash_freq
on esptool.py#L3454)
I do not know if these params are related, but maybe it is something to consider.
thanks again!
Rafael

So, DIO mode is not needed in this case.
Good to know so we don't chase that red herring.

One last point:
esptool.js has:
const ESP_SPI_SET_PARAMS = 0x0B;
esptool.py:
Flash params set to 0x0240
(which consists of:
flash_params = struct.pack(b'BB', flash_mode, flash_size + flash_freq
on esptool.py#L3454)
I do not know if these params are related, but maybe it is something to consider.

Yeah, likely there's some part of the esp8266 implementation that just needs to be added.

I did a bunch of refactoring over the past 5 months and @brentru just tested the ESP8266 today and it worked, so I'm closing for now. We can always reopen if it's still an issue.


Want to Add Footer

Issue Type:

[x] Feature Request

Describe the bug
-This is not a bug, I want to add Footer.
Screenshots

@VidhiBhatt01 @arpit456jain  Assign me


Feature Request - Pocketbase OAuth2

I think it would be nice to have ability to auth users with another pocketbase instance... basicaly have 1 instance allow only OAuth2 with another pocketbase instance. I am having in mind auth systems like google and microsoft have, you can use the same account on many services, and they just redirect you to login.example.net

I think this was discussed already - https://github.com/pocketbase/pocketbase/issues/3567.

erm sorry I forgot about that one...


Wiki Changes

Thank me l8r.
https://gist.github.com/DragonDev15/a6a1ad27dab87c1aa6f922c6c25fe205

I'm sort of confused by this issue.
Have you already made these changes to the wiki? Do you have permission to change the wiki?
If you don't have perms to edit the wiki, ping me and I can do it for you, otherwise you can just change the wiki without making a PR.

Dragon doesnt have access to change the wiki,.
Sending a PR for a wiki is a convoluted process so i said for him to just send us a git diff of his changes from a clone of the wiki and we can merge it in.

i've merged this into the new wiki, new wiki pages can be found in the standard repository under the docpages folder.
You can build a copy of the documentation by running doxygen from the top level folder of the source tree.
The new site and documentation are here:
https://dpp.brainbox.cc/


Uncaught ReferenceError: defineModel is not defined

Vue version
3.3.1
Link to minimal reproduction
https://github.com/yanbowe/vue-demo
Steps to reproduce
升级到vue3.3.1后defineModel宏无法正常运行
What is expected?
可以正常运行
What is actually happening?
升级到vue3.3.1后使用defineModel宏报错
System Info
System:
    OS: macOS 12.6
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 32.01 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.15.0 - /usr/local/bin/node
    Yarn: 1.22.18 - /usr/local/bin/yarn
    npm: 8.19.2 - /usr/local/bin/npm
  Browsers:
    Chrome: 111.0.5563.146
    Safari: 16.0
  npmPackages:
    vue: ^3.3.1 => 3.3.1

Any additional comments?
No response

@yanbowe Did you opt in? https://github.com/vuejs/rfcs/discussions/503

@yanbowe Did you opt in? vuejs/rfcs#503 @yanbowe 你选择加入了吗？ vuejs/RFCS#503
yes

defineModel也并不存在于vue的Options类型中

You didn't post your code, are you sure you're not importing it either? It's a compiler macro, you don't need to import it like defineProps, defineEmits, etc...

我提供的代码是最新的，而且defineModel默认是关闭的，需要配置显性开启吗

I got the same issue, and it looks like my vue plugin didn't resolve thedefineModel macro at all🫠

@yanbowe I mean you don't need to do import { defineModel } from 'vue' in your script setup

@yanbowe What I meant is that you didn't use something like import { defineModel } from 'vue' (and any other variation of that) since that's a common misconception, as defineModel are meant to be used just like with defineProps and all other macros.
I noticed just now you attached a repo, which I dind't before (my bad). I checked and you seem to have all in order, so I'm out of ideas (just by checking your GitHub repo alone!)

@yanbowe What I meant is that you didn't use something like import { defineModel } from 'vue' (and any other variation of that) since that's a common misconception, as defineModel are meant to be used just like with defineProps and all other macros.
I noticed just now you attached a repo, which I dind't before (my bad). I checked and you seem to have all in order, so I'm out of ideas (just by checking your GitHub repo alone!)

事实上一开始我就是按照正常的宏来使用的例如defineProps的用法，除了升级vue版本没有增加任何配置，但是defineModel宏是不工作的，所以我又按照rfcs中的说明去vite.config.js中去设置defineModel，得到的结果是一样的

Sorry, the opt-in config example in the RFC was wrong - it should be
// vite.config.js
export default {
  plugins: [
    vue({
      script: {
        defineModel: true
      }
    })
  ]
}

@yyx990803 I still get eslint error for
'defineModel' is not defined. eslint[no-undef](https://eslint.org/docs/latest/rules/no-undef)

It works for defineProps and the other stuff


Correct code generates an error without a blank line following it.

Challenge Accessing Nested Arrays in JSON has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
I noticed in a couple cases working on the JSON examples that if there's not a blank line after my code, I get "SyntaxError: Illegal return statement".
After I add the carriage return after the last line, it submits fine.
My code:
// Setup
var myPlants = [
  {
    type: "flowers",
    list: [
      "rose",
      "tulip",
      "dandelion"
    ]
  },
  {
    type: "trees",
    list: [
      "fir",
      "pine",
      "birch"
    ]
  }
];

// Only change code below this line

var secondTree = myPlants[1].list[1]; // Change this line

As you mentioned, also seeing this in Accessing Nested Objects in JSON. Seems like the common.executeChallenge$ method isn't agreeing with format without the newline.  Good catch @imnlfn :+1:

So it looks like the tail functions from the basic-javascript.json from these nested JSON problems are being appended to the code in the editor, but the actual function definition is being cut off due to the comment on the last line, "// Change this line".
var secondTree = myPlants[1].list[2]; // Change this line(function(x) {
if(typeof x != 'undefined') {      return "secondTree = " + x;   }   return "secondTree is undefined"; })(secondTree);
This code is being evaluated in the iFrameScripts.js in common.getJsOutput where eval(code) is catching the illegal return statement error. At the top of my head, the simplest solution would be to add a newline after the comment in question, but any other suggestions are welcomed. I'll try to put in a PR for this asap! Thanks
Screenshots attached below for clarity !

@bteng22 Thanks a lot for analyzing this in depth. :+1:

@raisedadead no problem! it was my pleasure :smile:

I can sort this out!

@benmcmahon100 We have a PR Open, waiting on @bteng22 to update this!

@raisedadead sorry about that was out of town. updating this as we speak! should be ready for a final check soon !


chore: update repository template to 92ae8b93

Updated repository templates to https://github.com/ory/meta/commit/92ae8b93c03738d00573f229a412f9eac7a71a99.

Coverage remained the same at 43.429% when pulling 8a6a886a75dc715d8c8c60bf561a7cc7a41495a6 on meta-09-25-20-08-58-13 into c52916ea66c86e8b77846220ae40a8b47c1643f8 on master.


A fix for the issue #295

Signed-off-by: Cristiano V. Gavião<EMAIL_ADDRESS>A fix for #295

@vietj, may I ask you to review this PR?

did you check this works with generators vertx-rx or service-proxy ?

did you check this works with generators vertx-rx or service-proxy ?

Well, we are not using vertx-rx, but we are using service-proxy and vertx-web-api-service intensively in our project.
Are there tests specifically for them?

did you try if it works with service-proxy ?

did you try if it works with service-proxy ?

Well, with DataObject it is 100%, but with service-proxy not entirely. Only when returning the enum. If I use the enum as parameter, it is not using the Converter :(
I've created this:
    Future<String> testEnum(RunMode mode);
    Future<RunMode> testEnum2(String mode);

and the resulted methods are:
        case "testEnum2": {
          service.testEnum2((java.lang.String)json.getValue("mode")).onComplete(res -> {
                      if (res.failed()) {
                        HelperUtils.manageFailure(msg, res.cause(), includeDebugInfo);
                      } else {
                        msg.reply(res.result() != null ? br.com.c8tech.mmarket.backend.models.JsonConverters.serializeRunMode(res.result()) : null);
                      }
                   });
          break;

    case "testEnum": {
      service.testEnum(json.getString("mode") == null ? null : br.com.c8tech.mmarket.backend.models.RunMode.valueOf(json.getString("mode"))).onComplete(HelperUtils.createHandler(msg, includeDebugInfo));
      break;
    }

@vietj, do you have any clue about what I've missed ?

I don't know, that need to be studied

I don't know, that need to be studied

I'm thinking that the problem is in the io.vertx.serviceproxy.generator.ServiceProxyGen class. More specifically in the io.vertx.serviceproxy.generator.ServiceProxyGen.generateAddToJsonStmt(ParamInfo, CodeWriter) method. It doesn't check about converters there.

I don't know, that need to be studied

The issue that I found is definitively on io.vertx.serviceproxy.generator.ServiceProxyHandlerGen.generateJsonParamExtract(ParamInfo)

can you check also vertx-rx ? I think the same would apply

can you check also vertx-rx ? I think the same would apply

Well, I don't use and don't know about this module. But I cloned and searched for enum references. I just found references on some TCK related classes...
Btw, how are those tck classes supposed to work?

TCK classes are created in this project and then generated in other projects with some tests to check it works according to expectations. Indeed we need something in TCK to test your new behavior.

TCK classes are created in this project and then generated in other projects with some tests to check it works according to expectations. Indeed we need something in TCK to test your new behavior.

I think I did what was in my possibilities already...

Hey @vietj, is there anything more I can do for you in this PR? I think I've already created the TCK tests that you referred and I've got no errors while building RX.

@cvgaviao we need implementations for vertx-rx, vertx-lang-kotlin-coroutines and vertx-service-proxy

well, I already provided a PR for vertx-service-proxy.  I have not seen
anything any need on vertx-rx, besides the tck that I've already did. :-(
wouldn't you take care of the vertx-lang-kotlin-coroutines in another time?
On 29/06/2020 04:36, Julien Viet wrote:

@cvgaviao https://github.com/cvgaviao we need implementations for
vertx-rx, vertx-lang-kotlin-coroutines and vertx-service-proxy
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vert-x3/vertx-codegen/pull/300#issuecomment-650987299,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAB5OVW5J4YNCLS36EBRRDDRZBAAJANCNFSM4M33DXOA.

Hi @vietj. You didn't give me any feedback about all those related PRs.
So, are you going to accept them?  Because if you won't, I must research another way to deal with my customer's data.

@cvgaviao can you provide a new PR with a single commit and sign it along with the Eclipse Contributor Agreement ?

@cvgaviao can you provide a new PR with a single commit and sign it along with the Eclipse Contributor Agreement ?

I would like to get this handled soon.

I would like to get this handled soon.

@cvgaviao can you provide a new PR with a single commit and sign it along with the Eclipse Contributor Agreement ?

@vietj I have no free time to look at this in the next weeks.

@cvgaviao can you provide a new PR with a single commit and sign it along with the Eclipse Contributor Agreement ?

@vietj I have no free time to look at this in the next weeks.

@cvgaviao I just need you to merge all the existing commits in a single commit and sign the Eclipse Contributor Agreement and sign the commit , no code change is required

@cvgaviao I just need you to merge all the existing commits in a single commit and sign the Eclipse Contributor Agreement and sign the commit , no code change is required

@cvgaviao I just need you to merge all the existing commits in a single commit and sign the Eclipse Contributor Agreement and sign the commit , no code change is required

@vietj, I'm in a hurry here.  But I'll do this tomorrow.

@cvgaviao I just need you to merge all the existing commits in a single commit and sign the Eclipse Contributor Agreement and sign the commit , no code change is required

@vietj, I'm in a hurry here.  But I'll do this tomorrow.

I'm closing this forgotten branch and I going to add a new one.


Hometown compatibility

Hi there! This tool looks excellent but I think it won't auth with instances running the popular Hometown fork of Mastodon. In particular, I and others get an incompatibleServerSoftware error when trying to auth to my instance at tech.intersects.art. If it's just a matter of checking for compatible version strings or similar, can I request you allow those? From an API perspective I think Hometown is so close that it won't create any issues.

I've published @ckolderup changes to preview, can you test if it works for your instance?
https://mastodon-flock-preview.vercel.app/


[GHSA-qjqp-xr96-cj99] Trix Editor Arbitrary Code Execution Vulnerability

Updates

Affected products
References

Comments
Suggesting adding the actiontext component of Rails versions 7.0 and 7.1 as documented as being affected by the Rails team at https://discuss.rubyonrails.org/t/xss-vulnerabilities-in-trix-editor/85803
https://rubyonrails.org/2024/5/17/Rails-Versions-7-0-8-3-has-been-released
https://rubyonrails.org/2024/5/17/Rails-Versions-7-0-8-2-and-7-1-3-3-have-been-released
Not sure if this is the appropriate way to manage these situations where one product embeds another, but seems reasonable.

Hi there @afcapel! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository.
This change will be reviewed by our Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory

@chadlwilson makes sense to me, since ActionText bundles Trix dist files 👍
But I'm afraid I don't maintain Trix anymore and I can't help here.

I'm not sure how this works with the GH Reviewed Advisories, but somehow this already got merged by the bot (someone?) and applied to the main advisory anyway... for better or worse!

Probably reviewed by core team, and more of an "FYI" to Trix folks in case one wanted to also make changes to the repo-specific advisory.


Failed to install using "sudo gem install snapshot"

Plamens-Mac-Pro:~ plam$ sudo gem install snapshot
Password:
Fetching: addressable-2.3.8.gem (100%)
Successfully installed addressable-2.3.8
Fetching: fastimage-1.6.8.gem (100%)
Successfully installed fastimage-1.6.8
Fetching: multi_json-1.11.2.gem (100%)
Successfully installed multi_json-1.11.2
Fetching: highline-1.7.7.gem (100%)
Successfully installed highline-1.7.7
Fetching: commander-4.3.5.gem (100%)
Successfully installed commander-4.3.5
Fetching: babosa-1.0.2.gem (100%)
Successfully installed babosa-1.0.2
Fetching: excon-0.45.4.gem (100%)
Successfully installed excon-0.45.4
Fetching: rubyzip-1.1.7.gem (100%)
Successfully installed rubyzip-1.1.7
Fetching: plist-3.1.0.gem (100%)
Successfully installed plist-3.1.0
Fetching: security-0.1.3.gem (100%)
Successfully installed security-0.1.3
Fetching: credentials_manager-0.8.2.gem (100%)
Successfully installed credentials_manager-0.8.2
Fetching: phantomjs-<IP_ADDRESS>.gem (100%)
Successfully installed phantomjs-<IP_ADDRESS>
Fetching: mime-types-2.6.2.gem (100%)
Successfully installed mime-types-2.6.2
Fetching: rack-1.6.4.gem (100%)
Successfully installed rack-1.6.4
Fetching: rack-test-0.6.3.gem (100%)
Successfully installed rack-test-0.6.3
Fetching: xpath-2.0.0.gem (100%)
Successfully installed xpath-2.0.0
Fetching: capybara-2.4.4.gem (100%)
Successfully installed capybara-2.4.4
Fetching: websocket-extensions-0.1.2.gem (100%)
Successfully installed websocket-extensions-0.1.2
Fetching: websocket-driver-0.6.2.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing snapshot:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb

creating Makefile
make "DESTDIR="
make: *** No rule to make target /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/universal-darwin14/ruby/config.h', needed by websocket_mask.o'.  Stop.
Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/websocket-driver-0.6.2 for inspection.
Results logged to /Library/Ruby/Gems/2.0.0/gems/websocket-driver-0.6.2/ext/websocket-driver/gem_make.out

Same issue...

Did you make sure to run sudo xcode-select --install?

@plam4u I am also seeing this. Running OS X El Capitan, Ruby 2.2.3, and freshly installing gem install snapshot. --verbose outputs:
Building native extensions.  This could take a while...
/usr/local/var/rbenv/versions/2.2.3/bin/ruby -r ./siteconf20151010-44044-f8mjby.rb extconf.rb
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling websocket_mask.c
linking shared-object websocket_mask.bundle
ld: library not found for -lgmp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [websocket_mask.bundle] Error 1
ERROR:  Error installing snapshot:
	ERROR: Failed to build gem native extension.

    Building has failed. See above output for more information on the failure.
make failed, exit code 2

@KrauseFx is this a dependency on libwebsockets? I've tried installing libwebsocket through brew and gems, but haven't had any luck.


Replace 0°C temperature outputs from demand calculation by np.nan, adjust optimization functions

This issue needs coordination between demand @gabriel-happle and optimization @BhargavaKrishnaSreepathi.
Demand calculation should not output 0°C Temperatures for HTF supply or return in situations of no load and no flow. Optimization should process these outputs correctly.

@gabriel-happle : Is this issue resolved? I am not facing this problem nowadays.

@BhargavaKrishnaSreepathi no. I did not take any action on this.

@shanshanhsieh see! I want to do those things for over 1 year now

@BhargavaKrishnaSreepathi is this still an issue?
I'm still converting nan_to_num before writing the demand outputs. Should we leave it like this?


administrative session:i:value

This is a handy switch to be able to save a console session an RDP rather than an icon/cli switch

Sorry for the late response. Which page is this related to?

Closing due to no page reference being supplied.
#please-close


[BUG] volume isn't set as expected, in the test_tracker_graph test

In tests/_utils.py volume is not being set properly
https://github.com/quantumjot/btrack/blob/2ec77286676c5fb65458f7d4fa59beb089906a2e/tests/_utils.py#L220
It should be tracker.configuration.volume = ((0, 1600), (0, 1200), (-1e5, 1e5))
I tried running this myself, and it resulted in this error
https://github.com/quantumjot/btrack/actions/runs/5799240691/job/15718872998
So clearly volume is being set as expected in the test_tracker_graph test

I don't think this is the source of the error, see the slack note about setting the motion model params

But do you agree volume isn't being set?

But do you agree volume isn't being set?

I checked it and it is being set.  The core tracker has a rather complicated __setattr__ method which takes care of things like this:
https://github.com/quantumjot/btrack/blob/2ec77286676c5fb65458f7d4fa59beb089906a2e/btrack/core.py#L196-L216

Okay, cool. Closing!


Allow opt-out of Disqus comments per page

Do you think it's a good idea? I noticed comments show up in my portfolio pages, which is... not very useful.
Unless perhaps portfolio pages using a post layout is an error? That's how you have them on your page, at least - but I feel like page layout makes more sense.
EDIT:
I migrated my portfolio pages from type post to page and IMO it works better for those - just doesn't show a date. Oh well, can customize it better via subtitle anyway!

Oh yes indeed, I think at first it was meant to be a page. Because I putt it in the page folder.
Let me update that 😉


Fix: Properly Toggle Stack Destructor Functionality via var.stack_destructor_enabled

what
Always create spacelift_stack_destructor resource; toggle stack destructor functionality via deactivated attribute in spacelift_stack_destructor, rather than the count meta-attribute (see below on reason why).
why
The spacelift_stack_destructor resource is a special resource which, when deleted, will delete all resources in the stack:
https://github.com/spacelift-io/terraform-provider-spacelift/blob/6b9411707f6243ffa956e06bdaa1659820250c35/spacelift/resource_stack_destructor.go#L78-L104
Because of this, var.stack_destructor_enabled should not toggle the creation or destruction of this resource, since toggling it from true to false with the intention of disabling the stack destructor functionality will result in all of the resources in the stack being deleted. Instead, this resource should always created (when var.enabled is true), with var.stack_destructor_enabled toggling its deactivated attribute, which allows for the stack destructor functionality to be disabled.
references

https://github.com/spacelift-io/terraform-provider-spacelift/pull/260
https://registry.terraform.io/providers/spacelift-io/spacelift/latest/docs/resources/stack_destructor

/test all

/test bats

/test readme


development server serves blank page

Just downloaded react-static and created the styled-components template.  I am able to use 'build' and 'serve', but when attempting to use 'start' my localhost:3000 only shows a blank page with the following html:
<html lang="en">
  <head>
    <meta charSet="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
  </head>
  <body>
    <div id="root">
    </div>
    <script async="" src="/app.js"></script>
  </body>
</html>

It also outputs these warnings in the terminal:
./node_modules/source-map/lib/source-map/source-map-generator.js
8:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

./node_modules/source-map/lib/source-map/source-map-consumer.js
8:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

./node_modules/source-map/lib/source-map/source-node.js
8:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted

What version of node are you on?
On Wed, Oct 25, 2017 at 10:17 PM DanManticore<EMAIL_ADDRESS>wrote:

Just downloaded react stated and created the styled-components template. I
am able to use 'build' and 'serve', but when attempting to use 'start' my
localhost:3000 only shows a blank page with the following html:

It also outputs these warnings in the terminal:
./node_modules/source-map/lib/source-map/source-map-generator.js
8:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
./node_modules/source-map/lib/source-map/source-map-consumer.js
8:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
./node_modules/source-map/lib/source-map/source-node.js
8:45-52 Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/97, or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCaL-92tpjKea1y024BRf0aPsPoJYks5swAfTgaJpZM4QG_Rs
.

i was on 6.10.0, and also tried 6.11.5.  Same issue on both.  I'm on windows by the way

Try using V8.x
On Wed, Oct 25, 2017 at 10:58 PM DanManticore<EMAIL_ADDRESS>wrote:

i was on 6.10.0, and also tried 6.11.5. Same issue on both. I'm on windows
by the way
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/97#issuecomment-339551437,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCYbS1raRSM-b6oN9UulYAmRtqt_Xks5swBFlgaJpZM4QG_Rs
.

same thing

Hmm. Try removing node modules then installing and upgrading all deps.
Never seen this error before.
On Wed, Oct 25, 2017 at 11:03 PM DanManticore<EMAIL_ADDRESS>wrote:

same thing
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/97#issuecomment-339552110,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCSSuNshtKN11XJFaNUpcVoxv5xlBks5swBK0gaJpZM4QG_Rs
.

That did the trick!  Not sure why, but it worked.

I'll look into it more in the morning. Come join the slack organization!
On Wed, Oct 25, 2017 at 11:23 PM DanManticore<EMAIL_ADDRESS>wrote:

That did the trick! Not sure why, but it worked.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/nozzle/react-static/issues/97#issuecomment-339554742,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFUmCZPjhAFc2QSJuj5uT9rweGkwSQN-ks5swBdLgaJpZM4QG_Rs
.

I ran into the exact same problem using node v6.11.4. I tried deleting and reinstalling all modules, running npm update and updating my node to v8.x, but none of these tricks worked.
After updating node, I recreated my project and tested if anything else was running on port 3000, which wasn't. I deleted and reinstalled all modules, ran npm update again, nothing changed. Still a blank page.
I'm getting the warnings reported above, as well as this in my Web Console:
Error: Cannot find module "." app.js%20line%203827%20%3E%20eval:8:132
	webpackMissingModule webpack-internal:///../../../source-map/lib/source-map/source-map-generator.js:8:132
	<anonymous> webpack-internal:///../../../source-map/lib/source-map/source-map-generator.js:8:99
	<anonymous> webpack-internal:///../../../source-map/lib/source-map/source-map-generator.js:1:29
	../../../source-map/lib/source-map/source-map-generator.js http://localhost:3000/app.js:3827:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> webpack-internal:///../../../source-map/lib/source-map.js:6:30
	../../../source-map/lib/source-map.js http://localhost:3000/app.js:3813:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> webpack-internal:///../../../react-error-overlay/lib/utils/getSourceMap.js:5:69
	../../../react-error-overlay/lib/utils/getSourceMap.js http://localhost:3000/app.js:2921:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> webpack-internal:///../../../react-error-overlay/lib/utils/mapper.js:5:72
	../../../react-error-overlay/lib/utils/mapper.js http://localhost:3000/app.js:2953:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> webpack-internal:///../../../react-error-overlay/lib/utils/getStackFrames.js:3:66
	../../../react-error-overlay/lib/utils/getStackFrames.js http://localhost:3000/app.js:2929:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> listenToRuntimeErrors.js:1
	../../../react-error-overlay/lib/listenToRuntimeErrors.js http://localhost:3000/app.js:2865:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> webpack-internal:///../../../react-error-overlay/lib/index.js:12:81
	../../../react-error-overlay/lib/index.js http://localhost:3000/app.js:2857:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	<anonymous> webpack-internal:///../../../react-dev-utils/webpackHotDevClient.js:24:20
	../../../react-dev-utils/webpackHotDevClient.js http://localhost:3000/app.js:2697:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	fn http://localhost:3000/app.js:89:20
	[0] http://localhost:3000/app.js:3984:1
	__webpack_require__ http://localhost:3000/app.js:679:12
	<anonymous> http://localhost:3000/app.js:725:18
	<anonymous> http://localhost:3000/app.js:1:11

I seem to have found the issue here. I reinstalled source-map, updating to<EMAIL_ADDRESS>which fixed the errors and allows my website to work properly.


sap.ui.model.odata.v4.ODataModel cannot be used with a standard odata4 service without CSRF token support

OpenUI5 version:
openui5-sdk-1.58.5
Browser/version (+device/version):
Google Chrome Version 70.0.3538.77 (Offizieller Build) (64-Bit)
Any other tested browsers/devices(OK/FAIL):
n/a
URL (minimal example if possible):
n/a
User/password (if required and possible - do not post any confidential information here):
n/a
Steps to reproduce the problem:

Connect to an odata4 service without X-CSRF-Token support. I am using TEIID 11.2 on Wildfly 11.0

What is the expected result?

odata service accessible
it should be possible to disable CSRF token requests, similar to the sap.ui.model.odata.v2.ODataModel

What happens instead?
I see two issues here.

OpenUI5 sends a HEAD request to the services main url, which is not specified in the odata v4 spec

Request URL: http://localhost:9001/odata4/svc/my_nutri_diary/
Request Method: HEAD
Status Code: 405 Method Not Allowed
Remote Address: [::1]:9001
Referrer Policy: no-referrer-when-downgrade
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: de,de-DE;q=0.9,en;q=0.8
Authorization: Basic SU1TVXNlcjpJTVM0Zm9ydW0l
Connection: keep-alive
Cookie: sidebar_collapsed=false; cycle_analytics_help_dismissed=1; __utmz=111872281.1539128843.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=111872281.767670437.1539128843.1541866362.1541870562.42
DNT: 1
Host: localhost:9001
Referer: http://localhost:9001/index2.html
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
X-CSRF-Token: Fetch
X-Requested-With: XMLHttpRequest
Any other information? (attach screenshot if possible)

Usage of X-CSRF-Token is not a defined precondition according to the odata v4 standard. For OpenUI5 to be useful with other services than SAP Gateway it should be possible to disable the token requests like it is in the sap.ui.model.odata.v2.ODataModel

Hello @cjohn001 !
Thanks a lot for your interest in OData V4. Apart from the failed network request, do you experience any other issues?
From our perspective, X-CSRF-Token is not a prerequisite. We usually try to fetch it early on, but everything should work fine without it (as long as the server does not require it). You might want to turn off earlyRequests, which triggers the early request of $metadata and X-CSRF-Token. Both will be requested on demand, then.
We apologize for any inconvenience caused.
Best regards,
Thomas

Hello Thomas,
thanks for your feedback. I now have switched off earlyRequests and also had to set "groupId": "$direct" instead of "$auto". The files is now loaded without http errors. Is it possible, that I am missing a http header in the response, that $direct is not working? However, this is the second next topic. I do not have the basic model up and running now. Once the metadata file has been loaded, I run into parsing errors. I have added a collection in the following way.

And I am now ending up with the following errors
sap-ui-core.js:179 2018-11-15 00:03:17.985199 Failed to update cache for binding sap.ui.model.odata.v4.ODataListBinding: /Account - TypeError: Cannot read property 'indexOf' of null
    at V.a.resolveAlias (http://localhost:9001/resources/sap/ui/core/library-preload.js:3689:46)
    at V.a.processAnnotation (http://localhost:9001/resources/sap/ui/core/library-preload.js:3682:89)
    at V.processElement (http://localhost:9001/resources/sap/ui/core/library-preload.js:3851:50)
    at V.a.traverse (http://localhost:9001/resources/sap/ui/core/library-preload.js:3695:203)
    at V.a.traverse (http://localhost:9001/resources/sap/ui/core/library-preload.js:3695:459)
    at V.a.traverse (http://localhost:9001/resources/sap/ui/core/library-preload.js:3695:459)
    at V.a.traverse (http://localhost:9001/resources/sap/ui/core/library-preload.js:3695:459)
    at V.a.traverse (http://localhost:9001/resources/sap/ui/core/library-preload.js:3695:459)
    at V.a.traverse (http://localhost:9001/resources/sap/ui/core/library-preload.js:3695:459)
    at V.a.convertXMLMetadata (http://localhost:9001/resources/sap/ui/core/library-preload.js:3662:364) sap.ui.model.odata.v4.ODataParentBinding

I also attach the metadata file:
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference Uri="http://localhost/odata4/static/org.teiid.v1.xml">
<edmx:Include Namespace="org.teiid.v1" Alias="teiid"/>
</edmx:Reference>
<edmx:Reference Uri="http://localhost/odata4/static/org.apache.olingo.v1.xml">
<edmx:Include Namespace="org.apache.olingo.v1" Alias="olingo-extensions"/>
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="svc.1.my_nutri_diary" Alias="my_nutri_diary">
<EntityType Name="Account">
<Key>
<PropertyRef Name="uuidUser"/>
</Key>
<Property Name="uuidUser" Type="Edm.String" Nullable="false" MaxLength="36">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`uuidUser`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.CASE_SENSITIVE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.SIGNED">
<Bool>false</Bool>
</Annotation>
</Property>
<Property Name="idProfile" Type="Edm.Int64" Nullable="false">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`idProfile`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<NavigationProperty Name="Avatar_fkProfileInAvatar" Type="my_nutri_diary.Avatar" Nullable="false"/>
<NavigationProperty Name="BodyWeight_fkProfileInBodyWeight" Type="Collection(my_nutri_diary.BodyWeight)"/>
<NavigationProperty Name="Profile_fkProfileInBiometricProfile" Type="my_nutri_diary.Profile" Nullable="false"/>
<Annotation Term="teiid.NAMEINSOURCE">
<String>`Account`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</EntityType>
<EntityType Name="Avatar">
<Key>
<PropertyRef Name="fkProfile"/>
</Key>
<Property Name="fkProfile" Type="Edm.Int64" Nullable="false">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`fkProfile`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<Property Name="AvatarImg" Type="Edm.Stream">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`AvatarImg`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.SIGNED">
<Bool>false</Bool>
</Annotation>
</Property>
<NavigationProperty Name="fkProfileInAvatar" Type="my_nutri_diary.Account" Nullable="false">
<ReferentialConstraint Property="fkProfile" ReferencedProperty="idProfile"/>
</NavigationProperty>
<Annotation Term="teiid.NAMEINSOURCE">
<String>`Avatar`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</EntityType>
<EntityType Name="BodyWeight">
<Key>
<PropertyRef Name="idBodyWeight"/>
</Key>
<Property Name="idBodyWeight" Type="Edm.Int64" Nullable="false">
<Annotation>
<String>
We need a surrogate key here as Teiid requires a primary key on each table. fkProfile is not unique here as we can will have multiple weight measurements per person. Moreover, combining it with WeightMeasurementDateTime makes the index to compute intensive.
</String>
</Annotation>
<Annotation Term="teiid.NAMEINSOURCE">
<String>`idBodyWeight`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<Property Name="fkProfile" Type="Edm.Int64" Nullable="false">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`fkProfile`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<Property Name="WeightMeasurementDateTime" Type="Edm.DateTimeOffset" Nullable="false" Precision="4">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`WeightMeasurementDateTime`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.SIGNED">
<Bool>false</Bool>
</Annotation>
</Property>
<Property Name="Weight" Type="Edm.Int16" Nullable="false">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`Weight`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<NavigationProperty Name="fkProfileInBodyWeight" Type="my_nutri_diary.Account" Nullable="false">
<ReferentialConstraint Property="fkProfile" ReferencedProperty="idProfile"/>
</NavigationProperty>
<Annotation Term="teiid.NAMEINSOURCE">
<String>`BodyWeight`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</EntityType>
<EntityType Name="Profile">
<Key>
<PropertyRef Name="fkProfile"/>
</Key>
<Property Name="fkProfile" Type="Edm.Int64" Nullable="false">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`fkProfile`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<Property Name="BodyHeight" Type="Edm.Int64">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`BodyHeight`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</Property>
<Property Name="Gender" Type="Edm.String" MaxLength="1">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`Gender`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.CASE_SENSITIVE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.SIGNED">
<Bool>false</Bool>
</Annotation>
</Property>
<Property Name="BirthDate" Type="Edm.Date">
<Annotation Term="teiid.NAMEINSOURCE">
<String>`BirthDate`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
<Annotation Term="teiid.SIGNED">
<Bool>false</Bool>
</Annotation>
</Property>
<NavigationProperty Name="fkProfileInBiometricProfile" Type="my_nutri_diary.Account" Nullable="false">
<ReferentialConstraint Property="fkProfile" ReferencedProperty="idProfile"/>
</NavigationProperty>
<Annotation Term="teiid.NAMEINSOURCE">
<String>`Profile`</String>
</Annotation>
<Annotation Term="teiid.UPDATABLE">
<Bool>true</Bool>
</Annotation>
</EntityType>
<EntityContainer Name="my_nutri_diary">
<EntitySet Name="Account" EntityType="my_nutri_diary.Account">
<NavigationPropertyBinding Path="Avatar_fkProfileInAvatar" Target="Avatar"/>
<NavigationPropertyBinding Path="BodyWeight_fkProfileInBodyWeight" Target="BodyWeight"/>
<NavigationPropertyBinding Path="Profile_fkProfileInBiometricProfile" Target="Profile"/>
</EntitySet>
<EntitySet Name="Avatar" EntityType="my_nutri_diary.Avatar">
<NavigationPropertyBinding Path="fkProfileInAvatar" Target="Account"/>
</EntitySet>
<EntitySet Name="BodyWeight" EntityType="my_nutri_diary.BodyWeight">
<NavigationPropertyBinding Path="fkProfileInBodyWeight" Target="Account"/>
</EntitySet>
<EntitySet Name="Profile" EntityType="my_nutri_diary.Profile">
<NavigationPropertyBinding Path="fkProfileInBiometricProfile" Target="Account"/>
</EntitySet>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

The "Term" attribute is missing here:
					<Annotation> 						<String> 							We need a surrogate key here as Teiid requires a primary key on each table. fkProfile is not unique here as we can will have multiple weight measurements per person. Moreover, combining it with WeightMeasurementDateTime makes the index to compute intensive. 						</String> 					</Annotation>

Hello @cjohn001 !
BEWARE: Authorization: Basic can reveal your user and password. It's not encrypted, just encoded. I would remove this header before I post publicly.
You refer to "this multipart/mixed header that is missing". That part is not clear to me. Why do you think that a header is missing? I could not understand that from the given information.
"406 Not Acceptable" means that the server cannot provide a response in a format which the client requested. Maybe it's Accept: multipart/mixed, maybe it's the Accept-Encoding: gzip, deflate, br header. That might appear in your server's log. (I see you are already discussing this at https://developer.jboss.org/thread/279113).
Best regards,
Thomas

Hello Thomas,
thanks for pointing this with the password out. I know it is just Base64 encoded. I was just to lazy to remove it, as the account is just a test account running in a local vm without public access ;)
Indeed I was in parallel discussion the issue with the red hat guys, as I was not sure if it is a client or a server problem I am running into. Your assumption seems to be correct. The answer in the other forum said, that the wildfly server can process mutlipart messages but does not accept the Accept: multipart/mixed header. They suggest removing it and transmitting the message without the header. Than it should work. As I am not yet very familiar with javascript and OpenUI5, I am wondering if you might have a suggestion on how I could remove the header from the odata.v4 model. Do I need to change the OpenUI5 sources to get things running or might there be a more gentle approach? I have seen that the odata.v2 model has functions to add  (and overwrite?) headers. But I have not found anything to remove a header yet or a similar approach for adding headers  in a odata.v4 model.  Thanks for your help. By the way, you were also right with the annotations which is a server error for which I filled a bug report.
Best regards,
Christoph

Hello Christoph!
Our V4 OData model can only handle $batch as multipart (currently). Thus Accept: multipart/mixed is a perfectly fine header from our point of view. If wildfly knows how to handle multipart, it should learn to deal with this header as well. That's the piece that I recommend to fix, not UI5.
Best regards,
Thomas

Hello Thomas,
sorry to contact you via this way but I found no different option. In the meantime I got the batch feature of OpenUI working against a Teiid-Wildfly / Olingo server, thanks to the help of some guys at RedHat. I was discussing with them if it would be possible to also extend Teiid/Olingo to support the earlyRequest feature of the OpenUI5 odata.v4 model and they would offer their support. I was wondering, if you could provide us with some more details on what is needed for this communication to happen. In my logs I can only see that OpenUI5 sends a head request on the main service URL. As head requests are not supported by Teiid yet, I cannot see what furthermore would be involved. Is there a more detailed description available for the earlyRequest feature which you could provide us? Currently, I have only found the 2 sentences in the odata models constructor description for the earlyRequest parameter. Thanks for your help.
Best regards,
Christoph

@ThomasChadzelek It would be nice if there is an option to request only the $metadata early when earlyRequests is enabled. Currently, it doesn't seem to be possible. Here is an example: https://embed.plnkr.co/qatUyq/?show=manifest.json,preview

In manifest.json, scroll down to sap.ui5/models/""/settings and add "earlyRequests": true
Once the preview is reloaded, the service throws the error "405 Method Not Allowed" as described in the initial issue description.

The sample makes use of the TripPin service, which is the only registration-free V4 service available out there AFAIK. But it doesn't support handling CSRF tokens. I.e.: All demos with TripPin have to turn earlyRequests completely off.

In one of the previous comments:

You might want to turn off earlyRequests, which triggers the early request of $metadata and X-CSRF-Token. Both will be requested on demand, then.

I'm not sure if this is true. If earlyRequests is turned off, only the $metadata is requested on demand. The token is not requested at all.

Hello @boghyon!
I agree that the error message "405 Method Not Allowed" in your developer tools is not nice, but then again it should not really hurt. It is no reason why the application should not work. If you experience issues, please describe them in more detail.
Regarding the 2nd question: if TripPin does not support CSRF tokens, then there is no need for the v4.ODataModel to request one on demand. It is never missing. What would you expect to happen?
Best regards,
Thomas

Hi @ThomasChadzelek
There are two issues I see with leaving the earlyRequests enabled:

The service is used in many Q&A platforms (e.g. Stack Overflow) and people wonder why there are error messages in the console every time. I guess I can just point them to this discussion and tell them that the error doesn't do much, which would be nice if that's true.. (see 2).
With earlyRequests enabled, the application actually fails to load the list (stuck in the busy state). BUT this happens only sometimes:

As described in https://github.com/SAP/openui5/issues/2288#issuecomment-466716353, add "earlyRequests": true to the model settings in manifest.json
Reload the preview panel several times until the app fails to load the list.

Windows 10
Chrome 72.0.3626.119

About the 2nd part: I was referring to the sentence "Both will be requested on demand" (https://github.com/SAP/openui5/issues/2288#issuecomment-438638118). But in the app, I see only that the $metadata is requested when earlyRequests is turned off. Why aren't there any token requests in that case? How does v4.ODataModel determine when to ask for tokens and when not?

Hello @boghyon !
I have to look into the issue with earlyRequests enabled...
About the 2nd part: the v4.ODataModel would fetch a CSRF token on demand if any request fails with status code 403 and header X-CSRF-Token: required. This is a server's way to tell the client that it really needs a CSRF token. The request is then repeated transparently for the application.
Best regards,
Thomas

Hello @boghyon !
I tried to reproduce the failure via https://embed.plnkr.co/qatUyq/?show=manifest.json,preview, but saw it only once when I clicked that "Refresh live preview" button very quickly many times. W/o such a nervous finger, everything was fine except for an "Uncaught (in promise) Error: 405 Method Not Allowed" which has been fixed already for 1.63
If you can reproduce it, please attach more details from console or network tab. Sorry.
Best regards,
Thomas

Hello @ThomasChadzelek,

W/o such a nervous finger, everything was fine

Unfortunately, in JSBin, v4.ODataModel fails way too often if earlyRequests is enabled while using a service that doesn't support handling CSRF tokens (TripPin): https://jsbin.com/fudizuq/edit?js,output
The date can be shown only after refreshing the page several times, which I doubt users would actually do since the demo looks broken to begin with.

Succeeds sometimes

with the previously mentioned error message:

HEAD https://...../ 405 (Method Not Allowed)

which is fine.
Breaks quite often

with another error message:

Uncaught (in promise) Error: Could not refresh security token: 405 Method Not Allowed

The app fails to work.

With earlyRequests: false, everything works as expected.

Hello @boghyon,
I could reproduce your issue and will check how that can be improved.
Generally, I would not recommend to use earlyRequests if the server does not require the x-csrf token as a pointless request goes out in this case.
Best regards
Mathias.

Hello @boghyon ,
the issue is caused by the following functionality. A request with method !== "GET" will wait for a pending x-csrf token request and be executed only if the related promise is resolved. This introduces the randomness you observe. If the token request is not pending, everything works fine.
To code against the special case of TripPin not supporting HEAD requests does not seem to be the correct solution. We expect that productive services can handle HEAD requests.
The real solution would be to allow to specifically request only the root metadata early. This is a feature request.
Could you please explain whether and when you would require that feature for productive applications?
Best regards
Mathias.

Hi @uhlmannm
I see, thanks for the reply. So if the service would actually handle HEAD requests properly as expected but without the x-csrf support, then the application would at least keep working without breaking. Is that right?

The real solution would be to allow to specifically request only the root metadata early. This is a feature request.

Well, if my assumption above is true, I think it's ok not to have the feature.

earlyRequests should be used only if the server requires x-csrf tokens

It's a bit of a mystery to me, why fetching $metadata early requests CSRF tokens too even though OData specification doesn't necessarily mention that services must support handling CSRF tokens. But again, one error message that doesn't break the application shouldn't hurt much.

Hi @boghyon ,

I see, thanks for the reply. So if the service would actually handle HEAD requests properly as expected but without the x-csrf support, then the application would at least keep working without breaking. Is that right?

Yes, the HEAD request needs to be successful but it does not need to contain the x-csrf-token header.

earlyRequests should be used only if the server requires x-csrf tokens

It's a bit of a mystery to me, why fetching $metadata early requests CSRF tokens too even though OData specification doesn't necessarily mention that services must support handling CSRF tokens. But again, one error message that doesn't break the application shouldn't hurt much.

Well ... the two points came up together and SAP services have to do something about cross side request forgery. So this is basically how it ended up behind the same parameter without the possibility to just have one of the two.
Have you tried the following in your Component.js to enforce an early request of metadata without parameter earlyRequests?
this.getModel().getMetaModel().requestObject("/");
Best regards
Mathias.


resolve the end of the game

delete game from the database when finished

Java deletion implemented - game is removed from the database


autoplay doesn't work in vertical mode

short description of the bug / issue, provide more detail below.

autoplay doesn't work in vertical mode
I use codepen to make a demo
issue demo
Thanks in advance for any help

Took a quick look at your pen, when passing the options to slick you have autoplay formatted wrong.
It should be autoplay: true all lower case, you have it written as autoPlay: true which is incorrect.  Fix that and your demo works fine.

@andrewnaumann Thanks andrew I totally miss the point


System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

Type: Bug
Issue Description
Every time I open my project in local dev containers or Codespaces, the C# extensions crashes with this error (see logs below). It seems to work for the same repository locally on my MacBook. Both Stable and Pre-release C# extensions crash.
Steps to Reproduce
Open a c# project in Codespaces or Dev containers. I've not been able to make a minimal reproducable example, but the crash happens 100% of the time when opening my project.
Expected Behavior
C# Extension opens the project and works.
Actual Behavior
C# Extension crashes with a memory access violation and stops working.
Logs

C# log

[stderr] Fatal error. [stderr] System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.[stderr]
[stderr]    at System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)[stderr]
[stderr]    at System.IO.UnmanagedMemoryStream.WriteCore(System.ReadOnlySpan`1<Byte>)[stderr]
[stderr]    at System.IO.UnmanagedMemoryStream.Write(Byte[], Int32, Int32)[stderr]
[stderr]    at System.IO.Stream.Write(System.ReadOnlySpan`1<Byte>)[stderr]
[stderr]    at System.IO.StreamWriter.Flush(Boolean, Boolean)[stderr]
[stderr]    at System.IO.StreamWriter.Write(Char[], Int32, Int32)[stderr]
[stderr]    at Microsoft.CodeAnalysis.Text.LargeText.Write(System.IO.TextWriter, Microsoft.CodeAnalysis.Text.TextSpan, System.Threading.CancellationToken)[stderr]
[stderr]    at Microsoft.CodeAnalysis.Host.TemporaryStorageService.<WriteToTemporaryStorage>g__WriteToMemoryMappedFile|12_0(<>c__DisplayClass12_0 ByRef)
   at Microsoft.CodeAnalysis.Host.TemporaryStorageService+<WriteToTemporaryStorageAsync>d__13.MoveNext()
[stderr]    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+<WriteToTemporaryStorageAsync>d__13, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<WriteToTemporaryStorageAsync>d__13 ByRef)
   at Microsoft.CodeAnalysis.Host.TemporaryStorageService+<Microsoft-CodeAnalysis-Host-ITemporaryStorageServiceInternal-WriteToTemporaryStorageAsync>d__11.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+<Microsoft-CodeAnalysis-Host-ITemporaryStorageServiceInternal-WriteToTemporaryStorageAsync>d__11, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<Microsoft-CodeAnalysis-Host-ITemporaryStorageServiceInternal-WriteToTemporaryStorageAsync>d__11 ByRef)
   at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+<SaveAsync>d__12.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+<SaveAsync>d__12, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<SaveAsync>d__12 ByRef)
   at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+<SaveAllAsync>d__27.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+<SaveAllAsync>d__27, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<SaveAllAsync>d__27 ByRef)
   at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText.SaveAllAsync(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1<System.ValueTuple`2<RecoverableText,Microsoft.CodeAnalysis.Text.SourceText>>, System.Threading.CancellationToken)
   at Roslyn.Utilities.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<<Convert>b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Roslyn.Utilities.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<<Convert>b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<<Convert>b__0>d<System.ValueTuple`2<System.__Canon,System.__Canon>> ByRef)
[stderr]    at Roslyn.Utilities.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<Convert>b__0(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1<System.ValueTuple`2<System.__Canon,System.__Canon>>, System.Threading.CancellationToken)
   at Roslyn.Utilities.AsyncBatchingWorkQueue`2+<ProcessNextBatchAsync>d__17[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Roslyn.Utilities.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Roslyn.Utilities.AsyncBatchingWorkQueue`2+<ProcessNextBatchAsync>d__17[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Roslyn.Utilities.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ProcessNextBatchAsync>d__17<System.ValueTuple`2<System.__Canon,System.__Canon>,Roslyn.Utilities.VoidResult> ByRef)
   at Roslyn.Utilities.AsyncBatchingWorkQueue`2[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Roslyn.Utilities.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].ProcessNextBatchAsync()
[stderr]    at Roslyn.Utilities.AsyncBatchingWorkQueue`2+<<AddWork>g__ContinueAfterDelayAsync|15_1>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Roslyn.Utilities.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[[Roslyn.Utilities.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Roslyn.Utilities.AsyncBatchingWorkQueue`2+<<AddWork>g__ContinueAfterDelayAsync|15_1>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Roslyn.Utilities.VoidResult, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]].MoveNext(System.Threading.Thread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool+WorkerThread.WorkerThreadStart()
[Error - 2:35:01 AM] Client Microsoft.CodeAnalysis.LanguageServer: connection to server is erroring. Shutting down server.

C# LSP Trace Logs
Post the output from Output-->C# LSP Trace Logs here.  Requires `dotnet.server.trace` to be set to `Trace`
Environment information
VSCode version: 1.89.1
C# Extension: 2.28.11
Using OmniSharp: false
Dotnet Information
.NET SDK:
 Version:           8.0.204
 Commit:            c338c7548c
 Workload version:  8.0.200-manifests.9f663350

Runtime Environment:
 OS Name:     debian
 OS Version:  12
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /usr/share/dotnet/sdk/8.0.204/

.NET workloads installed:
There are no installed workloads to display.

Host:
  Version:      8.0.4
  Architecture: x64
  Commit:       2d7eea2529

.NET SDKs installed:
  8.0.204 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

Visual Studio Code Extensions

Extension
Author
Version
Folder Name

csdevkit
ms-dotnettools
1.5.20
ms-dotnettools.csdevkit-1.5.20-linux-x64

csharp
ms-dotnettools
2.28.11
ms-dotnettools.csharp-2.28.11-linux-x64

vscode-dotnet-runtime
ms-dotnettools
2.0.5
ms-dotnettools.vscode-dotnet-runtime-2.0.5

vscode-eslint
dbaeumer
2.4.4
dbaeumer.vscode-eslint-2.4.4

vscode-pull-request-github
GitHub
0.88.1
github.vscode-pull-request-github-0.88.1

Extension version: 2.28.11
VS Code version: Code 1.89.1 (Universal) (dc96b837cf6bb4af9cd736aa3af08cf8279f7685, 2024-05-07T05:14:24.611Z)
OS version: Darwin arm64 23.4.0
Modes:
Remote OS version: Linux x64 6.5.0-1018-azure
Remote OS version: Linux arm64 6.6.12-linuxkit

System Info

Item
Value

CPUs
Apple M2 Max (12 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
3, 6, 7

Memory (System)
64.00GB (0.10GB free)

Process Argv
--crash-reporter-id f2175c6c-f802-4920-8a42-5dc749a961d3

Screen Reader
no

VM
0%

Item
Value

Remote
Codespaces: cautious space computing-machine

OS
Linux x64 6.5.0-1018-azure

CPUs
Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (8 x 799)

Memory (System)
31.33GB (27.49GB free)

VM
0%

Item
Value

Remote
Dev Container: Eau Claire One @ desktop-linux

OS
Linux arm64 6.6.12-linuxkit

CPUs
unknown (4 x 0)

Memory (System)
39.85GB (25.61GB free)

VM
0%

A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
tftest:31042121
vscod805cf:30301675
binariesv615:30325510
vsaa593cf:30376535
py29gd2263:31024239
vscaat:30438848
c4g48928:30535728
azure-dev_surveyone:30548225
a9j8j154:30646983
962ge761:30959799
pythongtdpath:30769146
welcomedialogc:30910334
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pyreplss1:30897532
pythonmypyd1:30879173
pythoncet0:30885854
h48ei257:31000450
pythontbext0:30879054
accentitlementsc:30995553
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
dsvsc020:30976470
pythonait:31006305
dsvsc021:30996838
9c06g630:31013171
dvdeprecation:31040881
dwnewjupyter:31039675

I confirmed it works in 2.10.28, 2.15.30, 2.18.16, 2.23.15. Broken in 2.28.11.
I've reverted 2.23.15. Razor syntax highlighting still doesn't work at all, but at least the whole LSP server doesn't crash and break regular .cs files too.

Extracting out the exception
Fatal error. [stderr] System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.[stderr] [stderr] at System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)[stderr] [stderr] at System.IO.UnmanagedMemoryStream.WriteCore(System.ReadOnlySpan`1)[stderr] [stderr] at System.IO.UnmanagedMemoryStream.Write(Byte[], Int32, Int32)[stderr] [stderr] at System.IO.Stream.Write(System.ReadOnlySpan`1)[stderr] [stderr] at System.IO.StreamWriter.Flush(Boolean, Boolean)[stderr] [stderr] at System.IO.StreamWriter.Write(Char[], Int32, Int32)[stderr] [stderr] at Microsoft.CodeAnalysis.Text.LargeText.Write(System.IO.TextWriter, Microsoft.CodeAnalysis.Text.TextSpan, System.Threading.CancellationToken)[stderr] [stderr] at Microsoft.CodeAnalysis.Host.TemporaryStorageService.g__WriteToMemoryMappedFile|12_0(<>c__DisplayClass12_0 ByRef) at Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__13.MoveNext() [stderr] at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__13, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__13 ByRef) at Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__11.MoveNext() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.Host.TemporaryStorageService+d__11, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__11 ByRef) at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__12.MoveNext() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__12, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__12 ByRef) at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__27.MoveNext() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText+d__27, Microsoft.CodeAnalysis.Workspaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](d__27 ByRef) at Microsoft.CodeAnalysis.RecoverableTextAndVersion+RecoverableText.SaveAllAsync(Microsoft.CodeAnalysis.Collections.ImmutableSegmentedList`1>, System.Threading.CancellationToken) at Roslyn.Utilities.AsyncBatchingWorkQueue`1+<>c__DisplayClass2_0+<b__0>d[[System.ValueTuple`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]

@TrieBr would you be able to enable crash dump collection by setting dotnet.server.crashDumpPath to a user writeable folder in vscode settings?  That should hopefully create a crash dump.  You can email the dump to me directly if you don't want to share publicly<EMAIL_ADDRESS>

@dibarbet Did you receive the crash dump? I'm having the same issue, can generate the crash dump if needed.

@dibarbet Did you receive the crash dump? I'm having the same issue, can generate the crash dump if needed.

@gabynevada I haven't, if you have one please send it

Was able to reproduce today on a devcontainer, and figured out the issue thanks to https://github.com/dotnet/runtime/issues/79832
Issue appears to be our usage of memory mapped files - these files are getting stored in /dev/shm in the docker container which by default is given a max size of 64MB.  We quickly exceed this value.  Can view this in realtime via the command watch --interval=1 df --human-readable /dev/shm to see the usage of /dev/shm slowly go up to 100%, at which point the server crashes.
Currently exploring a fix for the issue, but in the meantime you can start the container with a larger /dev/shm size by passing --shm-size=4G to docker run (or adding "runArgs": ["--shm-size=4G"] to your devcontainer.json

Amazing when someone has already solved your issue :) I had to reload VS Code every 2 minutes since language server was constantly crashing :(
As in dibarbet's comment I'm developing in containers.

Running into the same issue here. Increasing the shm-size does work around the issue at least temporarily. It is unclear if the memory is ever freed though. It seems to continue to grow every time a solution is opened and Used never decreases.

It is unclear if the memory is ever freed though

The memory used here is likely not going to go away as long as the same solution is opened and the process is active.  However I would expect it to fairly quickly hit a steady state and not increase.

Every time we reload the solution (close solution followed by open solution on the same solution) it grows by about 6MB (probably a function of the solution being loaded - ours are typically large). I haven't seen it decrease.
We actually dynamically generate solutions so it is not uncommon for us to reload them.

Will not be in this weeks prerelease, but should be in the one after.

This should now be available in v2.41.26 (pre-release).


Add travis-ci badge

@halfcrazy  I am not for this change at the moment because we load these md files on our docs site and the badges are slowing down load times on our docs site. We are working on selectively filtering out some things we stream directly to our docs site so that this is not an issue.

@halfcrazy I am not for this change at the moment because we load these md files on our docs site and the badges are slowing download times on our docs site. We are working on selectively filtering out some things we stream directly to our docs site so that this is not an issue.

I concur with @deekoder here. NACK from my end.


Fix constraints to make demo work correctly

Fixes https://github.com/telly/TLYShyNavBar/issues/120
What Changed
Fixed constraints to make the tableview / scrollview fill screen correctly.

Much appreciated @szweier ! :pray:


Add note to volume docs that data is not copied to mounted volumes

In the volume docs, it says under /Data volumes/: “If the container’s base image contains data at the specified mount point, that existing data is copied into the new volume upon volume initialization.”
This does not apply when host directories are mounted as volumes, as is also explained further down on the page.
This patch adds a note about this to the docs to prevent confusion.
fixes https://github.com/docker/docker/issues/13984

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "volume-docs" git@github.com:cdauth/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

LGTM

LGTM
thanks @cdauth!


Query params operations

Where are the emplace overloads?

Where are the emplace overloads?

This code has been refactored and no longer resembles the previous version