Windows error 0x00000062, 98

Detailed Error Information

OBJECT1_INITIALIZATION_FAILED[1]

This is a Blue Screen of Death stop code. More information is available in the Knowledge Base article Bug Check 0x62: OBJECT1_INITIALIZATION_FAILED.

HRESULT analysis[2]

This is probably not the correct interpretation of this error. The Win32 error above is more likely to indicate the actual problem.
FlagsSeveritySuccess

This code indicates success, rather than an error. This may not be the correct interpretation of this code, or possibly the program is handling errors incorrectly.

Reserved (R)false
OriginMicrosoft
NTSTATUSfalse
Reserved (X)false
FacilityCode0 (0x000)
NameFACILITY_NULL[2][3]
DescriptionThe default facility code.[2][3]
Error Code98 (0x0062)

Possible solutions

9

gcsfuse Input/Output error

linux
gcsfuse

You problem does stem from insufficient permissions, but you do not need to destroy and re-create the VM with a different scope to solve this problem. Here is another approach that is more suitable for production systems:

  1. Create a service account
  2. Create a key for the service account, and download the JSON file
  3. Grant an appropriate role to the service account
  4. Grant the appropriate permissions to the service account on the bucket
  5. Upload the JSON credentials for the service account to the VM

Finally, define an environment variable that contains the path to the service account credentials when calling gcsfuse from the command line:

GOOGLE_APPLICATION_CREDENTIALS=/root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point

Use the key_file option to accomplish the same thing in fstab. Both of these options are documented in the gcsfuse credentials documentation. (EDIT: this option is documented, but won't work for me.)

Interestingly, you need to use the environment variable or key_file option even if you have configured the service account on the VM using:

gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json

For some reason, gcsfuse ignores the active credentialed account.

Using the storage-full scope when creating a VM has security and stability implications, because it allows that VM to have full access to every bucket that belongs to the same project. Should your file storage server really be able to over-write the logs in a logging bucket, or read the database backups in another bucket?

answered on Stack Overflow Aug 19, 2016 by Craig Finch • edited Aug 19, 2016 by Craig Finch
7

gcsfuse Input/Output error

linux
gcsfuse

It appears from the Insufficient Permission errors in your debug output that gcsfuse doesn't have sufficient permissions to your bucket. Probably it has read-only access.

Be sure to read the credentials documentation for gcsfuse. In particular, if you're using a service account on a GCE VM make sure to set up the VM with the storage-full access scope.

answered on Stack Overflow Apr 5, 2016 by jacobsa
5

Are Sub-Arrays Guaranteed to be Allocated Linearly?

c++
arrays
linear
memory-layout
static-allocation

Are Sub-Arrays Guaranteed to be Allocated Linearly?

Yes. Whether the elements of the array are sub-arrays or non-array objects, they are guaranteed to be stored contiguously in memory.

For completeness, here is the standard quote:

[dcl.array]

  1. [snip] An object of array type contains a contiguously allocated non-empty set of N subobjects of type T. [snip]

There is no exception for the case when T is an array.


So we know this isn't guaranteed to be the case for const char[4].

On the contrary, we do know that this is guaranteed for char[4] objects just like it is guaranteed for other types.

For example: const char first[] = "foo"; char foo[][4] = {"bar", "foo", "", "baz"}

first would be stored like this in memory:

{'f', 'o', 'o', '\0'}

foo would be stored like this:

{'b', 'a', 'r', '\0', 'f', 'o', 'o', '\0', '\0', '\0', '\0', '\0', 'b', 'a', 'z', '\0'}

So why would you say this is guaranteed for ints?

It is guaranteed for int[4], char[4] and any other type that you can imagine.

answered on Stack Overflow Jun 27, 2016 by user2079303 • edited Jun 27, 2016 by user2079303
3

Are Sub-Arrays Guaranteed to be Allocated Linearly?

c++
arrays
linear
memory-layout
static-allocation

From the C language standard ISO/IEC 9899 §6.2.5 Types/p20 (Emphasis Mine):

An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type.

Also from the C language standard ISO/IEC 9899 §6.5.2.1/p3 Array subscripting (Emphasis Mine):

Successive subscript operators designate an element of a multidimensional array object. If E is an n-dimensional array (n >= 2) with dimensions i x j x . . . x k, then E (used as other than an lvalue) is converted to a pointer to an (n - 1)-dimensional array with dimensions j x . . . x k. If the unary * operator is applied to this pointer explicitly, or implicitly as a result of subscripting, the result is the pointed-to (n - 1)-dimensional array, which itself is converted into a pointer if used as other than an lvalue. It follows from this that arrays are stored in row-major order (last subscript varies fastest).

From the above we can conclude that a 2D array is actually a 1D array stored in row-major order.

Consequently, it's safe to assume that elements of a sub-array are stored contiguously in memory.

answered on Stack Overflow Jun 27, 2016 by 101010
0

Get package name and corr. data from file

bash
perl
awk
sed
grep

I would suggest perl over awk, because you'll be storing whether you're inside the extras=... block in a variable:

dumpsys notification | perl -lne '
    print $1 if /^Notif.*?: pkg=(\S+)/;
    $in_extras = 0 if /^  \}/;
    print if $in_extras;
    $in_extras = 1 if /^  extras=\{/'

Oh, if you want the extra pkg: and extras= text, slight modification:

dumpsys notification | perl -lne '
    print "pkg: $1" if /^Notif.*?: pkg=(\S+)/;
    $in_extras = 1 if /^  extras=\{/;
    print if $in_extras;
    $in_extras = 0 if /^  \}/;'
answered on Stack Overflow Mar 1, 2016 by user2926055 • edited Mar 1, 2016 by user2926055
0

Get package name and corr. data from file

bash
perl
awk
sed
grep

Sed version:

dumpsys notification |\
  sed -n 's/.*pkg=\([^ ]*\).*/pkg:\1/p;/^  extras={$/,/^  }$/s/^  //p'

I'm assuming you always have two spaces in front of extras={ and } and you also want to remove these spaces.

answered on Stack Overflow Mar 1, 2016 by Joao Morais
0

Get package name and corr. data from file

bash
perl
awk
sed
grep

If you have GNU awk, try the following:

awk -v RS='(^|\n)NotificationRecord\\([^=]+=' \
  'NF { print "pkg:" $1; print gensub(/^.*\n\s*(extras=\{[^}]+\}).*$/, "\\1", 1) }' file
  • -v RS='(^|\n)NotificationRecord\\([^=]+=' breaks the input into records by lines starting with NotificationRecord( up to and including the following = char.

    • In effect, that means you get records starting with the package names (com.android.systemui, ...`)
  • NF is a condition that only executes the following block if it evaluates to nonzero; NF is the count of fields in the record, so as long as at least 1 field is present, the block is evaluated - in effect, this skips the implied empty record before the very first line.

  • print "pkg:" $1 prints the package name, prefixed with literal pkg:.

  • gensub(/^.*\n\s*(extras=\{[^}]+\}).*$/, "\\1", 1) matches the entire record and replaces it with the extras property captured via a capture group, effectively returning the extras property only.

answered on Stack Overflow Mar 1, 2016 by mklement0 • edited Mar 1, 2016 by mklement0

Comments

Leave a comment

(plain text only)

Sources

  1. https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-code-reference2
  2. https://msdn.microsoft.com/en-us/library/cc231198.aspx
  3. winerror.h from Windows SDK 10.0.14393.0

User contributions licensed under CC BY-SA 3.0