Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

strange characters at the end of "Component-Example" url on pharo 12 #24

Closed
git-dmou opened this issue Jan 16, 2024 · 37 comments
Closed

Comments

@git-dmou
Copy link

when starting the "Component-Examples" application from code paradise menu, the browser open with an url ending with 2 random characters .... and of course, the loading never end.

when I remove these chars, to get a clean url, the application opens as expected.

I've tried all the applications from the menu and this is the only case of this strange behaviour.

@ErikOnBike
Copy link
Owner

Hi @git-dmou

I'm really puzzled here. I tried the menu and all items work without a problem. Which Pharo version are you using and which VM version? I tried Pharo 10 and 12.

The code for the Component Examples does not seem special if compared to other applications.

Sunny regards,
Erik

@ErikOnBike
Copy link
Owner

@git-dmou I see you're using Pharo 12 (didn't read the title carefully enough)...

@ErikOnBike
Copy link
Owner

@git-dmou retried with new image, but still works.
Which OS are you on? No clue if this makes a difference, but seeing if I can reproduce this.

@git-dmou
Copy link
Author

Hello Erik,

I'm on windows 11, I've tried on 2 differents computers,

VM: 120-x64 2024-01-15 update

image pharo 12 from the same day

tried on chrome and Firefox.

I browsed the code quickly and saw no differences between apps in the building of url as you said !

@astares
Copy link

astares commented Jan 17, 2024

Specific language setting on browser?

@git-dmou
Copy link
Author

I've tried english on firefox and french on chrome

@ErikOnBike
Copy link
Owner

Which characters are appended? You wrote 'random'. Does this mean it differs between executions?
Could you try and add a breakpoint in CpDevTools class >> #open and inspect what the value of choices is before making the selection and what the value of choice is after making the selection? This to check whether these random characters are coming from the Pharo image or whether the browser (plugin?) somehow adds these characters.
Thx

@git-dmou
Copy link
Author

by random I mean a couple of different char at each exec.
for example : "À3" or "%10k" or "rš", appended to "http://localhost:8080/static/app.html?Component-Examples"

I'll try with the breakpoint

@git-dmou
Copy link
Author

Capture d'écran 2024-01-17 131902

apparently, no problems so far !

@ErikOnBike
Copy link
Owner

Maybe also add a breakpoint on: WBWindowsWebBrowser class >> #shellExecute:file:parameters:directory:show:. That is sort of the last code being executed before it is handled to the OS (shell32 lib) to execute. See if lpFile is still without these random characters.

@git-dmou
Copy link
Author

here you are
image

@git-dmou
Copy link
Author

git-dmou commented Jan 17, 2024

you're right, non random chars in the pharo area !

@ErikOnBike
Copy link
Owner

Hmmm...that still leaves the FFI stuff (but it works for other applications, so what would make this one special?), since it behaves the same in both Chrome and Firefox.
Could you try and update the method CpComponentExamplesWebApplication class >> #app and replace the content with:

app

	"Answer the unique identifier (a Symbol) for the receiver"

	^ #fixmesoon

Do a 'reset' from the CodeParadise menu and try to run the application (now named 'fixmesoon').

@git-dmou
Copy link
Author

I tried like this :
it seems that any name finishing in "example" trigger the problem !
image

@git-dmou
Copy link
Author

and it works !

@ErikOnBike
Copy link
Owner

Not fully sure yet ;-).
Could you try and replace the method with this one:

app

	"Answer the unique identifier (a Symbol) for the receiver"

	^ #'Cmponent-Examples'

I made it a single character shorter, but still has the same 'ending'. I am wondering whether the final URL size (56 bytes/chars) is causing an issue. This is 2 longs (2x 4 bytes) short of 64 bytes, which might be some sort of magic size limit.
Please let me know what happens.

@ErikOnBike
Copy link
Owner

Remember that Soelace-Examples works okay, but also ends with '-Examples'.

@git-dmou
Copy link
Author

It works, it should be a length problem ....

@git-dmou
Copy link
Author

however, "building-my-first-app" is longer, but has no problem

@ErikOnBike
Copy link
Owner

ErikOnBike commented Jan 17, 2024

