📄 no.089.stable.out
字号:
stdout of test 'no.089` in directory 'tests/BugReports` itself:#> Mtest: other no.089#> Mtest: Mtimeout -timeout 630 ./no.089 no.089#> Mlog: Mtimeout -timeout 210 Mserver -modulesilent -yaccsilent -d8 -db tests_BugReports no.089.1.mil# Monet Database Server V4.1# Copyright (c) 1993-1999, CWI & SION. All rights reserved.# compiled for IRIX646.5/32bit on Fri Jan 14 01:04:33 MET 2000.#script:no.089.1.mil# Monet Database Server V4.3.5# Copyright (c) 1993-2002, CWI. All rights reserved.# compiled for i686-pc-linux-gnu/32bit; dynamically linked.# >Number: 89# >Category: Mserver# >Synopsis: abort doesn't work right when BATs are unloaded# >Confidential: no# >Severity: serious# >Priority: high# >Responsible: boncz# >State: open# >Class: sw-bug# >Submitter-Id: unknown# >Arrival-Date: Mon Dec 1 14:49:04 1997# >Originator: windhouw# >Organization:# UvA# >Release: 971007# >Environment:# # >Description:# The following problem occurs:# - I'm running a "transaction";# - I abort the transaction;# - the updates and inserts seems to be reversed;# - I quit Mserver and restart it;# - the updates and inserts are back again.# # It seems to be that BATs that are swapped out of# memory, don't take part in the abort.# # I replayed this scene by explicitly swapping the BAT# to disk:# #You are system administrator (adm)!# >module(url);# >Server := new(oid,url);# >Server.persists(true);# >Server.rename("Server");# >Server.insert(oid(1),url("http://www.cwi.nl/")); # >Server.print;# #---------------------------------## # oid | Server ## #---------------------------------## [ 1@0, http://www.cwi.nl/ ]# >Server.unload;# >abort;# >Server.print;# #-----------------## # oid | Server ## #-----------------## ... QUIT & RESTART ...# #You are system administrator (adm)!# >module(url);# >Server.print;# #---------------------------------## # oid | Server ## #---------------------------------## [ 1@0, http://www.cwi.nl/ ]# # As this problem frequently occurs while testing my# application, my database gets inconsistent which# leads to runtime errors in the odmg packages (like# oid not found in the extent), while abort should# give me the possibilty to get back to the previous# consistent state of the database.module(url);var Server:= new(oid,url).persists(true).rename("Server");var Server2:= new(oid,url).persists(true).rename("Server2");var Clients:= new(oid,int).persists(true).rename("Clients");var Clients2:= new(oid,int).persists(true).rename("Clients2");commit();Server.insert(oid(1),url("http://www.cwi.nl/")); Server2.insert(oid(1),url("http://www.cwi.nl/")); Clients.insert(oid(1),3); Clients2.insert(oid(1),3); Server.print();#---------------------------------## BAT: Server ## (oid) (url) ##---------------------------------#[ 1@0, "http://www.cwi.nl/" ]Server2.print();#---------------------------------## BAT: Server2 ## (oid) (url) ##---------------------------------#[ 1@0, "http://www.cwi.nl/" ]Clients.print();#-------------------------## BAT: Clients ## (oid) (int) ##-------------------------#[ 1@0, 3 ]Clients2.print();#-------------------------## BAT: Clients2 ## (oid) (int) ##-------------------------#[ 1@0, 3 ]dir("Server");#---------------------------------------------------------------------------------------------------------## name | htype | ttype | count | heat | dirty | status| kind | refcnt| lrefcnt ##---------------------------------------------------------------------------------------------------------#[ "Server", "oid", "url", 1, 0, "dirty", "load", "pers", 0, 2 ][ "Server2", "oid", "url", 1, 0, "dirty", "load", "pers", 0, 2 ]dir("Clients");#---------------------------------------------------------------------------------------------------------## name | htype | ttype | count | heat | dirty | status| kind | refcnt| lrefcnt ##---------------------------------------------------------------------------------------------------------#[ "Clients", "oid", "int", 1, 0, "dirty", "load", "pers", 0, 2 ][ "Clients2", "oid", "int", 1, 0, "dirty", "load", "pers", 0, 2 ]unload("Server");unload("Clients");dir("Server");#---------------------------------------------------------------------------------------------------------## name | htype | ttype | count | heat | dirty | status| kind | refcnt| lrefcnt ##---------------------------------------------------------------------------------------------------------#[ "Server", "oid", "url", 1, 0, "diffs", "disk", "pers", 0, 2 ][ "Server2", "oid", "url", 1, 0, "dirty", "load", "pers", 0, 2 ]dir("Clients");#---------------------------------------------------------------------------------------------------------## name | htype | ttype | count | heat | dirty | status| kind | refcnt| lrefcnt ##---------------------------------------------------------------------------------------------------------#[ "Clients", "oid", "int", 1, 0, "diffs", "disk", "pers", 0, 2 ][ "Clients2", "oid", "int", 1, 0, "dirty", "load", "pers", 0, 2 ]abort();dir("Server");#---------------------------------------------------------------------------------------------------------## name | htype | ttype | count | heat | dirty | status| kind | refcnt| lrefcnt ##---------------------------------------------------------------------------------------------------------#[ "Server", "oid", "url", 0, 0, "dirty", "load", "pers", 0, 2 ][ "Server2", "oid", "url", 0, 0, "clean", "load", "pers", 0, 2 ]dir("Clients");#---------------------------------------------------------------------------------------------------------## name | htype | ttype | count | heat | dirty | status| kind | refcnt| lrefcnt ##---------------------------------------------------------------------------------------------------------#[ "Clients", "oid", "int", 0, 0, "dirty", "load", "pers", 0, 2 ][ "Clients2", "oid", "int", 0, 0, "clean", "load", "pers", 0, 2 ]Server.print();#-----------------## h Server # name# oid url # type#-----------------#Server2.print();#-------------------------## BAT: Server2 ## (oid) (url) ##-------------------------#Clients.print();#-------------------------## BAT: Clients ## (oid) (int) ##-------------------------#Clients2.print();#-------------------------## BAT: Clients2 ## (oid) (int) ##-------------------------#quit();# Monet Database Server V4.3.5# Copyright (c) 1993-2002, CWI. All rights reserved.# compiled for i686-pc-linux-gnu/32bit; dynamically linked.module(url);bat("Server").print();#-----------------## BAT: Server ## (oid) (url) ##-----------------#bat("Server2").print();#-------------------------## BAT: Server2 ## (oid) (url) ##-------------------------#bat("Clients").print();#-------------------------## BAT: Clients ## (oid) (int) ##-------------------------#bat("Clients2").print();#-------------------------## BAT: Clients2 ## (oid) (int) ##-------------------------#quit();# 17:06:53 > # 17:06:53 > Done.# 17:06:53 >
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -