LogFileNotFoundException from one index but not another in DPL

Hi folks,
I have an entity type in the DPL called an Item. It has various secondary keys. When I try to use the "type" of the item to get all items of a particular type, I get a LogFileNotFoundException (the log file is clearly gone, and we have no processes that could delete them):
EntityIndex index = itemByType.subIndex(type.ordinal());
EntityCursor<ItemImpl> cur = index.entities();
try {
    for(ItemImpl i : cur) {
        items.add(i);
} finally {
    cur.close();
}The exception occurs in the implicit hasNext in the for loop:
Caused by: com.sleepycat.je.DatabaseException: (JE 3.3.75) fetchTarget of 0xf/0x6ccfd parent IN=80127 IN class=com.sleepycat.je.tree.DBIN lastFullVersion=0x21/0x61c37 parent.getDirty()=false state=0 com.sleepycat.je.log.LogFileNotFoundException: (JE 3.3.75) 0xf/0x6ccfd (JE 3.3.75) Couldn't open file /files/data/db/0000000f.jdb: /files/data/db/0000000f.jdb (No such file or directory)
     at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1230)
     at com.sleepycat.je.dbi.CursorImpl.fetchCurrent(CursorImpl.java:2320)
     at com.sleepycat.je.dbi.CursorImpl.getCurrentAlreadyLatched(CursorImpl.java:1427)
     at com.sleepycat.je.dbi.CursorImpl.getNextDuplicate(CursorImpl.java:1745)
     at com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:2187)
     at com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1991)
     at com.sleepycat.je.SecondaryCursor.retrieveNext(SecondaryCursor.java:1497)
     at com.sleepycat.je.SecondaryCursor.getNextDup(SecondaryCursor.java:676)
     at com.sleepycat.util.keyrange.RangeCursor.doGetNextDup(RangeCursor.java:907)
     at com.sleepycat.util.keyrange.RangeCursor.getNext(RangeCursor.java:445)
     at com.sleepycat.persist.BasicCursor.next(BasicCursor.java:81)
     at com.sleepycat.persist.BasicIterator.hasNext(BasicIterator.java:50)Curiously, if I get the same data by using a different index (one indexed by a type/time composite key), I don't hit any exceptions.
Some possibly relevant data:
This occurred shortly after upgrading from .69 to .75. I didn't deploy the update, but I'm told that it worked initially after the update, but then the service was restarted a second time a day or so later (for other unrelated changes) and this exception started to happen sometime after the second restart.
Restarting the process doesn't seem to change anything.
There are about 64K "items" in the database, and about 66K of other types.
We have 15 other databases with the same schema but different data (and roughly the same amount of data as this one). They are all functioning fine, and have had roughly equal amount of load/churn on them as the corrupt database.
The log file in question exists for most of our other databases, but is missing in a few (which I think should mean that it is reasonable to expect that it could have been "garbage collected" on the corrupt database).
The database seems to be about 195MB so it is somewhat portable.
So I have two questions:
1) Is this likely to be a result of something that I did in my code? Obviously the snippet above didn't use a transaction explicitly, but most other code does, including any writes. (And my understanding is that an implicit transaction is used in that snippet if the DB is transactional otherwise)
2) Assuming that the log file in question wasn't spuriously deleted by some log file gnome, is there any way that we can recover from this in general? This may be the wrong question, but is it possible to rebuild an index that thinks an old log file is still there?
Thanks!
Jeff

