funny_falcon

elog_fatal_in_shared_buffers.diff

Apr 20th, 2022 (edited)
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.05 KB | None | 0 0
  1. diff --git a/src/backend/storage/buffer/buf_table.c b/src/backend/storage/buffer/buf_table.c
  2. index dc439940fa..528d66d2aa 100644
  3. --- a/src/backend/storage/buffer/buf_table.c
  4. +++ b/src/backend/storage/buffer/buf_table.c
  5. @@ -31,7 +31,7 @@ typedef struct
  6.         int                     id;                             /* Associated buffer ID */
  7.  } BufferLookupEnt;
  8.  
  9. -static HTAB *SharedBufHash;
  10. +HTAB *SharedBufHash = NULL;
  11.  
  12.  
  13.  /*
  14. diff --git a/src/backend/utils/hash/dynahash.c b/src/backend/utils/hash/dynahash.c
  15. index 3babde8d70..cc17bb16f8 100644
  16. --- a/src/backend/utils/hash/dynahash.c
  17. +++ b/src/backend/utils/hash/dynahash.c
  18. @@ -1713,6 +1713,10 @@ element_alloc(HTAB *hashp, int nelem, int freelist_idx)
  19.         if (hashp->isfixed)
  20.                 return false;
  21.  
  22. +       extern HTAB *SharedBufHash;
  23. +       if (hashp == SharedBufHash)
  24. +               elog(FATAL, "extend SharedBufHash");
  25. +
  26.         /* Each element has a HASHELEMENT header plus user data. */
  27.         elementSize = MAXALIGN(sizeof(HASHELEMENT)) + MAXALIGN(hctl->entrysize);
  28.  
  29.  
Add Comment
Please, Sign In to add comment