Closed gngrossi closed 1 month ago
Great feedback, thanks @gngrossi .
[SYSA] bash-5.2$ vim //@02858.t.genjcl SVC99 failure: IKJ56228I DATA SET @02858.@02858.T.GENJCL NOT IN CATALOG OR CATALOG CAN NOT BE ACCESSED . Press ENTER or type command to continue
For a SVC99 dynamic allocation error, I suggest not to enter vim unless you can be able to run edit commands: :e "//'@02858.t.genjcl'"
E32: No file name
We should support :e
, I'll look into this.
[SYSA] bash-5.2$ vim "//'@02858.T.ITSV.TBASVC.G0001V00'" SVC99 failure: IKJ56225I DATA SET @02858.T.ITSV.TBASVC.G0001V00 ALREADY IN USE, TRY LATER+ . Press ENTER or type command to continue
For the error message, suggest not displaying “SVC99 failure::, just begin with the message id IKJ56225I…
Seems reasonable to me.
Tried to edit a PDS by mistake… [SYSA] bash-5.2$ vim "//'@02858.t.cntl'" 1 ^@<98>ÂÓäÅ×Áââ^@^@^L^O^A^C^@^H^A ^E<8f>^A ^E<9f>^T9^@^A^@^A^@^@|ðòøõø@@@@ÃÖÄÅâ@@@
Suggestion: if a PDS/PDSE is entered without a member, maybe run mls @02858.t.cntl instead (if it exists) for a member list?
Yep, we were thinking of extending the behaviour of editing a directory in vim. E.g vim /
. This one will require more effort, so I'll create a different issue for it - https://github.com/ZOSOpenTools/vimport/issues/67
Being in ISPF BROWSE for a PDSE member @02858.T.CNTL.PDSE(BLUEPASS) and then trying…to edit
[SYSA] bash-5.2$ vim "//'@02858.T.CNTL.PDSE(BLUEPASS)'" EDC5028I A previous I/O error has marked the stream invalid for further I/O processing. (errno2=0xC0370005) Press ENTER or type command to continue
Are you expecting it to be editable? This may be related to the ISPF enqueue support. @MikeFultonDev
Edit a new PDS member, adding a line, writing it, and exiting (note using _ENCODE_FILE_NEW=IBM-1047) Going back into edit after… vim "//'@02858.t.cntl(ggg)'"
1 hello@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^U
ISPF BROWSE @02858.T.CNTL(GGG) Command ===>
ÇÁ%%?
I can reproduce, ~it seems to be related to the [noeol]
attribute that's added for new files. ~
Tried to write an update to the PDS member "//'@02858.t.cntl(ggg)'" after removing the line of data (for an empty member)
"~/tmp/v787420/0-@02858.T.GGG.cntl" 0L, 0B written "~/tmp/v787420/0-@02858.T.GGG.cntl" Error: Failed to allocate memory for buffer Press ENTER or type command to continue
@MikeFultonDev Being in ISPF BROWSE for a PDSE member @02858.T.CNTL.PDSE(BLUEPASS) and then trying…to edit
[SYSA] bash-5.2$ vim "//'@02858.T.CNTL.PDSE(BLUEPASS)'" EDC5028I A previous I/O error has marked the stream invalid for further I/O processing. (errno2=0xC0370005) Press ENTER or type command to continue
Are you expecting it to be editable?
I did some testing with ISPF and it looks like it is allowed for two different users. But in this use case, I am the same user (@02858), with a session in TSO/ISPF and the other session in SSH.
Is the reason for the EDC5028I message?
I've addressed a couple of the issues in the latest update: https://github.com/ZOSOpenTools/vimport/releases/tag/datasetio
Upgraded and re-tested... 1) Good [SYSA] bash-5.2$ vim //@02858.t.genjcl Error: IKJ56228I DATA SET @02858.@02858.T.GENJCL NOT IN CATALOG OR CATALOG CAN NOT BE ACCESSED . Press ENTER or type command to continue
Works :e //'@02858.t.genjcl'
Tried this :e "//'@02858.t.genjcl'" E32: No file name Is this temporary not to use the same syntax (double quotes) as when using vim "//'@02858.t.genjcl'"
2) Good [SYSA] bash-5.2$ vim "//'@02858.T.ITSV.TBASVC.G0001V00'" Error: IKJ56225I DATA SET @02858.T.ITSV.TBASVC.G0001V00 ALREADY IN USE, TRY LATER+ . Press ENTER or type command to continue
3) Edit a PDS by mistake vim "//'@02858.t.cntl'"
4) No change
Being in ISPF BROWSE for a PDSE member @02858.T.CNTL.PDSE(BLUEPASS) and then trying…to edit
[SYSA] bash-5.2$ vim "//'@02858.T.CNTL.PDSE(BLUEPASS)'" EDC5028I A previous I/O error has marked the stream invalid for further I/O processing. (errno2=0xC0370005) Press ENTER or type command to continue
5) Good Edit a new PDS member, adding a line, writing it, and exiting (note using _ENCODE_FILE_NEW=IBM-1047) Going back into edit after… vim "//'@02858.t.cntl(gggg)'"
Error Remove a line for an empty member and writing it... ~ "~/tmp/v856377/0-@02858.T.GGGG.cntl" 0L, 0B written "~/tmp/v856377/0-@02858.T.GGGG.cntl" Error: Failed to allocate memory for buffer Press ENTER or type command to continue
6) Question: Curious, is this intended for the temporary file...editing @02858.T.CNTL(GGGG)
thanks
I was able to edit the same PDS member using vim and ISPF. Is this expected?
Here are the ENQs: vim "//'@02858.T.CNTL(gggg)'"
ISPF EDIT @02858.T.CNTL(GGGG)
4. The behavior of TSO/ISPF in our sysplex: allows an edit of a PDS/PDSE member and a browse of the same member, by the same user or different user, on the same LPAR or on a different LPAR.
So, in ISPF BROWSE for a PDSE member and using vim to edit that same member should work the same way... Thoughts?
Yes, the temporary file is create just before the I/O processing begins. We intercept Vim at that point and dump the dataset contents into the temporary file.
The behavior of TSO/ISPF in our sysplex: allows an edit of a PDS/PDSE member and a browse of the same member, by the same user or different user, on the same LPAR or on a different LPAR.
So, in ISPF BROWSE for a PDSE member and using vim to edit that same member should work the same way... Thoughts?
Interesting, thanks. This is reference to the error "EDC5028I A previous I/O error has marked the stream invalid for further I/O processing. (errno2=0xC0370005)" correct? I believe that is coming from fopen, so we'll need to explore further.
bpxmtext C0370005
JrEdcOsrdEpreverr01: A read of the next block is being attempted, but there is
an outstanding read error. This failure occurred while reading the next block.
Action: A direct reposition or rewind must be done to clear the previous read
error.
Source: edcbosrd.c
Regarding the temp file used for editing... Editing this @02858.T.CNTL(GGGG) dataset member...uses "~/tmp/v288321/0-@02858.T.GGGG.cntl" 1L, 81B Looks confusing seeing @02858.T.GGGG.cntl where the member name is placed as the third node...not an issue
for Mike's question... Are you expecting it to be editable? This may be related to the ISPF enqueue support.
Yes, expecting to be able to vim edit a member when in ISPF BROWSE for that member. thanks
Regarding the temp file used for editing... Editing this @02858.T.CNTL(GGGG) dataset member...uses "~/tmp/v288321/0-@02858.T.GGGG.cntl" 1L, 81B Looks confusing seeing @02858.T.GGGG.cntl where the member name is placed as the third node...not an issue
Ah, that was a design decision, so that we can map the LLQ to a suffix, enabling syntax highlighting to work without any changes to your vimrc. The ~/.dioconfig.json
file can provide further customization if needed. You can run man libdio
to learn about that.
Maybe a point of reference using ISPF and dsfs...
ISPF edit on a dataset @02858.T.GENJCL
vim edit on /dsfs/txt/@02858/t.genjcl
I'm going to open a DSFS case for this...either it's a feature or an issue.
Trying to use vim to "browse" or "view" a PDS member when in ISPF edit for that member. I was expecting to "browse" like when trying ISPF browse.
1) ISPF edit on @02858.T.CNTL(GGGG)
2) vim -R /dsfs/txt/@02858/t.cntl/gggg and view /dsfs/txt/@02858/t.cntl/gggg
Results: "/dsfs/txt/@02858/t.cntl/gggg" [Permission Denied]
-- INSERT -- W10: Warning: Changing a readonly file
Same result for a dataset.
Case TS017264205 - DSFS Permission Denied when using vim to view a dataset
@gngrossi for the remaining issues, would it be possible to open separate issues under https://github.com/ZOSOpenTools/vimport/issues ?
@MikeFultonDev Being in ISPF BROWSE for a PDSE member @02858.T.CNTL.PDSE(BLUEPASS) and then trying…to edit
[SYSA] bash-5.2$ vim "//'@02858.T.CNTL.PDSE(BLUEPASS)'" EDC5028I A previous I/O error has marked the stream invalid for further I/O processing. (errno2=0xC0370005) Press ENTER or type command to continue
Are you expecting it to be editable?
I did some testing with ISPF and it looks like it is allowed for two different users. But in this use case, I am the same user (@02858), with a session in TSO/ISPF and the other session in SSH.
Is the reason for the EDC5028I message?
I have to dig into this. I would have expected this to work because we don't honour any ISPF ENQ's yet and I am opening the PDSE as SHR which should work. #6 opened
The behavior of TSO/ISPF in our sysplex: allows an edit of a PDS/PDSE member and a browse of the same member, by the same user or different user, on the same LPAR or on a different LPAR.
So, in ISPF BROWSE for a PDSE member and using vim to edit that same member should work the same way... Thoughts?
This is a side effect of us not honouring the ISPF ENQ's on the dataset. This is covered under #2
1) [SYSA] bash-5.2$ vim //@02858.t.genjcl SVC99 failure: IKJ56228I DATA SET @02858.@02858.T.GENJCL NOT IN CATALOG OR CATALOG CAN NOT BE ACCESSED . Press ENTER or type command to continue
For a SVC99 dynamic allocation error, I suggest not to enter vim unless you can be able to run edit commands: :e "//'@02858.t.genjcl'"
E32: No file name
2) [SYSA] bash-5.2$ vim "//'@02858.T.ITSV.TBASVC.G0001V00'" SVC99 failure: IKJ56225I DATA SET @02858.T.ITSV.TBASVC.G0001V00 ALREADY IN USE, TRY LATER+ . Press ENTER or type command to continue
For the error message, suggest not displaying “SVC99 failure::, just begin with the message id IKJ56225I…
3) Tried to edit a PDS by mistake… [SYSA] bash-5.2$ vim "//'@02858.t.cntl'" 1 ^@<98>ÂÓäÅ×Áââ^@^@^L^O^A^C^@^H^A ^E<8f>^A ^E<9f>^T9^@^A^@^A^@^@|ðòøõø@@@@ÃÖÄÅâ@@@
Suggestion: if a PDS/PDSE is entered without a member, maybe run mls @02858.t.cntl instead (if it exists) for a member list?
4) Being in ISPF BROWSE for a PDSE member @02858.T.CNTL.PDSE(BLUEPASS) and then trying…to edit
[SYSA] bash-5.2$ vim "//'@02858.T.CNTL.PDSE(BLUEPASS)'" EDC5028I A previous I/O error has marked the stream invalid for further I/O processing. (errno2=0xC0370005) Press ENTER or type command to continue
5) Edit a new PDS member, adding a line, writing it, and exiting (note using _ENCODE_FILE_NEW=IBM-1047) Going back into edit after… vim "//'@02858.t.cntl(ggg)'"
1 hello@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^U
ISPF BROWSE @02858.T.CNTL(GGG) Command ===>
ÇÁ%%?
Tried to write an update to the PDS member "//'@02858.t.cntl(ggg)'" after removing the line of data (for an empty member)
"~/tmp/v787420/0-@02858.T.GGG.cntl" 0L, 0B written "~/tmp/v787420/0-@02858.T.GGG.cntl" Error: Failed to allocate memory for buffer Press ENTER or type command to continue