Opened 8 years ago

Closed 8 years ago

#79 closed defect (worksforme)

Settings => mercurial+ => MessageNotUnderstood

Reported by: patrik.svestka@… Owned by:
Priority: major Milestone:
Component: default Keywords:
Cc: Also affects CVS HEAD (eXept version): no

Description

When using the snapshot
Smalltalk versionString -> '6.2.5.2095'

WinX64 version.

I'm getting message when just clicking on the Mercurial+ :
[MessageNotUnderstood]: UndefinedObject does not understand: #asFilename in process SettingsDialog [89]

Attachments (5)

Copy_Walkback_Text_to_copy.txt (5.6 KB ) - added by patrik.svestka@… 8 years ago.
settings.stx (6.6 KB ) - added by patrik.svestka@… 8 years ago.
HGSourceCodeManagementSettingsAppl-doCheckSettings.st (725 bytes ) - added by jan vrany 8 years ago.
Fix for issue with DNU when setting the HG command (attempt 1)
stacktrace-issue73-2.txt (2.8 KB ) - added by jan vrany 8 years ago.
HGSourceCodeManagementSettingsAppl-doSelectHGCommand.st (1.0 KB ) - added by jan vrany 8 years ago.

Download all attachments as: .zip

Change History (21)

comment:1 by jan vrany, 8 years ago

Works for me. I need - as always - at least:

  • full stack trace (there's Context -> Copy Walkback Text to copy stack trace to clippboard
  • Your preferences - %USERPROFILE%\.smalltalk\settings.stc (if it exists, you may want to look at it in text editor to make sure it does not contain anything you consider confidential)

by patrik.svestka@…, 8 years ago

by patrik.svestka@…, 8 years ago

Attachment: settings.stx added

comment:2 by patrik.svestka@…, 8 years ago

I've attached all the files you have requested.

comment:3 by jan vrany, 8 years ago

Status: newtesting

It seems that the problem is that there's no Mercurial installed on your system (or not found in @PATH@. This case was not handled, leading to DNU.

I believe 0ec4c46/stx.libscm fixes the issue. I cannot test on a real system for I don't have a Windows machine with no Mercurial installed.

Could you try build 2010 (or newer) and confirm?

comment:4 by patrik.svestka@…, 8 years ago

The Mercurial was not in the PATH. I have tested such a situation - on version '6.2.5.2103' the error message did not appear.

However, if I want to add hg.exe (Mercurial installed at C:\Program Files\Mercurial) via browser button I got the following error:

[HGInvalidExecutableError]: 'hg' executable not configured and not found in standard places! in process SettingsDialog [12]

HGCommand::showconfig class(HGCommand class) >> hgCommandValidate: nil {6758400} [10]
HGCommand::showconfig class(HGCommand class) >> hgExecutable {6762496} [10]
HGCommand::showconfig(HGCommand) >> executable {6766592} [2]
HGCommand::showconfig(HGCommand) >> execute {6770688} [19]
HGConfig >> root {6774784} [9]
HGConfig >> get:default: #(#ui #username) nil {6778880} [2]
HGConfig >> ui_username {6782976} [2]
HGSourceCodeManagementSettingsAppl >> doCheckUsername {6787072} [8]
HGSourceCodeManagementSettingsAppl >> doCheckSettings {6791168} [5]
HGSourceCodeManagementSettingsAppl(Object) >> perform: #doCheckSettings {6795264} [32]
InterestConverter >> update:with:from: nil nil ValueHolder(false) {6799360} [4]
[] in Object>>changed:with: >> value: InterestConverter(sending #doCheckSettings to a HGSourceCodeManagementSettingsAppl) {6803456} [7]
IdentitySet(Set) >> do: [] in Object>>changed:with: {6807552} [17]
ValueHolder(Model) >> dependentsDo: [] in Object>>changed:with: {6811648} [12]
ValueHolder(Object) >> changed:with: nil nil {6815744} [6]
ValueHolder(Object) >> changed: nil {6819840} [6]
ValueHolder(Object) >> changed {6823936} [6]
ValueHolder(Object) >> perform: #changed {6828032} [32]
InterestConverter >> update:with:from: #value true ValueHolder(true) {6832128} [4]
[] in Object>>changed:with: >> value: InterestConverter(sending #changed to ValueHolder(false)) {6836224} [7]
IdentitySet(Set) >> do: [] in Object>>changed:with: {6840320} [17]
ValueHolder(Model) >> dependentsDo: [] in Object>>changed:with: {6844416} [12]
ValueHolder(Object) >> changed:with: #value true {6848512} [6]
ValueHolder(ValueModel) >> value: true {6852608} [15]
HGSourceCodeManagementSettingsAppl >> doCheckCommand {6856704} [43]
HGSourceCodeManagementSettingsAppl >> doCheckSettings {6860800} [4]
HGSourceCodeManagementSettingsAppl(Object) >> perform: #doCheckSettings {6864896} [32]
InterestConverter >> update:with:from: #value '"C:\Program Files\Mercurial\hg.exe"' ValueHolder('"C:\Program Files\Mercurial\hg.exe"') {6868992} [4]
[] in Object>>changed:with: >> value: InterestConverter(sending #doCheckSettings to a HGSourceCodeManagementSettingsAppl) {6873088} [7]
IdentitySet(Set) >> do: [] in Object>>changed:with: {6877184} [17]
ValueHolder(Model) >> dependentsDo: [] in Object>>changed:with: {6881280} [12]
ValueHolder(Object) >> changed:with: #value '"C:\Program Files\Mercurial\hg.exe"' {6885376} [6]
ValueHolder(ValueModel) >> value: '"C:\Program Files\Mercurial\hg.exe"' {6889472} [15]
HGSourceCodeManagementSettingsAppl >> doSelectHGCommand {6893568} [10]
HGSourceCodeManagementSettingsAppl(Object) >> perform: #doSelectHGCommand {6897664} [32]
HGSourceCodeManagementSettingsAppl(Object) >> perform:withOptionalArgument: #doSelectHGCommand true {6901760} [8]
MessageSend >> value: true {6905856} [4]
ButtonController >> performAction {6909952} [35]
ButtonController >> buttonRelease:x:y: 1 34 7 {6914048} [37]
ButtonController(Object) >> perform:withArguments: #buttonRelease:x:y: #(1 34 7) {6918144} [170]
Button(DisplaySurface) >> dispatchEvent:type:arguments:withFocusOn:delegate: WindowEvent::ButtonReleaseEvent(#buttonRelease:x:y: view: Button args: #(1 34 7)) #buttonRelease:x:y: #(1 34 7) a FilenameEditField true {6922240} [236]
Button(DisplaySurface) >> dispatchEvent:withFocusOn:delegate: WindowEvent::ButtonReleaseEvent(#buttonRelease:x:y: view: Button args: #(1 34 7)) a FilenameEditField true {6926336} [5]
[] in WindowGroup>>processEventsWithModalGroup: >> value {6930432} [231]
WindowGroup::LastEventQuery class(GenericException class) >> handle:do: [] in WindowGroup>>processEventsWithModalGroup: [] in WindowGroup>>processEventsWithModalGroup: {6934528} [14]
[] in WindowGroup>>processEventsWithModalGroup: >> value {6938624} [17]
Block >> ensure: [] in WindowGroup>>processEventsWithModalGroup: {6942720} [12]
WindowGroup >> processEventsWithModalGroup: nil {6946816} [243]
[] in WindowGroup>>eventLoopWhile:onLeave: >> value {6950912} [162]
SignalSet >> handle:do: [] in WindowGroup>>eventLoopWhile:onLeave: [] in WindowGroup>>eventLoopWhile:onLeave: {6955008} [14]
[] in WindowGroup>>eventLoopWhile:onLeave: >> value {6959104} [85]
Block >> ensure: [] in WindowGroup>>startupWith: (optimized) {6963200} [12]
WindowGroup >> eventLoopWhile:onLeave: [] in WindowGroup>>startupWith: (optimized) [] in WindowGroup>>startupWith: (optimized) {6967296} [194]
[] in WindowGroup>>startupWith: >> value {6971392} [28]
Block >> ensure: [] in WindowGroup>>startupWith: {6975488} [12]
[] in WindowGroup>>startupWith: >> value {6979584} [29]
WindowGroup::WindowGroupQuery class(Notification class) >> answer:do: WindowGroup(SettingsDialog) [] in WindowGroup>>startupWith: {6983680} [10]
[] in WindowGroup>>startupWith: >> value {6987776} [23]
ExceptionHandlerSet >> handleDo: [] in WindowGroup>>startupWith: {6991872} [14]
[] in Process>>start >> value {6995968} [35]
SignalSet >> handle:do: [] in Process>>start [] in Process>>start {7000064} [14]
[] in Process>>start >> value {7004160} [23]
Block >> ensure: [] in Process>>start {7008256} [12]
Process >> start {7012352} [37]
UndefinedObject >> nil {7016448} [0]

When there is a directory path, clicking on button browse does not follow the directory (e.g. "C:\Program Files\Mercurial\"), instead it starts from the directory where StX is located.

by jan vrany, 8 years ago

Fix for issue with DNU when setting the HG command (attempt 1)

comment:5 by jan vrany, 8 years ago

Ouch, mea culpa.

The above patch should "fix" that (even though this is quite ugly as it interferes
with the system preferences). Could you try it and confirm?

To load it, you may do

Smalltalk fileIn: '/tmp/HGSourceCodeManagementSettingsAppl-doCheckSettings.st'

comment:6 by patrik.svestka@…, 8 years ago

Thank you for the loading procedure. I was wondering how to load the patch :)).

I confirm that this patch works. It now takes hg.exe and does not produce any errors. I did not yet commit any source code to Mercurial so I have to test the functionality too.

comment:7 by jan vrany, 8 years ago

Good. I'll commit that fix later together with fix for default path (not to always default to stx workdirectory)

comment:8 by jan vrany, 8 years ago

Fixed in b4c3383/stx.libscm and 52b1e45/stx.libscm.
Will be included from build 2014 onwards.

comment:9 by patrik.svestka@…, 8 years ago

It works on build 2015, only the browse button does not work as expected. Still shows the StX directory instead of the path written there.

e.g.
When I have path "C:\Program Files\Mercurial\hg.exe" clicking on browse I expect to be at the directory "C:\Program Files\Mercurial\" not at "C:\prg_sdk\smalltalkx-jv-branch-6.2.5_x86_64-win32\bin\.\ "

comment:10 by patrik.svestka@…, 8 years ago

When (build 2107) clicking on Mercurial+ settings this warning is displayed:
(probably some index issue?)

Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 9 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2

in reply to:  9 comment:11 by jan vrany, 8 years ago

Replying to patrik.svestka@…:

It works on build 2015, only the browse button does not work as expected. Still shows the StX directory instead of the path written there.

e.g.
When I have path "C:\Program Files\Mercurial\hg.exe" clicking on browse I expect to be at the directory "C:\Program Files\Mercurial\" not at "C:\prg_sdk\smalltalkx-jv-branch-6.2.5_x86_64-win32\bin\.\ "

Interesting. Works for me...

in reply to:  10 comment:12 by jan vrany, 8 years ago

Replying to patrik.svestka@…:

When (build 2107) clicking on Mercurial+ settings this warning is displayed:
(probably some index issue?)

Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 9 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2
Processor [info]: removing invalid read-select fileDescriptor: 5 idx: 2

This is unrelated. It's a known issue with I/O subsystem, which is rather tricky on Windows (due to rather stupid design of Windows, to put it mildly :) It should not harm, but it's annoying. Perhaps fill in another bug report. But fixing this would be difficult.

by jan vrany, 8 years ago

Attachment: stacktrace-issue73-2.txt added

comment:13 by jan vrany, 8 years ago

Update from patrik.svestka@...: another DNU, see stacktrace-issue73-2.txt​.
This happens on Windows box with no mercurial installed.

in reply to:  13 comment:15 by jan vrany, 8 years ago

Replying to jan vrany:

Update from patrik.svestka@...: another DNU, see stacktrace-issue73-2.txt​.
This happens on Windows box with no mercurial installed.

This is fixed in fe7a227/stx.libscm

comment:16 by jan vrany, 8 years ago

Resolution: worksforme
Status: testingclosed

I have tested this again and also on Windows with no Mercurial installed. It does work for me, so I'm closing this. Please reopen if it still does not work for you (but make sure you have latest stx:libscm :-)

Note: See TracTickets for help on using tickets.