Changeset 13309
- Timestamp:
- May 8, 2007, 1:47:03 PM (19 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
Nebulous-Server/lib/Nebulous/Server.pm (modified) (38 diffs)
-
Nebulous/lib/Nebulous/Server.pm (modified) (38 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous-Server/lib/Nebulous/Server.pm
r13303 r13309 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.4 2 2007-05-08 02:31:34jhoblitt Exp $3 # $Id: Server.pm,v 1.43 2007-05-08 23:47:03 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 54 54 55 55 $db->commit; 56 $log->debug("commit"); 56 57 }; 57 58 if ( $@ ) { 58 59 $db->rollback if $db; 60 $log->debug("rollback"); 59 61 $log->logdie( "database error: $@" ); 60 62 } 61 63 62 64 $log->debug( "connected to database: ", sub { $db->data_sources; } ); 63 64 $log->debug( "leaving" );65 65 66 66 my $self = bless {}, ref $class || $class; … … 70 70 $self->config($config); 71 71 72 $log->debug( "leaving" ); 73 72 74 return $self; 73 75 } … … 80 82 return $self; 81 83 } 82 84 83 85 my $log = $self->log; 84 86 my $sql = $self->sql; 85 87 my $config = $self->config; 86 88 89 # if the dbh is still alive, return it 90 if (defined $self->{db} and $self->{db}->ping) { 91 $log->debug("db handle is still alive"); 92 return $self->{db}; 93 } 94 # otherwise create a new connection 95 $log->debug("db handle is dead"); 96 87 97 # if we're running under mod_perl & Apache::DBI is loaded we want to 88 # reconnect to the database everytime the dbh is request . The rational is98 # reconnect to the database everytime the dbh is requested. The rational is 89 99 # that if we're running under mod_perl this is probably a log running 90 100 # processes and the database might have gone away on us. Apache::DBI will … … 107 117 108 118 $db->commit; 119 $log->debug("commit"); 109 120 }; 110 121 if ( $@ ) { 111 122 $db->rollback if $db; 123 $log->debug("rollback"); 112 124 $log->logdie( "database error: $@" ); 113 125 } … … 145 157 $log->debug( "entered - @_" ); 146 158 147 my $ins_id;159 my ($uri, $vol_id); 148 160 eval { 149 161 { … … 177 189 } 178 190 191 my $ins_id; 179 192 { 180 193 # get instance ID … … 187 200 $query->finish; 188 201 } 189 }; 190 if ($@) { 191 $db->rollback; 192 $log->logdie("database error: $@"); 193 } 194 195 # Unfortunately, since we want to use the instance row's ID as part of the 196 # actual on disk file name we can't try to create the file until after 197 # we've create both a new storage_storage object and instance. 198 199 # TODO add some stuff here to retry if unsucessful 200 my ($uri, $vol_id); 201 eval { 202 203 # Unfortunately, since we want to use the instance row's ID as part of the 204 # actual on disk file name we can't try to create the file until after 205 # we've create both a new storage_storage object and instance. 206 207 # TODO add some stuff here to retry if unsucessful 202 208 ($uri, $vol_id) = $self->_create_empty_instance_file($key, $ins_id, $vol_name); 203 }; 204 if ($@) { 205 $db->rollback; 206 $log->logdie($@); 207 } 208 209 $log->debug("created $uri on volume ID: $vol_id"); 210 211 eval { 212 { 209 $log->debug("created $uri on volume ID: $vol_id"); 210 211 { 212 # update the instance with URI & vol_id that the file is on 213 213 my $query = $db->prepare_cached( $sql->update_instance_uri ); 214 214 # vol_id, uri, ins_id … … 221 221 if ($@) { 222 222 $db->rollback; 223 $log->logdie("database error: $@"); 223 $log->debug("rollback"); 224 $log->logdie("error: $@"); 224 225 } 225 226 … … 267 268 268 269 $db->commit; 269 }; 270 if ($@) { 271 $db->rollback; 270 $log->debug("commit"); 271 }; 272 if ($@) { 273 $db->rollback; 274 $log->debug("rollback"); 272 275 $log->logdie("database error: $@"); 273 276 } … … 315 318 $query->finish; 316 319 $db->rollback; 320 $log->debug("rollback"); 317 321 $log->logdie( "storage object does not exist" ); 318 322 } … … 339 343 if ($@) { 340 344 $db->rollback; 345 $log->debug("rollback"); 341 346 $log->logdie( "database error: $@" ); 342 347 } … … 353 358 if ($@) { 354 359 $db->rollback; 360 $log->debug("rollback"); 355 361 $log->logdie($@); 356 362 } … … 364 370 365 371 $db->commit; 366 }; 367 if ($@) { 368 $db->rollback; 372 $log->debug("commit"); 373 }; 374 if ($@) { 375 $db->rollback; 376 $log->debug("rollback"); 369 377 $log->logdie("database error: $@"); 370 378 } … … 423 431 $query->finish; 424 432 $db->rollback; 433 $log->debug("rollback"); 425 434 $log->logdie( "database error: $@" ); 426 435 } … … 431 440 if ( $write_lock ) { 432 441 eval { $db->rollback; }; 442 $log->debug("rollback"); 433 443 $log->logdie( "database error: $@" ) if $@; 434 444 … … 438 448 if ( $read_lock > 0 ) { 439 449 eval { $db->rollback; }; 450 $log->debug("rollback"); 440 451 $log->logdie( "database error: $@" ) if $@; 441 452 … … 453 464 454 465 $db->commit; 466 $log->debug("commit"); 455 467 }; 456 468 if ( $@ ) { 457 469 $db->rollback; 470 $log->debug("rollback"); 458 471 $log->logdie( "database error: $@" ); 459 472 } … … 468 481 if ( $write_lock ) { 469 482 eval { $db->rollback; }; 483 $log->debug("rollback"); 470 484 $log->logdie( "database error: $@" ) if $@; 471 485 … … 483 497 484 498 $db->commit; 499 $log->debug("commit"); 485 500 }; 486 501 if ( $@ ) { 487 502 $db->rollback; 503 $log->debug("rollback"); 488 504 $log->logdie( "database error: $@" ); 489 505 } … … 546 562 $query->finish; 547 563 $db->rollback; 564 $log->debug("rollback"); 548 565 $log->logdie( "database error: $@" ); 549 566 } … … 553 570 if ( $read_lock ) { 554 571 eval { $db->rollback; }; 572 $log->debug("rollback"); 555 573 $log->logdie( "database error: $@" ) if $@; 556 574 … … 559 577 unless ( $write_lock ) { 560 578 eval { $db->rollback; }; 579 $log->debug("rollback"); 561 580 $log->logdie( "database error: $@" ) if $@; 562 581 … … 574 593 575 594 $db->commit; 595 $log->debug("commit"); 576 596 }; 577 597 if ( $@ ) { 578 598 $db->rollback; 599 $log->debug("rollback"); 579 600 $log->logdie( "database error: $@" ); 580 601 } … … 590 611 if ( $write_lock ) { 591 612 eval { $db->rollback; }; 613 $log->debug("rollback"); 592 614 $log->logdie( "database error: $@" ) if $@; 593 615 … … 597 619 if ( $read_lock == 0 ) { 598 620 eval { $db->rollback; }; 621 $log->debug("rollback"); 599 622 $log->logdie( "database error: $@" ) if $@; 600 623 … … 613 636 614 637 $db->commit; 638 $log->debug("commit"); 615 639 }; 616 640 if ( $@ ) { 617 641 $db->rollback; 642 $log->debug("rollback"); 618 643 $log->logdie( "database error: $@" ); 619 644 } … … 686 711 if ($@) { 687 712 $db->rollback; 713 $log->debug("rollback"); 688 714 $log->logdie("database error: $@"); 689 715 } … … 691 717 eval { 692 718 $db->commit; 693 }; 694 if ($@) { 695 $db->rollback; 719 $log->debug("commit"); 720 }; 721 if ($@) { 722 $db->rollback; 723 $log->debug("rollback"); 696 724 $log->logdie("database error: $@"); 697 725 } … … 738 766 if ($@) { 739 767 $db->rollback; 768 $log->debug("rollback"); 740 769 $log->logdie("database error: $@"); 741 770 } … … 778 807 if ($@) { 779 808 $db->rollback; 809 $log->debug("rollback"); 780 810 $log->logdie("database error: $@"); 781 811 } … … 827 857 if ($@) { 828 858 $db->rollback; 859 $log->debug("rollback"); 829 860 $log->logdie("database error: $@"); 830 861 } … … 832 863 eval { 833 864 $db->commit; 834 }; 835 if ($@) { 836 $db->rollback; 865 $log->debug("commit"); 866 }; 867 if ($@) { 868 $db->rollback; 869 $log->debug("rollback"); 837 870 $log->logdie("database error: $@"); 838 871 } … … 1019 1052 1020 1053 $db->commit; 1054 $log->debug("commit"); 1021 1055 }; 1022 1056 if ( $@ ) { 1023 1057 $db->rollback; 1058 $log->debug("rollback"); 1024 1059 $log->logdie( "database error: $@" ); 1025 1060 } … … 1064 1099 if ( $@ ) { 1065 1100 $db->rollback; 1101 $log->debug("rollback"); 1066 1102 $log->logdie("database error: $@"); 1067 1103 } … … 1122 1158 if ($@) { 1123 1159 $db->rollback; 1160 $log->debug("rollback"); 1124 1161 $log->logdie("database error: $@"); 1125 1162 } … … 1151 1188 if ($@) { 1152 1189 $db->rollback; 1190 $log->debug("rollback"); 1153 1191 $log->logdie( "database error: $@" ); 1154 1192 } … … 1180 1218 if ($@) { 1181 1219 $db->rollback; 1220 $log->debug("rollback"); 1182 1221 $log->logdie( "database error: $@" ); 1183 1222 } -
trunk/Nebulous/lib/Nebulous/Server.pm
r13303 r13309 1 1 # Copyright (c) 2004 Joshua Hoblitt 2 2 # 3 # $Id: Server.pm,v 1.4 2 2007-05-08 02:31:34jhoblitt Exp $3 # $Id: Server.pm,v 1.43 2007-05-08 23:47:03 jhoblitt Exp $ 4 4 5 5 package Nebulous::Server; … … 54 54 55 55 $db->commit; 56 $log->debug("commit"); 56 57 }; 57 58 if ( $@ ) { 58 59 $db->rollback if $db; 60 $log->debug("rollback"); 59 61 $log->logdie( "database error: $@" ); 60 62 } 61 63 62 64 $log->debug( "connected to database: ", sub { $db->data_sources; } ); 63 64 $log->debug( "leaving" );65 65 66 66 my $self = bless {}, ref $class || $class; … … 70 70 $self->config($config); 71 71 72 $log->debug( "leaving" ); 73 72 74 return $self; 73 75 } … … 80 82 return $self; 81 83 } 82 84 83 85 my $log = $self->log; 84 86 my $sql = $self->sql; 85 87 my $config = $self->config; 86 88 89 # if the dbh is still alive, return it 90 if (defined $self->{db} and $self->{db}->ping) { 91 $log->debug("db handle is still alive"); 92 return $self->{db}; 93 } 94 # otherwise create a new connection 95 $log->debug("db handle is dead"); 96 87 97 # if we're running under mod_perl & Apache::DBI is loaded we want to 88 # reconnect to the database everytime the dbh is request . The rational is98 # reconnect to the database everytime the dbh is requested. The rational is 89 99 # that if we're running under mod_perl this is probably a log running 90 100 # processes and the database might have gone away on us. Apache::DBI will … … 107 117 108 118 $db->commit; 119 $log->debug("commit"); 109 120 }; 110 121 if ( $@ ) { 111 122 $db->rollback if $db; 123 $log->debug("rollback"); 112 124 $log->logdie( "database error: $@" ); 113 125 } … … 145 157 $log->debug( "entered - @_" ); 146 158 147 my $ins_id;159 my ($uri, $vol_id); 148 160 eval { 149 161 { … … 177 189 } 178 190 191 my $ins_id; 179 192 { 180 193 # get instance ID … … 187 200 $query->finish; 188 201 } 189 }; 190 if ($@) { 191 $db->rollback; 192 $log->logdie("database error: $@"); 193 } 194 195 # Unfortunately, since we want to use the instance row's ID as part of the 196 # actual on disk file name we can't try to create the file until after 197 # we've create both a new storage_storage object and instance. 198 199 # TODO add some stuff here to retry if unsucessful 200 my ($uri, $vol_id); 201 eval { 202 203 # Unfortunately, since we want to use the instance row's ID as part of the 204 # actual on disk file name we can't try to create the file until after 205 # we've create both a new storage_storage object and instance. 206 207 # TODO add some stuff here to retry if unsucessful 202 208 ($uri, $vol_id) = $self->_create_empty_instance_file($key, $ins_id, $vol_name); 203 }; 204 if ($@) { 205 $db->rollback; 206 $log->logdie($@); 207 } 208 209 $log->debug("created $uri on volume ID: $vol_id"); 210 211 eval { 212 { 209 $log->debug("created $uri on volume ID: $vol_id"); 210 211 { 212 # update the instance with URI & vol_id that the file is on 213 213 my $query = $db->prepare_cached( $sql->update_instance_uri ); 214 214 # vol_id, uri, ins_id … … 221 221 if ($@) { 222 222 $db->rollback; 223 $log->logdie("database error: $@"); 223 $log->debug("rollback"); 224 $log->logdie("error: $@"); 224 225 } 225 226 … … 267 268 268 269 $db->commit; 269 }; 270 if ($@) { 271 $db->rollback; 270 $log->debug("commit"); 271 }; 272 if ($@) { 273 $db->rollback; 274 $log->debug("rollback"); 272 275 $log->logdie("database error: $@"); 273 276 } … … 315 318 $query->finish; 316 319 $db->rollback; 320 $log->debug("rollback"); 317 321 $log->logdie( "storage object does not exist" ); 318 322 } … … 339 343 if ($@) { 340 344 $db->rollback; 345 $log->debug("rollback"); 341 346 $log->logdie( "database error: $@" ); 342 347 } … … 353 358 if ($@) { 354 359 $db->rollback; 360 $log->debug("rollback"); 355 361 $log->logdie($@); 356 362 } … … 364 370 365 371 $db->commit; 366 }; 367 if ($@) { 368 $db->rollback; 372 $log->debug("commit"); 373 }; 374 if ($@) { 375 $db->rollback; 376 $log->debug("rollback"); 369 377 $log->logdie("database error: $@"); 370 378 } … … 423 431 $query->finish; 424 432 $db->rollback; 433 $log->debug("rollback"); 425 434 $log->logdie( "database error: $@" ); 426 435 } … … 431 440 if ( $write_lock ) { 432 441 eval { $db->rollback; }; 442 $log->debug("rollback"); 433 443 $log->logdie( "database error: $@" ) if $@; 434 444 … … 438 448 if ( $read_lock > 0 ) { 439 449 eval { $db->rollback; }; 450 $log->debug("rollback"); 440 451 $log->logdie( "database error: $@" ) if $@; 441 452 … … 453 464 454 465 $db->commit; 466 $log->debug("commit"); 455 467 }; 456 468 if ( $@ ) { 457 469 $db->rollback; 470 $log->debug("rollback"); 458 471 $log->logdie( "database error: $@" ); 459 472 } … … 468 481 if ( $write_lock ) { 469 482 eval { $db->rollback; }; 483 $log->debug("rollback"); 470 484 $log->logdie( "database error: $@" ) if $@; 471 485 … … 483 497 484 498 $db->commit; 499 $log->debug("commit"); 485 500 }; 486 501 if ( $@ ) { 487 502 $db->rollback; 503 $log->debug("rollback"); 488 504 $log->logdie( "database error: $@" ); 489 505 } … … 546 562 $query->finish; 547 563 $db->rollback; 564 $log->debug("rollback"); 548 565 $log->logdie( "database error: $@" ); 549 566 } … … 553 570 if ( $read_lock ) { 554 571 eval { $db->rollback; }; 572 $log->debug("rollback"); 555 573 $log->logdie( "database error: $@" ) if $@; 556 574 … … 559 577 unless ( $write_lock ) { 560 578 eval { $db->rollback; }; 579 $log->debug("rollback"); 561 580 $log->logdie( "database error: $@" ) if $@; 562 581 … … 574 593 575 594 $db->commit; 595 $log->debug("commit"); 576 596 }; 577 597 if ( $@ ) { 578 598 $db->rollback; 599 $log->debug("rollback"); 579 600 $log->logdie( "database error: $@" ); 580 601 } … … 590 611 if ( $write_lock ) { 591 612 eval { $db->rollback; }; 613 $log->debug("rollback"); 592 614 $log->logdie( "database error: $@" ) if $@; 593 615 … … 597 619 if ( $read_lock == 0 ) { 598 620 eval { $db->rollback; }; 621 $log->debug("rollback"); 599 622 $log->logdie( "database error: $@" ) if $@; 600 623 … … 613 636 614 637 $db->commit; 638 $log->debug("commit"); 615 639 }; 616 640 if ( $@ ) { 617 641 $db->rollback; 642 $log->debug("rollback"); 618 643 $log->logdie( "database error: $@" ); 619 644 } … … 686 711 if ($@) { 687 712 $db->rollback; 713 $log->debug("rollback"); 688 714 $log->logdie("database error: $@"); 689 715 } … … 691 717 eval { 692 718 $db->commit; 693 }; 694 if ($@) { 695 $db->rollback; 719 $log->debug("commit"); 720 }; 721 if ($@) { 722 $db->rollback; 723 $log->debug("rollback"); 696 724 $log->logdie("database error: $@"); 697 725 } … … 738 766 if ($@) { 739 767 $db->rollback; 768 $log->debug("rollback"); 740 769 $log->logdie("database error: $@"); 741 770 } … … 778 807 if ($@) { 779 808 $db->rollback; 809 $log->debug("rollback"); 780 810 $log->logdie("database error: $@"); 781 811 } … … 827 857 if ($@) { 828 858 $db->rollback; 859 $log->debug("rollback"); 829 860 $log->logdie("database error: $@"); 830 861 } … … 832 863 eval { 833 864 $db->commit; 834 }; 835 if ($@) { 836 $db->rollback; 865 $log->debug("commit"); 866 }; 867 if ($@) { 868 $db->rollback; 869 $log->debug("rollback"); 837 870 $log->logdie("database error: $@"); 838 871 } … … 1019 1052 1020 1053 $db->commit; 1054 $log->debug("commit"); 1021 1055 }; 1022 1056 if ( $@ ) { 1023 1057 $db->rollback; 1058 $log->debug("rollback"); 1024 1059 $log->logdie( "database error: $@" ); 1025 1060 } … … 1064 1099 if ( $@ ) { 1065 1100 $db->rollback; 1101 $log->debug("rollback"); 1066 1102 $log->logdie("database error: $@"); 1067 1103 } … … 1122 1158 if ($@) { 1123 1159 $db->rollback; 1160 $log->debug("rollback"); 1124 1161 $log->logdie("database error: $@"); 1125 1162 } … … 1151 1188 if ($@) { 1152 1189 $db->rollback; 1190 $log->debug("rollback"); 1153 1191 $log->logdie( "database error: $@" ); 1154 1192 } … … 1180 1218 if ($@) { 1181 1219 $db->rollback; 1220 $log->debug("rollback"); 1182 1221 $log->logdie( "database error: $@" ); 1183 1222 }
Note:
See TracChangeset
for help on using the changeset viewer.
