Thread: revise a comment in CreateCheckPoint()
The original comment of why we are safe without protection of critical section is confusing. Index: xlog.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/access/transam/xlog.c,v retrieving revision 1.187 diff -c -r1.187 xlog.c *** xlog.c 17 Apr 2005 03:04:29 -0000 1.187 --- xlog.c 21 Apr 2005 10:12:01 -0000 *************** *** 4924,4931 **** * buffers and commit-log buffers are flushed to disk. * * This I/O could fail for various reasons. If so, we will fail to ! * complete the checkpoint, but there is no reason to force a system ! * panic. Accordingly, exit critical section while doing it. */ END_CRIT_SECTION(); --- 4924,4934 ---- * buffers and commit-log buffers are flushed to disk. * * This I/O could fail for various reasons. If so, we will fail to ! * complete the checkpoint, there is no problem if this occurs in ! * ordinary situtations but it could be a problem if we are shutdown ! * database. However, we increase the CritSectionCount in ShutdownXLOG() ! * already, so it is ok. Accordingly, exit critical section while ! * doing it. */ END_CRIT_SECTION();
"Qingqing Zhou" <zhouqq@cs.toronto.edu> writes: > The original comment of why we are safe without protection of critical > section is confusing. I thought your version was even more so :-(. I've applied the attached patch instead. regards, tom lane Index: xlog.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v retrieving revision 1.187 diff -c -r1.187 xlog.c *** xlog.c 17 Apr 2005 03:04:29 -0000 1.187 --- xlog.c 23 Apr 2005 18:48:45 -0000 *************** *** 4925,4931 **** * * This I/O could fail for various reasons. If so, we will fail to * complete the checkpoint, but there is no reason to force a system ! * panic. Accordingly, exit critical section while doing it. */ END_CRIT_SECTION(); --- 4925,4934 ---- * * This I/O could fail for various reasons. If so, we will fail to * complete the checkpoint, but there is no reason to force a system ! * panic. Accordingly, exit critical section while doing it. (If ! * we are doing a shutdown checkpoint, we probably *should* panic --- ! * but that will happen anyway because we'll still be inside the ! * critical section established by ShutdownXLOG.) */ END_CRIT_SECTION();
"Tom Lane" <tgl@sss.pgh.pa.us> writes > > I thought your version was even more so :-(. I've applied the attached > patch instead. > That's too bad :-( but the happy part is that it is fixed now. Regards, Qingqing