AXP612.gsi.de::MUELLERinstead of AXP612::MUELLER or just MUELLER. The mail is delivered properly, but a reply will bounce.
Note, that this behaviour is node specific, some nodes produce proper From: addresses and some don't.
This effect was caused by a fix introduced to allow Xterms to work with sessions initiated from VMS. VMS obviously sends the contents of the logical SYS$NODE_FULLNAME as node name to the Xterm. This is clearly wrong, the logical holds an DECnet node name, the Xterm needs an IP node name (at least non-DEC ones). The wrong node name leads to problems if host based access control is enabled (which should be the default). To allow the usage of Xterms with access control enabled, the logical SYS$NODE_FULLNAME was changed to hold the IP node name. The final setup, e.g.
AXP607 $ sho log *node_f* (LNM$SYSTEM_TABLE) "SYS$NODE_FULLNAME" [super] = "LOCAL:.AXP607::" "SYS$NODE_FULLNAME" [exec] = "AXP607.gsi.de"now allows the Xterms to work, but leads to the VMSmail problems. It's unclear why that happens only on some nodes.
FTP command V3.2 or V3.3 V3.3-UCXECO2 put test.dat x.x.x works works put test.dat "x.x.x" works works put test.dat """x.x.x""" works fail - Invalid data set name get x.x.x test.dat works fail - file specification syntax error get "x.x.x" test.dat works fail - file specification syntax error get """x.x.x""" test.dat works worksIt is hard to understand that on get a tripple quote is required to bypass a misplaced VMS filename syntax check but that on a put the additional quotes are passed to the FTP server, causing an error there.
$ if (1)) $ then $ out "1" $ else $ out "not 1" $ endifexecutes fine under V6.1 despite the extra ")" in the if statement. Under V6.2 one gets (correctly) an error:
%DCL-E-INVIFNEST, invalid IF-THEN-ELSE nesting structure or data inconsistency
$ cre decc_io_problem.c #include <stdio.h> main() { printf("Hello world\n"); } $ cc decc_io_problem $ link decc_io_problem $! $ define/user sys$output decc_io_problem_1.log $ run decc_io_problem $! $ open/write decc_io_problem_log decc_io_problem_2.log $ call doit /out=decc_io_problem_log $ close decc_io_problem_log $! $ type decc_io_problem*.log $! $ exit $ doit: subroutine $ run decc_io_problem $ exit $ endsubroutineThe file decc_io_problem_1.log contains Brian's credo, the second file decc_io_problem_2.log however is empty !!
on VAX (VSBZ): FTP> ls LMDV.S117.RAW0012 LMDV.S117.RAW0012 FTP> dir LMDV.S117.RAW0012 Volume Unit Date Ext Used Recfm Lrecl BlkSz Dsorg Dsname DATA23 3390 11/16/94 1 2443 FB 16384 16384 PS LMDV.S117.RAW0012 FTP> DIR LMDV.S117.RAW0012 LMDV.S117.RAW0012 FTP> DIR/FULL LMDV.S117.RAW0012 Volume Unit Date Ext Used Recfm Lrecl BlkSz Dsorg Dsname DATA23 3390 11/16/94 1 2443 FB 16384 16384 PS LMDV.S117.RAW0012 on AXP (AXP612): FTP> ls LMDV.S117.RAW0012 LMDV.S117.RAW0012 --> FTP> dir LMDV.S117.RAW0012 --> LMDV.S117.RAW0012 FTP> DIR LMDV.S117.RAW0012 LMDV.S117.RAW0012 FTP> DIR/FULL LMDV.S117.RAW0012 Volume Unit Date Ext Used Recfm Lrecl BlkSz Dsorg Dsname DATA23 3390 11/16/94 1 2443 FB 16384 16384 PS LMDV.S117.RAW0012So the dir command shows a long output as expected on the VAX, but a short like for ls on AXP's.
$ ftp axp601 FTP> get sys$login:login.com al_temp0:[mueller]x.xxx local: x.xxx remote: sys$login:login.com $ dir al_temp0:[mueller]x.xxx %DIRECT-W-NOFILES, no files found $ dir x.xxx Directory KP3$AROOT:[MUELLER.SYS.TEST] X.XXX;1The file x.xxx ended up in the current working directory and not in al_temp0:[mueller] as specified in the get command.
local_file Optional. Default: Same name (without any device or directory names).DEC's statement is obvious nonsense because the `without any device or directory names' phrase clearly relates to what happens if it is defaulted. Other UNIX FTP implementations allow the specification of a full filename, so why not UCX...
%UCX-E-FTP_OPNOUT, Error opening for output : SYS$SCRATCH:UCX$FTP_TEMP.FILE$1452 -RMS-E-CRE, ACP file create failed -SYSTEM-F-EXDISKQUOTA, disk quota exceededThe ALADiN group login sets logical sys$scratch to a directory on a scratch disk. The directory is owned by a resource identifier, with a security profile like
user-name.DIR;1 ALADIN (RWE,RWE,RE,RE) (IDENTIFIER=[user-name],OPTIONS=NOPROPAGATE,ACCESS=R+W+E+C) (IDENTIFIER=ALADIN,ACCESS=R+W+E+C) (IDENTIFIER=ALADIN,OPTIONS=DEFAULT+PROTECTED,ACCESS=R+W+E+D+C)Many other programs, notably NCSA MOSAIC and DEC LSEDIT, create temporary files on sys$scratch and succeed to do so. It's also no problem to get a file with FTP onto the scratch disk. Only the temporary file created during the mget seems to be a problem.
$ define /nolog sys$scratch sys$login
Example: For the table CROSSREF:
Columns for table CROSSREF: Column Name Data Type Domain ----------- --------- ------ REFERENCE CHAR(32) D_REFERENCE Foreign Key constraint CROSSREF_FOREIGN1 RANK INTEGER REFERSTO CHAR(32) D_REFERENCEwith sorted indices on REFERENCE and REFERSTO and the query
select distinct cast (refersto as char(20)), cast ((select count(*) from crossref c1 where(c1.refersto=c.refersto)) as smallint) from crossref c where (not exists(select reference from main m where(m.reference=c.refersto))) order by 2 desc limit to 10 rows;one gets the response
ARNPS 37(1987)493 8 PR C16(1977)629 13 ZP A324(1986)97 8 PR C31(1985)1730 9 PRL 32(1974)741 9 PRL 37(1976)1202 9 PRL 53(1984)763 7 PRL 52(1984)1590 13 NP A474(1987)173 9 PRL 57(1986)302 7 10 rows selectedThis are indeed the ten columns with the largest value in column 2, but they are returned unsorted. The same query without distinct works as expected, so the problem seems to be the combination of distinct and order.
program test i = 1 write(6,1001) i stop 1001 format(' Only text but no conversion specifier given....') endThe same code produces on a VAX the runtime error
%FOR-F-INFFORLOO, infinite format loop
program test do while(.true.) call lib$wait(1.) enddo endThe same code compiles fine under DEC Fortran V6.2-108 on VAX.
%FORT-I-USEBEFDEF, Use of variable before definition %FORT-I-BRNCHINTOBLK, Questionable branch into loop or blockerrors on a VAX for obviously bad code, but not on an AXP.
%FORT-I-BRNCHINTOBLK, Questionable branch into loop or block %FORT-I-VARUNUSED, Variable was declared but not usedon a VAX but no message on an AXP (compiled with /warn=all)
program test1 implicit none integer i,j real x,y,z do i=1,10 x = 0.5 * i y = sin(x) if (y .gt. 0.) then if (abs(y) .lt. 0.5) goto 100 j = 1 else 100 continue j = 0 endif write(6,*) i,j,x,y enddo stop endBeyond that: The /SYNCHRONOUS qualifier isn't mentioned in the HELP on Fortran on AXP's.
program test integer buf(2048) open( unit = 1, form = 'unformatted', 1 readonly, status='old', 1 buffercount=3,blocksize=49152) do i=1,100 read(1) buf enddo pause stop endNow define FOR001 to point to a file with 8kbyte fixed length records. Also do a "set rms/buf=2/blo=16". Start the program and check with SDA what the RMS buffers look like. I got
SDA> set rms=bdbsum SDA> sho proc /rms Address USERS SIZE NUMB VBN BLB_PTR ADDR VAL ID FLGS ------- ----- ---- ---- --- ------- ---- --- -- ---- 7F9DE200 0 8192 8192 00000631 00000000 00104000 0 BDB VAL 7F9DD378 0 8192 8192 00000621 00000000 7F9D8000 0 BDB VAL 7F9DE180 0 8192 8192 00000611 00000000 7F9DA000 0 BDB VALThe same exercise on a VAX system produced
Address USERS SIZE NUMB VBN BLB_PTR ADDR VAL ID FLGS ------- ----- ---- ---- --- ------- ---- --- -- ---- 7FED2110 0 49152 49152 00000601 00000000 00041800 0 BDB VAL 7FED1378 0 49152 49152 00000661 00000000 00035800 0 BDB VAL 7FED2170 0 49152 49152 000005A1 00000000 0004D800 0 BDB VALThis means that the BUFFERCOUNT attribute is used, but the BLOCKSIZE is ignored. It seems to be an AXP specific problem, not a DEC Fortran problem, because the buffers are o.k. with DEC Fortran V6.2-108 under VAX/VMS V6.1 VAX FORTRAN V5.8-155 under VAX/VMS V5.5-2H4
Imprint ---- Data privacy protection ---- Haftungsausschluss |