- Notifications
You must be signed in to change notification settings - Fork28
Commit6cb3372
committed
Address set of issues with errno handling
System calls mixed up in error code paths are causing two issues whichseveral code paths have not correctly handled:1) For write() calls, sometimes the system may return less bytes thanwhat has been written without errno being set. Some paths were carefulenough to consider that case, and assumed that errno should be set toENOSPC, other calls missed that.2) errno generated by a system call is overwritten by other system callswhich may succeed once an error code path is taken, causing what isreported to the user to be incorrect.This patch uses the brute-force approach of correcting all those codepaths. Some refactoring could happen in the future, but this is let asfuture work, which is not targeted for back-branches anyway.Author: Michael PaquierReviewed-by: Ashutosh SharmaDiscussion:https://postgr.es/m/20180622061535.GD5215@paquier.xyz1 parent370e68a commit6cb3372
File tree
10 files changed
+118
-6
lines changed- src
- backend
- access
- heap
- transam
- replication
- logical
- bin/pg_basebackup
10 files changed
+118
-6
lines changedLines changed: 5 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1168 | 1168 |
| |
1169 | 1169 |
| |
1170 | 1170 |
| |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
1171 | 1175 |
| |
1172 | 1176 |
| |
1173 | 1177 |
| |
| 1178 | + | |
1174 | 1179 |
| |
1175 | 1180 |
| |
1176 | 1181 |
| |
|
Lines changed: 23 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1241 | 1241 |
| |
1242 | 1242 |
| |
1243 | 1243 |
| |
| 1244 | + | |
| 1245 | + | |
1244 | 1246 |
| |
1245 | 1247 |
| |
| 1248 | + | |
| 1249 | + | |
1246 | 1250 |
| |
1247 | 1251 |
| |
1248 | 1252 |
| |
1249 | 1253 |
| |
| 1254 | + | |
1250 | 1255 |
| |
1251 | 1256 |
| |
1252 | 1257 |
| |
| |||
1274 | 1279 |
| |
1275 | 1280 |
| |
1276 | 1281 |
| |
| 1282 | + | |
| 1283 | + | |
1277 | 1284 |
| |
1278 | 1285 |
| |
1279 | 1286 |
| |
| 1287 | + | |
| 1288 | + | |
1280 | 1289 |
| |
1281 | 1290 |
| |
1282 | 1291 |
| |
1283 | 1292 |
| |
| 1293 | + | |
1284 | 1294 |
| |
1285 | 1295 |
| |
1286 | 1296 |
| |
| |||
1663 | 1673 |
| |
1664 | 1674 |
| |
1665 | 1675 |
| |
| 1676 | + | |
| 1677 | + | |
1666 | 1678 |
| |
1667 | 1679 |
| |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
1668 | 1683 |
| |
1669 | 1684 |
| |
1670 | 1685 |
| |
1671 | 1686 |
| |
1672 | 1687 |
| |
1673 | 1688 |
| |
| 1689 | + | |
| 1690 | + | |
1674 | 1691 |
| |
1675 | 1692 |
| |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
1676 | 1696 |
| |
1677 | 1697 |
| |
1678 | 1698 |
| |
| |||
1686 | 1706 |
| |
1687 | 1707 |
| |
1688 | 1708 |
| |
| 1709 | + | |
| 1710 | + | |
1689 | 1711 |
| |
| 1712 | + | |
1690 | 1713 |
| |
1691 | 1714 |
| |
1692 | 1715 |
| |
|
Lines changed: 7 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3268 | 3268 |
| |
3269 | 3269 |
| |
3270 | 3270 |
| |
| 3271 | + | |
| 3272 | + | |
3271 | 3273 |
| |
| 3274 | + | |
3272 | 3275 |
| |
3273 | 3276 |
| |
3274 | 3277 |
| |
| |||
11675 | 11678 |
| |
11676 | 11679 |
| |
11677 | 11680 |
| |
| 11681 | + | |
11678 | 11682 |
| |
11679 | 11683 |
| |
| 11684 | + | |
11680 | 11685 |
| |
11681 | 11686 |
| |
11682 | 11687 |
| |
| |||
11688 | 11693 |
| |
11689 | 11694 |
| |
11690 | 11695 |
| |
| 11696 | + | |
11691 | 11697 |
| |
11692 | 11698 |
| |
11693 | 11699 |
| |
| 11700 | + | |
11694 | 11701 |
| |
11695 | 11702 |
| |
11696 | 11703 |
| |
|
Lines changed: 4 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
718 | 718 |
| |
719 | 719 |
| |
720 | 720 |
| |
| 721 | + | |
721 | 722 |
| |
722 | 723 |
| |
723 |
| - | |
| 724 | + | |
724 | 725 |
| |
725 | 726 |
| |
726 | 727 |
| |
| |||
741 | 742 |
| |
742 | 743 |
| |
743 | 744 |
| |
| 745 | + | |
744 | 746 |
| |
745 | 747 |
| |
746 |
| - | |
| 748 | + | |
747 | 749 |
| |
748 | 750 |
| |
749 | 751 |
| |
|
Lines changed: 3 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
495 | 495 |
| |
496 | 496 |
| |
497 | 497 |
| |
| 498 | + | |
| 499 | + | |
498 | 500 |
| |
499 | 501 |
| |
500 | 502 |
| |
501 | 503 |
| |
502 | 504 |
| |
503 | 505 |
| |
504 | 506 |
| |
| 507 | + | |
505 | 508 |
| |
506 | 509 |
| |
507 | 510 |
| |
|
Lines changed: 15 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
578 | 578 |
| |
579 | 579 |
| |
580 | 580 |
| |
| 581 | + | |
| 582 | + | |
581 | 583 |
| |
| 584 | + | |
| 585 | + | |
| 586 | + | |
582 | 587 |
| |
583 | 588 |
| |
584 | 589 |
| |
| |||
617 | 622 |
| |
618 | 623 |
| |
619 | 624 |
| |
| 625 | + | |
| 626 | + | |
620 | 627 |
| |
| 628 | + | |
| 629 | + | |
| 630 | + | |
621 | 631 |
| |
622 | 632 |
| |
623 | 633 |
| |
| |||
633 | 643 |
| |
634 | 644 |
| |
635 | 645 |
| |
| 646 | + | |
| 647 | + | |
636 | 648 |
| |
| 649 | + | |
| 650 | + | |
| 651 | + | |
637 | 652 |
| |
638 | 653 |
| |
639 | 654 |
| |
|
Lines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2304 | 2304 |
| |
2305 | 2305 |
| |
2306 | 2306 |
| |
2307 |
| - | |
| 2307 | + | |
| 2308 | + | |
| 2309 | + | |
2308 | 2310 |
| |
2309 | 2311 |
| |
2310 | 2312 |
| |
|
Lines changed: 20 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1605 | 1605 |
| |
1606 | 1606 |
| |
1607 | 1607 |
| |
| 1608 | + | |
| 1609 | + | |
1608 | 1610 |
| |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
1609 | 1614 |
| |
1610 | 1615 |
| |
1611 | 1616 |
| |
| |||
1623 | 1628 |
| |
1624 | 1629 |
| |
1625 | 1630 |
| |
| 1631 | + | |
| 1632 | + | |
1626 | 1633 |
| |
| 1634 | + | |
1627 | 1635 |
| |
1628 | 1636 |
| |
1629 | 1637 |
| |
| |||
1708 | 1716 |
| |
1709 | 1717 |
| |
1710 | 1718 |
| |
| 1719 | + | |
| 1720 | + | |
1711 | 1721 |
| |
| 1722 | + | |
1712 | 1723 |
| |
1713 | 1724 |
| |
1714 | 1725 |
| |
| |||
1736 | 1747 |
| |
1737 | 1748 |
| |
1738 | 1749 |
| |
| 1750 | + | |
| 1751 | + | |
1739 | 1752 |
| |
| 1753 | + | |
1740 | 1754 |
| |
1741 | 1755 |
| |
1742 | 1756 |
| |
| |||
1753 | 1767 |
| |
1754 | 1768 |
| |
1755 | 1769 |
| |
| 1770 | + | |
| 1771 | + | |
1756 | 1772 |
| |
| 1773 | + | |
1757 | 1774 |
| |
1758 | 1775 |
| |
1759 | 1776 |
| |
| |||
1769 | 1786 |
| |
1770 | 1787 |
| |
1771 | 1788 |
| |
| 1789 | + | |
| 1790 | + | |
1772 | 1791 |
| |
| 1792 | + | |
1773 | 1793 |
| |
1774 | 1794 |
| |
1775 | 1795 |
| |
|
Lines changed: 6 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1274 | 1274 |
| |
1275 | 1275 |
| |
1276 | 1276 |
| |
1277 |
| - | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
1278 | 1280 |
| |
1279 | 1281 |
| |
1280 | 1282 |
| |
| |||
1378 | 1380 |
| |
1379 | 1381 |
| |
1380 | 1382 |
| |
| 1383 | + | |
| 1384 | + | |
1381 | 1385 |
| |
| 1386 | + | |
1382 | 1387 |
| |
1383 | 1388 |
| |
1384 | 1389 |
| |
|
Lines changed: 32 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
128 | 128 |
| |
129 | 129 |
| |
130 | 130 |
| |
131 |
| - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
132 | 136 |
| |
133 | 137 |
| |
134 | 138 |
| |
| |||
442 | 446 |
| |
443 | 447 |
| |
444 | 448 |
| |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
445 | 455 |
| |
| 456 | + | |
446 | 457 |
| |
447 | 458 |
| |
448 | 459 |
| |
| |||
623 | 634 |
| |
624 | 635 |
| |
625 | 636 |
| |
626 |
| - | |
| 637 | + | |
| 638 | + | |
627 | 639 |
| |
628 | 640 |
| |
629 | 641 |
| |
| |||
818 | 830 |
| |
819 | 831 |
| |
820 | 832 |
| |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
821 | 837 |
| |
| 838 | + | |
822 | 839 |
| |
823 | 840 |
| |
824 | 841 |
| |
| |||
884 | 901 |
| |
885 | 902 |
| |
886 | 903 |
| |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
887 | 908 |
| |
| 909 | + | |
888 | 910 |
| |
889 | 911 |
| |
890 | 912 |
| |
| |||
911 | 933 |
| |
912 | 934 |
| |
913 | 935 |
| |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
914 | 943 |
| |
| 944 | + | |
915 | 945 |
| |
916 | 946 |
| |
917 | 947 |
| |
|
0 commit comments
Comments
(0)