Hello all,
I'd like to let everyone know that the problem reported by Jeff is the result of a JE bug that was introduced in JE 3.3.62 and recently fixed in JE 3.3.76. JE 3.3.76 is not yet published, and we don't have a date doing that yet, but if would like a copy of it now, please send me email -- mark.hayes at the obvious (oracle) .com.
Below is the change log entry for the bug. Although the bug occurs rarely, any app that configures duplicates (or a MANY_TO_XXX secondary key relationship) could be impacted. The result of the bug is data loss, and reverting to a backup is necessary.
Change log entry:
Fix a bug that caused LogFileNotFoundException in rare circumstances for an Environment having one or more Databases configured for duplicates (or one or more SecondaryIndexes with MANY_TO_XXX relationships). The bug only occurs when a single secondary/duplicate key value is associated with a large number of records/entities; specifically, the sub-Btree for a single duplicate key value must have at least 3 levels. SR #16712
Thanks, Jeff, for your help on this.
--mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Similar Messages

  • Problem with SMTP from one computer but not another

    I have an iMac connected directly to my network via Ethernet and a MacBook Pro which connects via wireless. I have a program installed on my iMac that sends me alerts via e-mail, and it works just fine. When I try and use Mail, however, on my MBP with the exact same settings and credentials, it fails. To make this even more perplexing, Mail works fine from my office on a different network.
    To work around this, I use Comcast's SMTP server on my laptop, but why would my regular e-mail provider's SMTP work on one machine and not another on the same network? The only difference is one is connected via Ethernet and the other by wireless.
    I use a Time Capsule as my router and wireless access point. Has anyone got an idea about what's causing this?

    Please report the relationship, if any, of the "regular e-mail provider's SMTP" and your ISP? If Comcast is your ISP, they regularly block use of Port 25, but if you have selected Use Default Port in Mail Preferences/Accounts/Account Information for the Outgoing Server, then it may be making the wrong choice to work with Comcast. Regardless of the ISP, for this regular account click on the arrows beside the name of the SMTP, choose Edit Server List, then click on the Advanced Tab that will then be seen and choose Use Custom Port, then enter the proper port directly -- that port is probably Port 587, but that could depend on the advisory of the email provider for using their SMTP.
    Ernie

  • I want to bcc myself when sending mail from one account but not another. When I check "automatically bcc myself", it bcc's me from both accounts.  Can I set this to work with only one account?

    I have two mail accounts on my Mac.  I want one account to bcc me when I send emails from that account.  I checked "automatically bcc myself" under mail>preferences>composing, but both accounts bcc me when sending mail.  Can I set this to only bcc myself from one specific email account? Thanks.

    It does not make sense that your ssh does not have a dash capital Y (-Y) option. It is in "man ssh", and my 10.6.6 has the -Y option, and I've had a -Y option since at least Tiger (10.4) days.
    My ssh is in /usr/bin/ssh
    I'm not very good at X11 issues, so I'm just throwing ideas out there.
    Does your broken account have a $HOME/.ssh/config file, and if so, what is in it?
    Does the broken account have any $HOME/.x* or $HOME/.X* files that X11 might be reading to configure your X11 behavior differently from the new test account?
    $HOME/.Xauthority
    $HOME/.Xdefaults-<hostname>
    $HOME/.Xresources
    $HOME/.ICEauthority
    $HOME/.keymap.km
    The above are a few names I found looking through "man X"
    While I'm thinking about it, I assume that when going to the server, you are using the exact same user account on the server, so that you have a constant at least at that end.
    Have you tried trashing your
    $HOME/Library/Preferences/org.x.X11.plist
    file, to see if that is affecting the broken account?
    Again, I am just throwing out ideas to see if anything sticks.

  • Able to interact with a cRIO remote front panel from one computer but not another

    I have a cRIO application that publishes a remote front panel for monitoring and control of the application. From one PC (Win7 & firefox) I can see, interact and control the cRIO through the published remote front panel. From a second PC, also Win7, I can see and monitor the cRIO's state, but the remote panel that is opened does not allow for any interaction and this is true whether I'm using IE, FF or Chrome as the browser. When either PC is connected to the cRIO, it is via a dedicated Ethernet link and only the cRIO and the one PC are on that network. For this two-device private network, the PC is always at address 192.168.1.1 while the cRIO always uses 192.168.84.199 (port 8000).
    The firewall rules on both PCs are setup to allow all incoming and outgoing programs/ports/protocols to be used between these two IP addresses.
    Both PC's have up-to-date LabVIEW development systems installed on them (which more or less guarantees they have the minimum require LV runtime needed to see and use a remote front panel).
    What might be different on the PC that view but cannot interact with the remote panel?
    Solved!
    Go to Solution.

    Sam_Sharp wrote:
    Right click on the second one and select "take control of this VI".
    As far as I am aware - only one viewer of the remote front panel can control the panel at any time - the rest can only view.
    As I tried to say in my original post, there was only one host physically connected to the private network at any given time (by virtue of the fact that the one Ethernet cable connection to the private network was being moved back & forth between the two hosts) so there was no way both hosts could be trying to control the cRIO at the same time. I even went so far at one point of restarting the cRIO while it was connected to the problem host to see if would render it functional, but it did not.
    But I did not know that it was possible to do what you suggested, much less that there was a right-click context menu associated with a remote panel, so I tried it and it worked!    Thank you!

  • Login to Mail from one computer but not another.

    I'm actually posting this on behalf of a senior Gent. We can login to his account from his main computer but not from his 'new' laptop. I've been helping him set it up (win7).
    Message says wrong password and try again in 15 mins.
    I logged into my account on the laptop ok. Using Chrome. I appreciate info is a bit sparse but just wondered if this rings any bells. Router has been re-set. I'm just of to try it IE, though it shouldn't make any difference. Thanks!

    Have you tried resetting the password. Thentry logging in with the laptop 1st  and check over the webmail settings - I don't use BTs webmail since I thinks its er ... poor (to be polite) but a pwd reset and new login from a new device has been suggested elsewhere here.

  • Firefox crashes on start up for one user but not another

    Crash ID: bp-df3a48d7-363c-4d2f-87d3-f73902140723
    Version: 31
    Crashes on start up for one user but not another. Both are administrators.
    I have uninstalled and re-installed. No change with each user.
    Crashes in safe mode as well (holding down shift)
    No addons present in other user.
    Have ran Malwarebytes and cleaned
    Have ran CCCleaner and cleane all including registry entries with Firefox uninstalled.

    Create a new profile as a test to check if your current profile is causing the problems. <br>
    See '''Creating a profile''':
    *https://support.mozilla.org/kb/profile-manager-create-and-remove-firefox-profiles
    *http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Profile_issues
    If the new profile works then you can transfer files from a previously used profile to the new profile, but be cautious not to copy corrupted files to avoid carrying over the problem <br>
    '''Profile Backup and Restore'''
    *http://kb.mozillazine.org/Profile_backup
    *https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles
    *http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Firefox

  • On one PC but not another I am getting an error message: Exception: java.la

    There is an applet on my site which is not loading for some users and not others.
    On one PC but not another I am getting an error message: Exception: java.lang.ClassNotFound.Exception:CheckboxApp.class
    The name of the applet is CheckboxApp
    some other user of my site are also getting similar messages
    Is there something from sun that can be downloaded by the users or is there some problem at the server level?
    Thanks

    It's probably because of the way the html that's calling the applet is coded, in conjunction with the vendor (Sun or MS) and version of the Plugin/JRE. This will help you ger started with diagnosis:
    http://java.sun.com/products/plugin/

  • After installing Mountain Lion, why is there Yahoo access for one user but not another?--both are administrators.

    After installing Mountain Lion, why is there Yahoo access for one user but not another?--both are administrators.

    We've had several instances where we have had to run chkdsk on arrays with over 1m files. Average completion time is approximately 72 hours. The maximum downtime window they have available is the 64 hour weekend window. File sizes and number of files were
    much smaller then than they are now.
    The idea, in theory, was to use VHDs to compartmentalize the data into smaller volumes which could be more easily managed. It would also improve performance when transferring these compartments of data as they would use sequential read/write rather than
    fragmented/random. This idea was never fleshed out in entirety, they don't split data up into little containers, but simply into big ones per project. Hence the 11m files in one container that I am currently trying to diagnose.
    Some other important facts: The VHD in question is mounted in B:/project/ as this server also allows remote workers to log in, but they are restricted to see only data in E:. Disks A-D are hidden via group policy.
    Update: icacls is failing on a large number of files within this dataset. I counted the path characters to ensure it wasn't the 255 character limit I was encountering and verified that the paths being blocked are only about 150 characters long. Once it finishes,
    I'll have to try taking ownership and then re-running it. At this point I still have no idea how long to expect. I'm running out of time as the environment will be in use again at 9AM tomorrow morning.

  • Bubble Event firing in one company but not another

    Having spent the past 2 days trying to get the installer working (which it finally does thanks to people on this forum!), I've finally pushed my add-in out to people this morning.
    Unfortunately, the bubbleevent seems to be being ignored in all companies bar the test company.
    The code is below. The nominal codes do not begin with "720", so that section is not being fired in either company.
    So, my question is, why would a bubble event work in one company but not another?
    Private Sub oApp_ItemEvent(ByVal FormUID As String, ByRef pVal As SAPbouiCOM.ItemEvent, ByRef BubbleEvent As Boolean) Handles oApp.ItemEvent
            Dim NumberRows As Long
            Dim oMatrix As SAPbouiCOM.Matrix
            Dim oRowCount As Integer
            Dim oCheck As SAPbouiCOM.EditText
            Dim oCheck2 As SAPbouiCOM.EditText
            REM Check for Profit Centre and Project Code on each line of Purchase Transactions
            If pVal.FormTypeEx = "142" Or pVal.FormTypeEx = "141" Or pVal.FormTypeEx = "181" Or _
            pVal.FormTypeEx = "139" Or pVal.FormTypeEx = "133" Or pVal.FormTypeEx = "179" Then
                REM Set to active form and Sales/Purchase transaction matrix
                oForm = oApp.Forms.ActiveForm
                oItem = oApp.Forms.Item(FormUID).Items.Item("38")
                oMatrix = oItem.Specific
                If pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED And _
                  pVal.Before_Action Then
                    If pVal.ItemUID = "1" Then
                        NumberRows = oMatrix.RowCount
                        For oRowCount = 1 To NumberRows - 1
                            oCheck = oMatrix.Columns.Item("30").Cells.Item(oRowCount).Specific
                            If oCheck.Value = "" Then
                                oApp.MessageBox("Please enter a Profit Centre on row " & oRowCount)
                                BubbleEvent = False
                            End If
                            oCheck = oMatrix.Columns.Item("31").Cells.Item(oRowCount).Specific
                            If oCheck.Value = "" Then
                                oApp.MessageBox("Please enter a Project on row " & oRowCount)
                                BubbleEvent = False
                            End If
                            oCheck = oMatrix.Columns.Item("U_CarReg").Cells.Item(oRowCount).Specific
                            oCheck2 = oMatrix.Columns.Item("1").Cells.Item(oRowCount).Specific
                            If oApp.Company.DatabaseName = "FOLLIS_LIVE" Or oApp.Company.DatabaseName = "FOLLUK_TEST" Then
                                If oCheck.Value = "" And Left(oCheck2.Value, 3) = "720" Then
                                    oApp.MessageBox("Please enter a Car Registration on row " & oRowCount)
                                    BubbleEvent = False
                                    Exit For
                                End If
                            End If
                        Next oRowCount
                    End If
                End If
            End If
            REM Check for Profit Centre and Project Code on each line of Nominal Transactions
            If pVal.FormTypeEx = "392" Or pVal.FormTypeEx = "393" Then
                REM Set to active form, journal matrix
                oItem = oApp.Forms.Item(FormUID).Items.Item("76")
                oMatrix = oItem.Specific
                If pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED And _
                  pVal.Before_Action Then
                    If pVal.ItemUID = "1" Then
                        NumberRows = oMatrix.RowCount
                        For oRowCount = 1 To NumberRows - 1
                            oCheck = oMatrix.Columns.Item("23").Cells.Item(oRowCount).Specific
                            If oCheck.Value = "" Then
                                oApp.MessageBox("Please enter a Profit Centre on row " & oRowCount)
                                BubbleEvent = False
                            End If
                            oCheck = oMatrix.Columns.Item("16").Cells.Item(oRowCount).Specific
                            If oCheck.Value = "" Then
                                oApp.MessageBox("Please enter a Project on row " & oRowCount)
                                BubbleEvent = False
                            End If
                        Next oRowCount
                    End If
                End If
            End If
        End Sub

    Hi Daniel,
    Then the only option I see is that the If statement is true in one database, and false on the others.
    If oApp.Company.DatabaseName = "FOLLIS_LIVE" Or oApp.Company.DatabaseName = "FOLLUK_TEST" Then
    If oCheck.Value = "" And Left(oCheck2.Value, 3) = "720" Then
    oApp.MessageBox("Please enter a Car Registration on row " & oRowCount)
    BubbleEvent = False
    Exit For
    End If
    End If
    If oCheck.Value = "" Then
    oApp.MessageBox("Please enter a Project on row " & oRowCount)
    BubbleEvent = False
    End If
    One of this is should be different on the companies.
    Nothing else comes to my mind.
    Regards,
    Ibai Peñ

  • Implicit read with assembly module instance working on one computer, but not another

    Hi,
    I'm trying to set up an on-site computer to run a VI which uses assembly instances for data communication, but for some reason I'm unable to establish a connection to the PLC.
    I'm running the example vi "CreateAssemblyInstance.vi" to try and get the communication set up before I start using my actual program.
    When I run this code on my development machine, I'm able to establish a connection to the PLC and read data. I then go into RSLogix 5000 and change the IP address to the on-site machine and try to run the test VI there, but I'm unable to make a connection. LabVIEW-side, the program thinks that it's established a connection and is reading/writing data, but PLC-side I'm getting a "Connection Failed" message in RSLogix.
    I find it weird that LabVIEW thinks the connection was established just fine, which the RSLogix says it can't connect to the VI.
    Just wondering if anyone else has had this happen. We aren't sure why the same VI runs on one machine but not another. We used RSLogix to change the IP address of the target machine, so we don't think that's the issue. And both computers are on the same network, so we don't think it's a firewall issue either.
    LabVIEW-side, things should be identical. I'm running the same example VI that came with the Ethernet/IP module. PLC-side, we're changing the target IP of the module within RSLogix 5000 (and we're sending the updated information to the PLC) to match the machine we're trying to make a connection with. Are we missing any steps? This is the first time we've tried using an assembly module, so we're having a hard time troubleshooting.
    Any ideas on why this is happening?

    I'm pretty sure we're using a generic ethernet module:
    I can communicate explicitly with the problem computer, it's able to use 'Tag Read' and 'Tag Write' to communicate with the PLC.
    We started having another problem just recently too. The Tag Read and Write commands are almost always timing out. I keep getting the error message -251723752:
    Detailed error info: Error -251723752 occurred at EthernetIP Tag Read REAL.vi;Details: The request response was not received in the requested timeout period    Possible reason(s):  Ethernet/IP Industrial Protocol: (Hex 0xF0FF0018) The request response was not received in the requested timeout period
    I can't figure out what's causing this all of a sudden, could these issues be related?

  • How do you extend the frame from one side but not the whole thing?

    I am updating my blog and want to put a rectangle picture into the pre-set frame. I need to stretch it horizontally but the entire frame (i.e., both sides and top/bottom) stretched instead. How do you extend the frame from one side but not the whole thing?

    In Inspector, select the Graphic Inspector. Choose, from the Fill options, Image Fill. Select the image from the dropdown and click Open. Now go back to Inspector and click on Scale to Fit. Choose from the options in the window. There are a number of them which should address your problem:
    With the Blog template, you will probably need to insert a text box over the stock placement frame and work with that instead.
    Mark

  • Store credit shows up on one computer, but not another

    Happy Easter everyone,
    I was wondering why my store credit shows up on one authorized computer, but not another? Is there a way to fix this? Or will I just have to make my purchases on that computer?
    Thanks
    Jason

    An account's balance should show wherever you use the account (computer's iTunes, and in the App Store, iTunes store and iBookstore on iOS devices). Have you tried logging out and back into the account on the computer that it's not showing : Store > Sign Out menu option, that will then change to a Store > Sign In option (my balance has sometimes been slow to update on my computers/devices)

  • List Alert emails sent from one Application and not another?

    I have a farm with two Applications. For some reason, list alerts are being sent and delivered from Application A but not Application B.
    Troubleshooting recommendations?
    Thanks,
    Scott

    Hello,
    Check the property of alert for that web application using STSADM. If it is not enable then enable it.
    Stsadm.exe -o getproperty -url http://web-App-URL -pn alerts-enabled
    http://social.technet.microsoft.com/wiki/contents/articles/13771.troubleshooting-steps-for-sharepoint-alert-email-does-not-go-out.aspx
    Hope it could help
    Hemendra:Yesterday is just a memory,Tomorrow we may never see<br/> Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • Safari works for one user but not another on same computer

    MacBook with multiple user accounts. Safari (and Firefox) work fine for one user but are unable to open web pages when the other user is logged in. The error in Safar is "Safari can't open the page "http://xxxxxxxxx/" because it could not connect to the server "/xxxxxxx/" . DNS is working for this user. I am able to ping any number of sites from Terminal. Network Preference pane is configured to not require any proxy. This is a case of it was working but now it's not.
    Can anybody help with this? I know I can fix this by simply creating another user and transfering the affected user's data to the new account but I would rather not. TIA

    HI Bob,
    You can test your settings by clicking the big "Test My DNS" button at <https://www.dns-oarc.net/oarc/services/dnsentropy>. If you see "Poor" on any of the tests, don't use that domain name server! Remove it from Apple Menu => System Preferences =>Network =>DNS Servers or similar location in your router if you've got a 'home network'. If all you have is "poor" DNS servers in your list, call your ISP and insist that they give you the address of a name server which is protected against the recently exposed DNS cache-poisoning threat.
    Also, open System Preferences/Network. Click the DNS tab. Add these numbers in the DNS Servers box.
    208.67.222.222
    208.67.220.220
    See if that helps.
    Carolyn

  • Why will DVD play on one player but not another??

    Hi,
    I made an ISO file using devede and then burnt it to a DVD using K3B.  The finished DVD will work on a Magnavox player but not a JVC.  Is there anything I can do about this???  Do some players have a "must be produced commercially" filter or something???
    Jim
    Last edited by MillTek (2008-04-20 20:45:12)

    First, I am assuming you recorded your iso on +R type media.  Next, I'm guessing that the player that won't play your DVD is the older of the two players.  Some DVD players, especially older ones don't like +R media.  If this is the case, here is a possible fix.
    Here is a thread on another forum which discuses changing the booktype on your DVD burner.  Here is a quote from the original post:
    There have been many questions asked about how to booktype +R media to DVD-ROM
    Many standalone Players, HDD recorders/players and games consoles don't like +R media but they are happy enough to play -R or DVD-ROM.
    Some drive brands have tools to change this option but others don't. I have found that the easiest way to change your BOOKTYPE setting is to use a small burning tool called IMGBurn which can be found doing a Google search.
    Below you can see some screen shots which guide you through changing your BOOKTYPE setting. For this I have used my NEC4551 but IMGBurn supports NU-Tech, Plextor, Ricoh, Samsung, BenQ, LG, Lite-on and NEC.
    Once you have changed your BOOKTYPE setting, when you burn a +R/+RW disc it will be burned as a DVD-ROM which is the same as a bought movie and most players are happy to play these.
    Since my DVD players are happy with +R media, I haven't tried this.  Both of my players are fairly new, and I made sure that +R was listed on the box as one of the formats accepted by that player.
    As usual, try this at your own risk.
    Pudge

Maybe you are looking for