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

Adding a Gitlab project in fresh image gives #label: not found in StPharoApplication (IceTipInteractiveErrorVisitor>>visitAuthenticationError:) #16391

Closed
macta opened this issue Apr 1, 2024 · 11 comments
Labels
To fix before release Issure to fix before the upcoming Pharo release Type: Bug

Comments

@macta
Copy link
Contributor

macta commented Apr 1, 2024

Bug description
In a fresh P12 image (created 1/Apr/24) I opened a repository browser, and added a gitlab project and got a walkback label: not found in StPharoApplication in method IceTipInteractiveErrorVisitor>>visitAuthenticationError:

To Reproduce
Steps to reproduce the behavior:

  1. open the repo browser
  2. click the + button
  3. Enter username and project name
  4. Click ok

Expected behavior
Should load the baseline project

Screenshots
n/a

Version information:

  • OS: OSX 14.4.1
  • Version: [e.g. 1.6.1]
  • Pharo Version 12 apr1

Expected development cost
small - but not sure if adding #label: is the correct fix

Additional context

@macta
Copy link
Contributor Author

macta commented Apr 1, 2024

not sure if this is due to ssh issues to recreate the error - but can do the similar steps in a p11 image without issue

@macta
Copy link
Contributor Author

macta commented Apr 1, 2024

