<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.ghprb.GhprbCause'><shortDescription>GitHub pull request #2577 of commit 7fdfa8c8bd080fc8e2a0940fe241ad0b1503ae74, no merge conflicts.</shortDescription></cause></action><action _class='org.jenkinsci.plugins.ghprb.GhprbParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>sha1</name><value>origin/pr/2577/merge</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbActualCommit</name><value>7fdfa8c8bd080fc8e2a0940fe241ad0b1503ae74</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbActualCommitAuthor</name><value>Yonghong Song</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbActualCommitAuthorEmail</name><value>yhs@fb.com</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbAuthorRepoGitUrl</name><value>https://github.com/iovisor/bcc.git</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthor</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthorEmail</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthorLogin</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTriggerAuthorLoginMention</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullId</name><value>2577</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbTargetBranch</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbSourceBranch</name><value>yhs_dev</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GIT_BRANCH</name><value>yhs_dev</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullAuthorEmail</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullAuthorLogin</name><value>yonghong-song</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullAuthorLoginMention</name><value>@yonghong-song</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullDescription</name><value>GitHub pull request #2577 of commit 7fdfa8c8bd080fc8e2a0940fe241ad0b1503ae74, no merge conflicts.</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullTitle</name><value>[RFC] introduce map.lookup_or_init2()</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullLink</name><value>https://github.com/iovisor/bcc/pull/2577</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbPullLongDescription</name><value>Previously, map.lookup_or_init() may cause unexpected\r\nreturn from the function, and this has caught surprise\r\nfrom many users. So, the commit\r\n  https://github.com/iovisor/bcc/commit/ba64f031f2435aad5a85f8f37dbbe2a982cbbe6b\r\nattempts to remove the early return in map.lookup_or_init().\r\nBut then since NULL pointer could be returned,\r\nuser will need to change their bpf program to check return value,\r\notherwise, verifier will reject the program.\r\n\r\nAs described in the above, such an API behavior change may cause\r\nverifier failure and reject previously loadable bpf programs.\r\nbcc should try to maintain API stability, esp. to avoid subtle\r\nAPI behavior change.\r\n\r\nThis patch propose to restore the behavior of map.lookup_or_init()\r\nand introduce a new one map.lookup_or_init2(), which will\r\navoid unexpected return. map.lookup_or_init2() will be formally\r\ndocumented and used in bcc. A warning will be generated if\r\nmap.lookup_or_init() is used. Documentation will make it clear\r\nthat map.lookup_or_init2() is preferred over map.lookup_or_init().\r\n\r\n```\r\n-bash-4.4$ sudo ./syscount.py\r\n/virtual/main.c:71:11: warning: lookup_or_init() may return from the function, use loopup_or_init2() instead.\r\n    val = data.lookup_or_init(&amp;key, &amp;zero);\r\n          ^\r\n1 warning generated.\r\nTracing syscalls, printing top 10... Ctrl+C to quit.\r\n...\r\n```\r\n\r\nTODO: all lookup_or_init() usages changed to lookup_or_init2().\r\nTODO: some tests in lookup_or_init() changed to lookup_or_init2(),\r\n      but some remains to test lookup_or_init().\r\n\r\nI did not have a better name than lookup_or_init2(). But if you\r\nhave, please let me know.</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbCommentBody</name><value>null</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbGhRepository</name><value>iovisor/bcc</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>ghprbCredentialsId</name><value>6d3daf13-69b8-48b1-9c8f-ec5353264113</value></parameter></action><action _class='hudson.plugins.git.GitTagAction'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><description>&lt;a title="[RFC] introduce map.lookup_or_init2()" href="https://github.com/iovisor/bcc/pull/2577"&gt;PR #2577&lt;/a&gt;: [RFC] introduce map.lookup_...</description><displayName>#104</displayName><duration>1335536</duration><estimatedDuration>7460664</estimatedDuration><fullDisplayName>bcc-pr #104</fullDisplayName><id>104</id><keepLog>false</keepLog><number>104</number><queueId>860</queueId><result>SUCCESS</result><timestamp>1572501172834</timestamp><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/104/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><kind>git</kind></changeSet><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=fc25/104/</url></run><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=fc26/104/</url></run><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=fc27/104/</url></run><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=fc28/104/</url></run><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=ubuntu1604/104/</url></run><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=ubuntu1710/104/</url></run><run><number>104</number><url>https://buildbot.iovisor.org/jenkins/user/dalehamel/my-views/view/all/job/bcc-pr/label=ubuntu1804/104/</url></run></matrixBuild>