Maybe not every length. Could you try the following version? If this works, it is not perse the length. This is a version with the same length but different content. We're just trying to find the cause by taking away possibilities ;-)

app

	"Answer the unique identifier (a Symbol) for the receiver"

	^ #'Component-Examplex'

Remember to reset the menu before trying to open the application.

@ErikOnBike
Copy link
Owner

Thx for helping out and testing these things out by the way! 🙏

@ErikOnBike
Copy link
Owner

Okay. So it seems this specific length is an issue. I'm investigating a little here. I will try to come back with some more tests if you're okay with that.

@git-dmou
Copy link
Author

your welcome

@ErikOnBike
Copy link
Owner

Could you give me the result of evaluating the following in a Playground?

#shell32 asFFILibrary calloutAPIClass

It should probably answer something like FFICalloutAPI or TFCalloutAPI.
It is either the regular or the threaded FFI version.

@git-dmou
Copy link
Author

TFCalloutAPI

@ErikOnBike
Copy link
Owner

Could you please evaluate/inspect the following?

TFUFFIDerivedTypeMarshallingTest new
	ffiLibrary: TFTestLibraryUsingSameThreadRunner ;
	pointerToString: 'http://localhost:8080/static/app.html?Component-Examples'.

Does it answer the correct (duplicated) String or does it also have random characters added?
And this variant?

TFUFFIDerivedTypeMarshallingTest new
	ffiLibrary: TFTestLibraryUsingWorker ;
	pointerToString: 'http://localhost:8080/static/app.html?Component-Examples'.

@git-dmou
Copy link
Author

image

Capture d'écran 2024-01-17 144755

@ErikOnBike
Copy link
Owner

Have dug deep into the code (into primitives and generated FFI code), but can't find the location where things go wrong. My feeling is it has to do with the FFI (Foreign Function Interface). I'll post a question on the Discord channel. Hopefully someone can help out. Thx so far and I will keep you updated.

@git-dmou
Copy link
Author

quite tricky !
the best thing to do so far on windows is to choose a name for the app and to test the generated url in the browser !

@astares
Copy link

astares commented Jan 18, 2024

Strange, doing variations:

WebBrowser openOn: 'http://localhost:8080/static/app.html?Component-Examples'  - APPENDS

WebBrowser openOn: 'http://localhost:8080/static/map.html?Component-Examples'  - APPENDS


WebBrowser openOn: 'http://localhost:8080/static/app.html?ComponentExamples' - WORKS

WebBrowser openOn: 'http://localhost:8080/app.html?Component-Examples'  WORKS

WebBrowser openOn: 'http://localhost:8080/something/app.html?Component-Examples' WORKS

WebBrowser openOn: 'http://localhost/static/app.html?Component-Examples' - WORKS 

@ErikOnBike
Copy link
Owner

@astares It seems the exact length is an issue. I also posted this on Discord (see link below).
Could you try the following on your machine as well?

WebBrowser openOn: 'https://pharo.org?abcdefghijklmnopqrstuvwxyz1234567890ok'.

https://discord.com/channels/223421264751099906/786544722235228160/1197203535285211166

@astares
Copy link

astares commented Jan 18, 2024

Seems to be Pharo related as on DOS it works without additional characters

image

@astares
Copy link

astares commented Jan 18, 2024

@astares It seems the exact length is an issue. I also posted this on Discord (see link below). Could you try the following on your machine as well?

WebBrowser openOn: 'https://pharo.org?abcdefghijklmnopqrstuvwxyz1234567890ok'.

https://discord.com/channels/223421264751099906/786544722235228160/1197203535285211166

Yes - same issue. Seems length based

image

@astares
Copy link

astares commented Jan 18, 2024

opened pharo-project/pharo#15980 as it is more Pharo related than a Code paradise issue

@denysos
Copy link

denysos commented Mar 3, 2024

Hello Erik,
it seems that this issue is fixed with

Pharo 12.0.0
Build information: Pharo-12.0.0+SNAPSHOT.build.1410.sha.6fa4632c0b60f6690d6af3f7f8fc6f3ab6240112 (64 Bit)

after the UFFI issue pharo-project/pharo#15980 fixed

@ErikOnBike
Copy link
Owner

@denysos Thx.
@astares for the fix!
Closing the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants