17231570 full userland build sporadically fails during 'pkgsend publish' s11-update
authorNorm Jacobs <Norm.Jacobs@Oracle.COM>
Thu, 01 Aug 2013 14:22:38 -0700
branchs11-update
changeset 2710 3c5579720afc
parent 2708 0671d3e048aa
child 2711 4a08c47c8ec3
17231570 full userland build sporadically fails during 'pkgsend publish'
components/Makefile
components/meta-packages/history/Makefile
make-rules/ips.mk
--- a/components/Makefile	Wed Jul 31 10:48:30 2013 -0700
+++ b/components/Makefile	Thu Aug 01 14:22:38 2013 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../make-rules/shared-macros.mk
@@ -66,6 +66,13 @@
 publish:		MAKEFLAGS += PKGLINT=/bin/true
 endif
 
+# In order to work around an IPS simultaneous publication issue and to improve
+# top level build performance, we postpone catalog and index updates until the
+# end of the build.  Individual component builds postpone the updates until
+# they have published all of their packages.
+publish:		MAKEFLAGS += DISABLE_IPS_CATALOG_AND_INDEX_UPDATES=yes
+
+
 .DEFAULT:	publish
 
 build install publish test: $(COMPONENT_DIRS)
@@ -125,7 +132,7 @@
 			 $(@:%=--component %) --make $(TARGET) $(LOG)
 
 publish:
-	$(PKGREPO) rebuild -s $(PKG_REPO)
+	$(PKGREPO) refresh -s $(PKG_REPO)
 	$(WS_TOOLS)/userland-incorporator --repository $(PKG_REPO) \
 	  -p pkg:/consolidation/$(CONSOLIDATION)/$(CONSOLIDATION)[email protected].$(OS_VERSION),$(BUILD_VERSION) \
 	  -s "$(CONSOLIDATION) consolidation incorporation" \
@@ -133,6 +140,7 @@
 	  -c $(CONSOLIDATION) >$(WS_LOGS)/$(CONSOLIDATION)-incorporation.p5m
 	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest \
 	  $(WS_LOGS)/$(CONSOLIDATION)-incorporation.p5m
+	$(PKGREPO) refresh -s $(PKG_REPO)
 # pkglint all of the published manifests in one batch.
 ifdef CANONICAL_REPO
 	@echo 'pkglinting all package manifests...'
--- a/components/meta-packages/history/Makefile	Wed Jul 31 10:48:30 2013 -0700
+++ b/components/meta-packages/history/Makefile	Thu Aug 01 14:22:38 2013 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../../make-rules/shared-macros.mk
@@ -54,7 +54,7 @@
 	$(PKGMOGRIFY) -D CONSOLIDATION=$(CONSOLIDATION) $< > $@
 
 $(MANIFEST_BASE)-%.published: $(MANIFEST_BASE)-%.mogrified $(BUILD_DIR)
-	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest $<
+	$(PKGSEND) -s $(PKG_REPO) publish --fmri-in-manifest --no-catalog $<
 	$(CP) $< $@
 
 $(BUILD_DIR)/.linted-$(MACH): $(MOGRIFIED) $(BUILD_DIR)
@@ -64,6 +64,9 @@
 	$(TOUCH) $@
 
 $(BUILD_DIR)/.published-$(MACH): $(BUILD_DIR)/.linted-$(MACH) $(PUBLISHED)
+ifndef DISABLE_IPS_CATALOG_AND_INDEX_UPDATES
+	$(PKGREPO) refresh -s $(PKG_REPO)
+endif
 	$(TOUCH) $@
 
 publish: $(BUILD_DIR)/.published-$(MACH)
--- a/make-rules/ips.mk	Wed Jul 31 10:48:30 2013 -0700
+++ b/make-rules/ips.mk	Thu Aug 01 14:22:38 2013 -0700
@@ -273,6 +273,7 @@
 
 # published
 PKGSEND_PUBLISH_OPTIONS = -s $(PKG_REPO) publish --fmri-in-manifest
+PKGSEND_PUBLISH_OPTIONS += --no-catalog
 PKGSEND_PUBLISH_OPTIONS += $(PKG_PROTO_DIRS:%=-d %)
 PKGSEND_PUBLISH_OPTIONS += -T \*.py
 $(MANIFEST_BASE)-%.published:	$(MANIFEST_BASE)-%.depend.res $(BUILD_DIR)/.linted-$(MACH)
@@ -280,6 +281,9 @@
 	$(PKGFMT) <$< >$@
 
 $(BUILD_DIR)/.published-$(MACH):	$(PUBLISHED)
+ifndef DISABLE_IPS_CATALOG_AND_INDEX_UPDATES
+	$(PKGREPO) refresh -s $(PKG_REPO)
+endif
 	$(TOUCH) $@
 
 print-package-names:	canonical-manifests