I think the fix might be something like this (adding #newAlert or equivalent to the application) but not totally sure.

visitAuthenticationError: anError
context application newAlert
label: anError messageText;
title: 'Iceberg authentication Error';
openModal

NOTE this fix generates an alert dialog, however the messageText doesn't wrap properly so you can't read the error very well.

@jecisc jecisc added To fix before release Issure to fix before the upcoming Pharo release Type: Bug labels Apr 2, 2024
@estebanlm
Copy link
Member

this may be an error fixed by @astares. Can you re-check and in case contrary, paste here the stack trace?

@macta
Copy link
Contributor Author

macta commented Apr 8, 2024

I just tested this in a fresh p12 image downoaded today from launcher (8/apr) and I get the same error:
image

The suggested fix I gave above did let me try P12 - but its not quite right as you end up with a dialog that has a single text line (so you can't see the proper error message without some form of wrapping).

The stack trace is as follows:
StPharoApplication(Object)>>doesNotUnderstand: #label:
IceTipInteractiveErrorVisitor>>visitAuthenticationError:
IceAuthenticationError>>acceptError:
[ :e |
e acceptError: (IceTipInteractiveErrorVisitor newContext: self) ] in IceTipRegisterRepositoryDialogPresenter(IceTipOptionDialogPresenter)>>accept in Block: [ :e | ...
FullBlockClosure(BlockClosure)>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
IceAuthenticationError(Exception)>>signal
[replacementException signal] in LGit_GIT_ERROR(Exception)>>resignalAs: in Block: [replacementException signal]
Context>>resumeEvaluating:
LGit_GIT_ERROR(Exception)>>signal
LGit_GIT_ERROR class(LGitCallReturnHandler class)>>signalWith:
LGitReturnCodeEnum>>handleLGitReturnCode
LGitRepository(LGitExternalObject)>>withReturnHandlerDo:
LGitRepository>>clone:options:to:
LGitRepository>>clone:options:
[repo clone: url options: cloneOptions] in IceGitClone>>cloneRepo:cloneOptions:remainingRetries: in Block: [repo clone: url options: cloneOptions]
FullBlockClosure(BlockClosure)>>on:do:
IceGitClone>>cloneRepo:cloneOptions:remainingRetries:
[location ensureCreateDirectory.

repo := LGitRepository on: location.
cloneOptions := repo cloneOptionsStructureClass withCredentialsProvider: (IceCredentialsProvider defaultForRemoteUrl: url).

Iceberg configureLGitProxyOpt: cloneOptions fetchOptions proxyOptions.

"Keeping references, because if not the GC take them."
checkoutOptions := cloneOptions checkoutOptions.
callbacks := cloneOptions fetchOptions callbacks.
callbacks transferProgress: IceGitTransferProgress new.

checkoutOptions checkoutStrategy: LGitCheckoutStrategyEnum git_checkout_force.
checkoutOptions progressCallback: IceGitCheckoutProgress new.

self cloneRepo: repo cloneOptions: cloneOptions remainingRetries: 3.

(LGitRemote of: repo named: 'origin')
	lookup;
	setUrl: url.

] in IceGitClone>>execute in Block: [location ensureCreateDirectory....

FullBlockClosure(BlockClosure)>>on:do:
IceGitClone>>execute
IceRepositoryCreator>>cloneRepository
[
self validate.
self isCloning
ifTrue: [ self cloneRepository ]
ifFalse: [ self addLocalRepository ] ] in IceRepositoryCreator>>createRepository in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
IceRepositoryCreator>>createRepository
[
IceRepositoryCreator new
repository: repository;
remote: (IceGitRemote url: self remoteUrl);
location: self projectLocation location;
createRepository ] in IceTipGitHubRepositoryPanel(IceTipGitRepositoryPanel)>>newRepository in Block: [...
FullBlockClosure(BlockClosure)>>cull:
[ :job |
"job min: 0; max: 100."
result := aBlock cull: job ] in StPharoApplication(SpApplication)>>informUser:during: in Block: [ :job | ...
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob
value: self
during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]
[ activeProcess
psValueAt: index
put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob
value: self
during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning....
FullBlockClosure(BlockClosure)>>ensure:
Job>>run
StPharoApplication(SpApplication)>>informUser:during:
IceTipGitHubRepositoryPanel(IceTipGitRepositoryPanel)>>newRepository
IceTipGitHubRepositoryPanel>>newRepository
IceTipRegisterRepositoryDialogPresenter>>doAccept
[
self doAccept.
self closeWindow ] in IceTipRegisterRepositoryDialogPresenter(IceTipOptionDialogPresenter)>>accept in Block: [ ...
FullBlockClosure(BlockClosure)>>on:do:
IceTipRegisterRepositoryDialogPresenter(IceTipOptionDialogPresenter)>>accept
[ :presenter | self accept ] in IceTipRegisterRepositoryDialogPresenter(IceTipOptionDialogPresenter)>>initializeDialogWindow: in Block: [ :presenter | self accept ]
FullBlockClosure(BlockClosure)>>cull:
[ aBlock cull: self ] in SpDialogWindowPresenter>>addButton:do: in Block: [ aBlock cull: self ]
SpButtonPresenter>>performAction
SpMorphicButtonAdapter>>action
SpPluggableButtonMorph(PluggableButtonMorph)>>performAction:
[:m |
(m containsPoint: evt cursorPoint) ifTrue: [m enabled ifTrue: [ m performAction: evt ]]] in SpPluggableButtonMorph(PluggableButtonMorph)>>mouseUp: in Block: [:m |...
Array(SequenceableCollection)>>do:
SpPluggableButtonMorph(PluggableButtonMorph)>>mouseUp:
SpPluggableButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
SpPluggableButtonMorph(Morph)>>handleEvent:
SpPluggableButtonMorph(Morph)>>handleFocusEvent:
[
result := focusHolder handleFocusEvent: transformedEvent.
] in HandMorph>>sendFocusEvent:to:clear: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
WorldMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
[
(morphicWorld activeHand isNotNil and: [ anEvent hand isNotNil ]) ifTrue: [
morphicWorld activeHand handleEvent: anEvent
]
] in OSWindowMorphicEventHandler>>dispatchMorphicEvent: in Block: [...
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycleNow
WorldMorph>>doOneCycle
[
| extraWorldsToDraw |
extraWorldsToDraw := ExtraWorldListMutex critical: [
self extraWorldList ].
extraWorldsToDraw do: [ :world | world doOneCycle ].

	(self currentWorld isNotNil and: [
		 (extraWorldsToDraw includes: self currentWorld) not ]) ifTrue: [
		self currentWorld doOneCycle ] ] in WorldMorph class>>doOneCycle in Block: [...

FullBlockClosure(BlockClosure)>>ensure:
WorldState class>>doDrawCycleWith:
WorldMorph class>>doOneCycle
MorphicRenderLoop>>doOneCycle
MorphicRenderLoop>>doOneCycleWhile:
[ MorphicRenderLoop new doOneCycleWhile: [ true ] ] in MorphicUIManager>>spawnNewProcess in Block: [ MorphicRenderLoop new doOneCycleWhile: [ tru[..]
[self value.
"IMPORTANT: Do not step over next line of code. See method comments for details"
Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess in Block: [self value....

@macta
Copy link
Contributor Author

macta commented Apr 8, 2024

Just to be clear here's the pharo build info:
Pharo 12.0.0
Build information: Pharo-12.0.0+SNAPSHOT.build.1472.sha.06d93ff8f0adbe20665b95e94a4a9c34cb0d7493 (64 Bit)

@estebanlm
Copy link
Member

lol, this remembers me how much I want to add the build date to that information :P
anyway, this is fixed but somehow fix did not get into the trunk, seeing what happened.

@macta
Copy link
Contributor Author

macta commented Apr 8, 2024

@estebanlm when do these fixes propogate to the next build? I'll double check it when the next one appears in PharoLauncher (curious whether the message you get properly wraps in the newInform window)

@jecisc
Copy link
Member

jecisc commented Apr 8, 2024

They get integrated once a PR is merged in Pharo and a build happens

@macta
Copy link
Contributor Author

macta commented Apr 8, 2024 via email

@jecisc
Copy link
Member

jecisc commented Apr 9, 2024

When we merge a PR in the Pharo* branch, it will launch a CI that will bootstrap and upload a new Pharo image. It takes around 45min I think.

For example for P12 images: https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/Pharo12/

When PRs get integrated in external projects we do not build a Pharo image. We need to wait the next integration in this repository.

@macta
Copy link
Contributor Author

macta commented Apr 12, 2024

While the walkback is fixed the error message is unreadable becuase there is no wrapping in the message box - which I suspected might be the case.
Will raise another bug - less severe but its not ideal for new users and should be an easy universal fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
To fix before release Issure to fix before the upcoming Pharo release Type: Bug
Projects
None yet
Development

No branches or pull requests

3 participants