diff --git a/src/backend/storage/ipc/dsm_impl.c b/src/backend/storage/ipc/dsm_impl.c new file mode 100644 index 0819641..780e3a5 *** a/src/backend/storage/ipc/dsm_impl.c --- b/src/backend/storage/ipc/dsm_impl.c *************** dsm_impl_posix(dsm_op op, dsm_handle han *** 289,296 **** if (errno != EEXIST) ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not open shared memory segment \"%s\": %m", ! name))); return false; } --- 289,299 ---- if (errno != EEXIST) ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not open POSIX shared memory segment \"%s\": %m", ! name), ! errhint("This error usually means that /dev/shm is not mounted, or its " ! "permissions do not allow the database user to create files " ! "there."))); return false; } *************** dsm_impl_posix(dsm_op op, dsm_handle han *** 313,319 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat shared memory segment \"%s\": %m", name))); return false; } --- 316,322 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat POSIX shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_posix(dsm_op op, dsm_handle han *** 332,338 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not resize shared memory segment %s to %zu bytes: %m", name, request_size))); return false; } --- 335,341 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not resize POSIX shared memory segment %s to %zu bytes: %m", name, request_size))); return false; } *************** dsm_impl_posix(dsm_op op, dsm_handle han *** 358,364 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap shared memory segment \"%s\": %m", name))); return false; } --- 361,367 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap POSIX shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_posix(dsm_op op, dsm_handle han *** 382,388 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map shared memory segment \"%s\": %m", name))); return false; } --- 385,391 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map POSIX shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_sysv(dsm_op op, dsm_handle hand *** 512,518 **** errno = save_errno; ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not get shared memory segment: %m"))); } return false; } --- 515,521 ---- errno = save_errno; ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not get System V shared memory segment: %m"))); } return false; } *************** dsm_impl_sysv(dsm_op op, dsm_handle hand *** 530,536 **** { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap shared memory segment \"%s\": %m", name))); return false; } --- 533,539 ---- { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap System V shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_sysv(dsm_op op, dsm_handle hand *** 540,546 **** { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not remove shared memory segment \"%s\": %m", name))); return false; } --- 543,549 ---- { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not remove System V shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_sysv(dsm_op op, dsm_handle hand *** 556,562 **** { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat shared memory segment \"%s\": %m", name))); return false; } --- 559,565 ---- { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat System V shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_sysv(dsm_op op, dsm_handle hand *** 577,583 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map shared memory segment \"%s\": %m", name))); return false; } --- 580,586 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map System V shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_windows(dsm_op op, dsm_handle h *** 645,651 **** _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap shared memory segment \"%s\": %m", name))); return false; } --- 648,654 ---- _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap Windows shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_windows(dsm_op op, dsm_handle h *** 655,661 **** _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not remove shared memory segment \"%s\": %m", name))); return false; } --- 658,664 ---- _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not remove Windows shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_windows(dsm_op op, dsm_handle h *** 691,697 **** _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not create shared memory segment \"%s\": %m", name))); return false; } --- 694,700 ---- _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not create Windows shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_windows(dsm_op op, dsm_handle h *** 718,724 **** _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not open shared memory segment \"%s\": %m", name))); return false; } --- 721,727 ---- _dosmaperr(GetLastError()); ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not open Windows shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_windows(dsm_op op, dsm_handle h *** 739,745 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map shared memory segment \"%s\": %m", name))); return false; } --- 742,748 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map Windows shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_windows(dsm_op op, dsm_handle h *** 763,769 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat shared memory segment \"%s\": %m", name))); return false; } --- 766,772 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat Windows shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 808,814 **** { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap shared memory segment \"%s\": %m", name))); return false; } --- 811,817 ---- { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap mmap shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 818,824 **** { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not remove shared memory segment \"%s\": %m", name))); return false; } --- 821,827 ---- { ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not remove mmap shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 832,838 **** if (errno != EEXIST) ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not open shared memory segment \"%s\": %m", name))); return false; } --- 835,841 ---- if (errno != EEXIST) ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not open mmap shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 856,862 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat shared memory segment \"%s\": %m", name))); return false; } --- 859,865 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not stat mmap shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 875,881 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not resize shared memory segment %s to %zu bytes: %m", name, request_size))); return false; } --- 878,884 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not resize mmap shared memory segment %s to %zu bytes: %m", name, request_size))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 923,929 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not resize shared memory segment %s to %zu bytes: %m", name, request_size))); return false; } --- 926,932 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not resize mmap shared memory segment %s to %zu bytes: %m", name, request_size))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 950,956 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap shared memory segment \"%s\": %m", name))); return false; } --- 953,959 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not unmap mmap shared memory segment \"%s\": %m", name))); return false; } *************** dsm_impl_mmap(dsm_op op, dsm_handle hand *** 974,980 **** ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map shared memory segment \"%s\": %m", name))); return false; } --- 977,983 ---- ereport(elevel, (errcode_for_dynamic_shared_memory(), ! errmsg("could not map mmap shared memory segment \"%s\": %m", name))); return false; }